
/* Laboratorio L2 App Shell v3 — 2026-08-19
   Uses the SAME visual identity as the public site: Lexend + Public Sans,
   navy / teal / amber / orange palette. */
:root{--l2-navy:#16326E;--l2-teal:#14B8A6;--l2-amber:#F5A800;--l2-orange:#F07818;--l2-ink:#0E2148;--l2-muted:#53627d;--l2-line:#dce6f2;--l2-tint:#f3f8fc;--l2-bg:#fff}
.l2-app-only{display:none!important}
body.l2-app-mode{padding-bottom:86px!important}
body.l2-app-mode .l2-app-only{display:initial!important}
body.l2-app-mode .l2-app-shell{font-family:'Public Sans',system-ui,sans-serif}
body.l2-app-mode .l2-app-shell strong,body.l2-app-mode .l2-app-shell .l2-app-nav-label{font-family:'Lexend',sans-serif}
.l2-app-topbar{display:none}
body.l2-app-mode .l2-app-topbar{display:flex;position:sticky;top:0;z-index:9998;min-height:58px;align-items:center;gap:12px;padding:8px 16px;background:rgba(255,255,255,.97);backdrop-filter:blur(12px);border-bottom:1px solid var(--l2-line);box-shadow:0 2px 12px rgba(14,33,72,.05)}
.l2-app-topbar img{width:36px;height:36px;object-fit:contain}.l2-app-topbar .l2-app-title{display:flex;flex-direction:column;line-height:1.05}.l2-app-topbar .l2-app-title strong{font-size:.93rem;color:var(--l2-navy)}.l2-app-topbar .l2-app-title span{font-size:.72rem;color:var(--l2-muted);margin-top:4px}.l2-app-topbar .l2-app-spacer{flex:1}.l2-app-topbar a{font-family:'Lexend',sans-serif;text-decoration:none;font-weight:600;color:var(--l2-navy);font-size:.79rem;border:1px solid var(--l2-line);padding:7px 10px;border-radius:10px;background:#fff}
.l2-app-bottom{display:none}
body.l2-app-mode .l2-app-bottom{display:grid;position:fixed;z-index:9999;left:0;right:0;bottom:0;grid-template-columns:repeat(5,1fr);padding:7px max(8px,env(safe-area-inset-right)) calc(7px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));background:rgba(255,255,255,.98);backdrop-filter:blur(16px);border-top:1px solid var(--l2-line);box-shadow:0 -7px 24px rgba(14,33,72,.08)}
.l2-app-bottom a{min-height:55px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:3px;text-decoration:none;color:var(--l2-muted);border-radius:12px;font-size:.67rem;font-family:'Lexend',sans-serif;font-weight:600;letter-spacing:-.01em}.l2-app-bottom a .ico{font-size:1.15rem;line-height:1}.l2-app-bottom a.active{background:var(--l2-tint);color:var(--l2-navy)}
.l2-app-toast{position:fixed;z-index:10000;left:50%;bottom:92px;transform:translate(-50%,16px);opacity:0;pointer-events:none;background:var(--l2-ink);color:#fff;border-radius:12px;padding:11px 14px;font-size:.82rem;transition:.2s;box-shadow:0 8px 24px rgba(14,33,72,.22)}.l2-app-toast.show{opacity:1;transform:translate(-50%,0)}
.l2-update-banner{display:none;position:fixed;z-index:10001;left:16px;right:16px;bottom:92px;max-width:620px;margin:auto;padding:13px 14px;background:#fff;border:1px solid var(--l2-line);border-radius:16px;box-shadow:0 12px 34px rgba(14,33,72,.2);font-family:'Public Sans',system-ui,sans-serif;color:var(--l2-ink)}.l2-update-banner.show{display:flex;align-items:center;gap:12px}.l2-update-banner strong{font-family:'Lexend',sans-serif;color:var(--l2-navy)}.l2-update-banner span{font-size:.78rem;color:var(--l2-muted);display:block}.l2-update-banner button{margin-left:auto;border:0;background:var(--l2-navy);color:#fff;font-family:'Lexend',sans-serif;font-weight:700;border-radius:10px;padding:9px 12px;cursor:pointer}
@media(min-width:900px){body.l2-app-mode{padding-bottom:26px!important;padding-left:94px!important}.l2-app-bottom{display:none!important}body.l2-app-mode .l2-app-bottom{display:flex!important;left:0;top:58px;bottom:0;right:auto;width:86px;flex-direction:column;justify-content:flex-start;padding:18px 8px;border-top:0;border-right:1px solid var(--l2-line);box-shadow:4px 0 18px rgba(14,33,72,.04)}body.l2-app-mode .l2-app-bottom a{width:70px;min-height:64px;margin-bottom:5px}.l2-update-banner{bottom:24px}.l2-app-toast{bottom:28px}}
@media(max-width:480px){.l2-app-topbar{padding-left:10px!important;padding-right:10px!important}.l2-app-topbar a{padding:7px 8px}.l2-app-bottom a{font-size:.61rem}}

/* App Shell v2 — autonomous workspace improvements */
body.l2-app-mode > header,body.l2-app-mode > footer{display:none!important}
body.l2-app-mode [data-install-wrap],body.l2-app-mode [data-install]{display:none!important}
body.l2-app-mode main{padding-top:26px}
.l2-app-logo{border:0!important;padding:0!important;background:transparent!important}
.l2-book-dock{display:none}
body.l2-app-mode .l2-book-dock{display:flex;position:sticky;top:58px;z-index:9997;align-items:center;gap:7px;padding:8px 14px;background:rgba(243,248,252,.98);border-bottom:1px solid var(--l2-line);overflow-x:auto;box-shadow:0 4px 14px rgba(14,33,72,.04)}
.l2-book-dock-title{display:flex;flex-direction:column;min-width:max-content;margin-right:5px;padding-right:10px;border-right:1px solid var(--l2-line)}.l2-book-dock-title strong{font-family:'Lexend',sans-serif;color:var(--l2-navy);font-size:.82rem}.l2-book-dock-title span{font-size:.66rem;color:var(--l2-muted)}
.l2-book-dock button{font-family:'Lexend',sans-serif;white-space:nowrap;border:1px solid var(--l2-line);background:#fff;color:var(--l2-navy);font-weight:650;border-radius:999px;padding:7px 10px;font-size:.72rem;cursor:pointer}.l2-book-dock button:hover{border-color:var(--l2-teal);background:#f4faf9}
.l2-whatsnew{position:fixed;z-index:10003;inset:auto 16px 92px 16px;max-width:560px;margin:auto;background:#fff;border:1px solid var(--l2-line);border-radius:18px;box-shadow:0 18px 48px rgba(14,33,72,.22);padding:18px;font-family:'Public Sans',system-ui,sans-serif;color:var(--l2-ink)}.l2-whatsnew h3{font-family:'Lexend',sans-serif;color:var(--l2-navy);margin:0 0 7px}.l2-whatsnew p{margin:0 0 12px;color:var(--l2-muted);font-size:.87rem}.l2-whatsnew ul{margin:0 0 14px;padding-left:20px;font-size:.84rem}.l2-whatsnew button{border:0;background:var(--l2-navy);color:#fff;border-radius:10px;padding:9px 13px;font-family:'Lexend',sans-serif;font-weight:700;cursor:pointer}
.l2-offline-note{position:fixed;z-index:10002;top:66px;left:50%;transform:translateX(-50%);background:var(--l2-ink);color:#fff;border-radius:999px;padding:7px 12px;font:700 .72rem 'Public Sans',system-ui,sans-serif;box-shadow:0 5px 18px rgba(14,33,72,.16)}
@media(min-width:900px){body.l2-app-mode .l2-book-dock{top:58px;margin-left:0}.l2-whatsnew{bottom:24px}.l2-offline-note{left:calc(50% + 47px)}}
