*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%}body{font-family:Segoe UI,-apple-system,BlinkMacSystemFont,Roboto,sans-serif;background:#f7fafc;color:#2d3748;overflow:hidden}.viewer-layout{display:grid;grid-template-rows:auto minmax(0,1fr) auto;height:100vh;height:100dvh;overflow:hidden;background:var(--viewer-bg, #e5e5e5);color:var(--viewer-text, #000000)}.viewer-shell{--viewer-sidebar-width: 332px;grid-row:2;position:relative;display:grid;grid-template-columns:var(--viewer-sidebar-width) minmax(0,1fr);min-height:0;overflow:hidden;transition:grid-template-columns .3s cubic-bezier(.22,1,.36,1)}.viewer-shell.sidebar-collapsed{--viewer-sidebar-width: 0px}.viewer-content{min-width:0;min-height:0;overflow-y:auto;padding:0;background:var(--viewer-bg, #e5e5e5);overscroll-behavior-x:auto;overscroll-behavior-y:contain}.viewer-footer{grid-row:3;display:flex;justify-content:space-between;align-items:center;padding:12px 24px;background:var(--viewer-footer-bg, #f1f5f9);border-top:1px solid var(--viewer-footer-border, #cbd5e1);font-size:.8rem;color:var(--viewer-footer-text, #64748b)}.viewer-footer-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.viewer-footer-mobile{justify-content:center;padding:10px 16px calc(10px + env(safe-area-inset-bottom));text-align:center}.viewer-footer-mobile .viewer-footer-meta{justify-content:center}.viewer-footer a{color:var(--viewer-footer-link, var(--viewer-link, #14213d));text-decoration:none}.viewer-language-toggle{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:4px 8px 4px 6px;border:1px solid rgba(148,163,184,.18);border-radius:12px;background:#94a3b81a;color:var(--viewer-footer-text, #64748b)}.viewer-language-icon{width:24px;height:24px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;color:inherit}.viewer-language-option{border:none;background:transparent;color:inherit;font:inherit;font-size:.84rem;font-weight:700;padding:6px 10px;border-radius:8px;cursor:pointer;transition:background .2s ease,color .2s ease,box-shadow .2s ease}.viewer-language-option:hover{color:var(--viewer-footer-link, var(--viewer-link, #14213d))}.viewer-language-option.active{background:var(--viewer-accent-soft, rgba(252, 163, 17, .18));color:var(--viewer-footer-link, var(--viewer-link, #14213d));box-shadow:inset 0 0 0 1px #94a3b82e}.viewer-language-divider{color:inherit;opacity:.72;-webkit-user-select:none;user-select:none}.viewer-nav-theme-toggle{width:36px;height:36px;border-radius:8px;border:1px solid transparent;background:#94a3b81a;color:var(--viewer-footer-text, #64748b);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background .2s ease,color .2s ease,border-color .2s ease;padding:0;flex-shrink:0}.viewer-nav-theme-toggle:hover{background:#94a3b82e;color:var(--viewer-footer-link, var(--viewer-link, #14213d));border-color:#94a3b81f}.sidebar{position:relative;display:flex;flex-direction:column;background:var(--viewer-sidebar-bg, #111827);color:var(--viewer-sidebar-nav-text, #ffffff);min-height:0;border-right:1px solid var(--viewer-sidebar-border, #334155);overscroll-behavior-x:auto;overscroll-behavior-y:contain;transition:opacity .24s ease,transform .3s cubic-bezier(.22,1,.36,1),visibility .24s ease,border-color .24s ease;transform-origin:left center}.sidebar.collapsed{opacity:0;visibility:hidden;pointer-events:none;overflow:hidden;transform:translate(-18px);border-right-color:transparent}.viewer-sidebar-controls{position:absolute;top:18px;left:calc(var(--viewer-sidebar-width) - 18px);z-index:14;display:flex;align-items:center;gap:10px;transition:left .3s cubic-bezier(.22,1,.36,1)}.viewer-control-button{width:40px;height:56px;border:1px solid rgba(255,255,255,.14);border-radius:14px;background:linear-gradient(180deg,#0f172aeb,#1e293be0);color:#f8fafc;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 18px 36px #0f172a38;transition:background .2s ease,border-color .2s ease,transform .2s ease,box-shadow .2s ease,color .2s ease,opacity .2s ease}.viewer-inline-navigation{display:inline-flex;align-items:center;gap:10px;opacity:0;transform:translate(-10px);pointer-events:none;transition:opacity .24s ease,transform .28s cubic-bezier(.22,1,.36,1)}.viewer-sequence-button{width:52px;height:52px;border-radius:16px}.viewer-sequence-button:disabled{opacity:.45;cursor:default;box-shadow:none}.viewer-sequence-button:disabled:hover{transform:none}.viewer-control-button:hover{transform:translate(2px);border-color:#ffffff38;box-shadow:0 22px 40px #0f172a47}.viewer-control-button:focus-visible{outline:2px solid var(--viewer-accent, #fca311);outline-offset:3px}.viewer-shell.sidebar-collapsed .viewer-sidebar-controls{left:12px}.viewer-shell.sidebar-collapsed .viewer-inline-navigation{opacity:1;transform:translate(0);pointer-events:auto}.viewer-layout:not(.nav-theme-dark) .viewer-control-button{background:linear-gradient(180deg,#f8fafcf5,#e2e8f0f5);color:var(--viewer-link, #14213d);border-color:#94a3b852;box-shadow:0 18px 32px #94a3b83d}.viewer-layout:not(.nav-theme-dark) .viewer-control-button:hover{border-color:#94a3b87a;box-shadow:0 20px 36px #94a3b847}.sidebar-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:24px 20px;border-bottom:1px solid var(--viewer-sidebar-border, #334155);background:linear-gradient(135deg,var(--viewer-sidebar-header-start, #31435f) 0%,var(--viewer-sidebar-header-end, #14213d) 100%)}.sidebar-header-copy{min-width:0}.course-code{font-size:.68rem;text-transform:uppercase;letter-spacing:2px;color:var(--viewer-sidebar-header-muted, rgba(255, 255, 255, .72));margin-bottom:4px}.course-name{font-size:1rem;font-weight:700;color:var(--viewer-sidebar-header-text, #ffffff);line-height:1.3}.sidebar-mobile-close{width:44px;height:44px;border:1px solid rgba(255,255,255,.16);border-radius:14px;background:#0f172a2e;color:var(--viewer-sidebar-header-text, #ffffff);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:background .2s ease,border-color .2s ease,transform .2s ease}.sidebar-mobile-close:hover{background:#0f172a47;border-color:#ffffff3d;transform:translateY(-1px)}.sidebar-mobile-close:focus-visible{outline:2px solid var(--viewer-accent, #fca311);outline-offset:3px}.sidebar-nav{flex:1;min-height:0;overflow-y:auto;padding:0 0 8px}.sidebar-footer{padding:16px;border-top:1px solid var(--viewer-sidebar-border, #334155);background:linear-gradient(180deg,#02061700,#02061729)}.viewer-mobile-drawer-footer-content{display:flex;flex-direction:column;gap:14px}.viewer-mobile-drawer-toolbar{display:flex;align-items:center;justify-content:center;gap:12px}.viewer-mobile-drawer-toolbar .viewer-language-toggle{min-height:44px}.viewer-mobile-drawer-toolbar .viewer-nav-theme-toggle{width:44px;height:44px;border-radius:14px}.viewer-mobile-admin-actions{width:100%;justify-content:stretch}.viewer-mobile-admin-actions .admin-link,.viewer-mobile-admin-actions .viewer-admin-exit{display:inline-flex;align-items:center;min-height:44px;width:100%;justify-content:center}.viewer-mobile-admin-actions .viewer-admin-status-chip{display:inline-flex;justify-content:center}.nav-unit{border-bottom:1px solid var(--viewer-sidebar-border, #334155)}.nav-unit-header{display:flex;align-items:center;gap:8px;width:100%;padding:14px 16px;border:none;background:none;color:var(--viewer-sidebar-nav-text, #ffffff);cursor:pointer;font-size:.82rem;font-weight:600;text-align:left;transition:background .22s ease,color .22s ease}.nav-unit-header:hover{background:var(--viewer-sidebar-hover, rgba(255, 255, 255, .08))}.nav-unit-header.expanded{background:linear-gradient(180deg,var(--viewer-sidebar-hover, rgba(255, 255, 255, .08)) 0%,transparent 100%)}.expand-icon{font-size:.65rem;width:16px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;transform-origin:center}.unit-title{flex:1;line-height:1.25}.nav-unit-content-wrapper{overflow:hidden}.nav-unit-content{padding:2px 0 10px;display:flex;flex-direction:column;gap:2px}.nav-item{display:flex;align-items:center;gap:8px;width:100%;padding:8px 16px 8px 32px;border:none;background:none;color:var(--viewer-sidebar-item, rgba(255, 255, 255, .72));cursor:pointer;font-size:.78rem;text-align:left;transition:background .18s ease,color .18s ease,border-color .18s ease}.nav-item:hover{color:var(--viewer-sidebar-nav-text, #ffffff);background:var(--viewer-sidebar-hover, rgba(255, 255, 255, .08))}.nav-item.active{color:var(--viewer-sidebar-active-text, #ffffff);background:var(--viewer-accent-soft, rgba(252, 163, 17, .18));border-left:3px solid var(--viewer-accent, #fca311);padding-left:29px}.nav-item-icon{flex-shrink:0;font-size:.82rem}.nav-item-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-globals{padding:12px 0;border-top:1px solid var(--viewer-sidebar-border, #334155)}.nav-globals-label{padding:4px 16px 8px;font-size:.64rem;text-transform:uppercase;letter-spacing:1.5px;color:var(--viewer-sidebar-muted, rgba(255, 255, 255, .72))}.content-frame-wrapper{position:relative;width:100%;min-height:100%;transition:padding-left .28s cubic-bezier(.22,1,.36,1)}.content-frame-wrapper-with-clearance{padding-left:196px}.content-iframe{width:100%;min-height:100%;border:none;display:block}.content-loading,.content-error,.content-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;min-height:400px;color:var(--viewer-muted, #64748b);font-size:1rem}.viewer-landscape-hint{position:fixed;left:50%;top:50%;width:min(82vw,290px);padding:16px 18px 15px;border-radius:28px;display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none;z-index:26;transform:translate(-50%,-50%);animation:viewer-landscape-hint-presence 5s cubic-bezier(.22,1,.36,1) both;will-change:transform,opacity}.viewer-layout.nav-theme-dark .viewer-landscape-hint{color:#f59e0b;background:linear-gradient(180deg,#0f172ae6,#1e293bd1);border:1px solid rgba(255,255,255,.1);box-shadow:0 24px 50px #02061757;backdrop-filter:blur(20px) saturate(1.15);-webkit-backdrop-filter:blur(20px) saturate(1.15)}.viewer-layout:not(.nav-theme-dark) .viewer-landscape-hint{color:#ea580c;background:linear-gradient(180deg,#ffffffe6,#f8fafcdb);border:1px solid rgba(148,163,184,.2);box-shadow:0 22px 42px #94a3b842;backdrop-filter:blur(18px) saturate(1.1);-webkit-backdrop-filter:blur(18px) saturate(1.1)}.viewer-landscape-hint-visual{width:min(100%,180px)}.viewer-landscape-hint-svg{display:block;width:100%;height:auto;overflow:visible}.viewer-landscape-hint-shadow{fill:#0f172a2e;animation:viewer-landscape-hint-shadow 4.2s ease-in-out infinite}.viewer-landscape-hint-orbit,.viewer-landscape-hint-arc,.viewer-landscape-hint-arrow-head{stroke:currentColor;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.viewer-landscape-hint-orbit{opacity:.18;stroke-width:1.6;stroke-dasharray:4 8;animation:viewer-landscape-hint-orbit 5s linear infinite;transform-origin:110px 78px}.viewer-landscape-hint-arc{opacity:.58;stroke-dasharray:72;stroke-dashoffset:72}.viewer-landscape-hint-arc-start,.viewer-landscape-hint-arrow-head-start{animation:viewer-landscape-hint-arrow-start 4.2s ease-in-out infinite}.viewer-landscape-hint-arc-end,.viewer-landscape-hint-arrow-head-end{animation:viewer-landscape-hint-arrow-end 4.2s ease-in-out infinite}.viewer-landscape-hint-phone{transform-origin:110px 78px;animation:viewer-landscape-hint-phone-rotate 5s cubic-bezier(.22,1,.36,1) both}.viewer-landscape-hint-spark{fill:currentColor;opacity:.55}.viewer-landscape-hint-spark-a{animation:viewer-landscape-hint-spark-a 4s ease-in-out infinite}.viewer-landscape-hint-spark-b{animation:viewer-landscape-hint-spark-b 4s ease-in-out infinite}.viewer-landscape-hint-spark-c{animation:viewer-landscape-hint-spark-c 4s ease-in-out infinite}.viewer-landscape-hint-copy{text-align:center}.viewer-landscape-hint-title{font-size:.98rem;font-weight:800;letter-spacing:.01em}.viewer-layout.nav-theme-dark .viewer-landscape-hint-title{color:#f8fafc}.viewer-layout:not(.nav-theme-dark) .viewer-landscape-hint-title{color:#0f172a}.viewer-landscape-hint-text{margin-top:.3rem;font-size:.78rem;line-height:1.45;text-wrap:balance}.viewer-layout.nav-theme-dark .viewer-landscape-hint-text{color:#e2e8f0db}.viewer-layout:not(.nav-theme-dark) .viewer-landscape-hint-text{color:#475569}@keyframes viewer-landscape-hint-presence{0%{opacity:0;transform:translate(-50%,calc(-50% + 14px)) scale(.94)}12%,76%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,calc(-50% - 10px)) scale(.98)}}@keyframes viewer-landscape-hint-phone-rotate{0%,18%{transform:rotate(0) translateZ(0)}34%,78%{transform:rotate(90deg) translateZ(0)}to{transform:rotate(90deg) translateZ(0)}}@keyframes viewer-landscape-hint-orbit{to{transform:rotate(360deg)}}@keyframes viewer-landscape-hint-shadow{0%,18%{opacity:.14;transform:scaleX(.9)}34%,78%{opacity:.22;transform:scaleX(1.12)}to{opacity:.22;transform:scaleX(1.12)}}@keyframes viewer-landscape-hint-arrow-start{0%,12%{opacity:0;stroke-dashoffset:72}24%,54%{opacity:.9;stroke-dashoffset:0}to{opacity:.22;stroke-dashoffset:0}}@keyframes viewer-landscape-hint-arrow-end{0%,30%{opacity:0;stroke-dashoffset:72}42%,72%{opacity:.9;stroke-dashoffset:0}to{opacity:.22;stroke-dashoffset:0}}@keyframes viewer-landscape-hint-spark-a{0%,20%,to{opacity:.12;transform:scale(.7)}42%,66%{opacity:.75;transform:scale(1)}}@keyframes viewer-landscape-hint-spark-b{0%,30%,to{opacity:.1;transform:scale(.75)}48%,70%{opacity:.6;transform:scale(1.08)}}@keyframes viewer-landscape-hint-spark-c{0%,16%,to{opacity:.1;transform:scale(.68)}36%,62%{opacity:.58;transform:scale(.98)}}.admin-link{background:linear-gradient(180deg,#ffffffe0,#f1f5f9e6);border:1px solid rgba(148,163,184,.2);color:var(--viewer-footer-link, var(--viewer-link, #14213d));cursor:pointer;font-size:.8rem;font-weight:600;padding:9px 14px;border-radius:999px;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease,color .18s ease}.admin-link:hover{transform:translateY(-1px);border-color:#94a3b857;box-shadow:0 12px 24px #0f172a14}.viewer-layout.nav-theme-dark .admin-link{background:linear-gradient(180deg,#1e293beb,#0f172aeb);border-color:#94a3b83d;color:#f8fafc}.viewer-layout.nav-theme-dark .admin-link:hover{border-color:#cbd5e157;box-shadow:0 12px 24px #02061747}.viewer-footer-actions{display:inline-flex;align-items:center;gap:10px;flex-wrap:wrap}.admin-link:focus-visible,.viewer-admin-exit:focus-visible,.admin-modal-share:focus-visible,.admin-modal-primary:focus-visible,.admin-modal-secondary:focus-visible{outline:2px solid var(--viewer-accent, #fca311);outline-offset:3px}.viewer-admin-status-chip{display:inline-flex;align-items:center;padding:.5rem .8rem;border-radius:999px;background:#fbbf242e;border:1px solid rgba(245,158,11,.28);color:#a16207;font-size:.76rem;font-weight:700;letter-spacing:.02em}.viewer-admin-exit{border:1px solid rgba(148,163,184,.2);background:transparent;color:var(--viewer-footer-link, var(--viewer-link, #14213d));border-radius:999px;padding:.5rem .9rem;font-size:.8rem;font-weight:600;cursor:pointer;transition:background .18s ease,border-color .18s ease,transform .18s ease}.viewer-admin-exit:hover{transform:translateY(-1px);background:#94a3b814;border-color:#94a3b852}.admin-bar.active{grid-row:1;grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between;padding:8px 20px;background:#fbbf24;color:#78350f;font-weight:600;font-size:.85rem}.btn-admin-logout{background:#78350f26;border:1px solid #92400e;color:#78350f;padding:4px 12px;border-radius:4px;cursor:pointer;font-size:.8rem}.btn-edit{position:absolute;top:10px;right:10px;z-index:10;background:var(--viewer-accent, #fca311);color:var(--viewer-link, #14213d);border:none;padding:6px 14px;border-radius:6px;cursor:pointer;font-size:.8rem;font-weight:600}.btn-edit:hover{filter:brightness(.95)}.admin-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at top,rgba(252,163,17,.12),transparent 42%),#0f172a9e;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:24px}.admin-modal{width:min(100%,460px);border-radius:28px;padding:28px;background:linear-gradient(180deg,#fffffffa,#f8fafcfa);border:1px solid rgba(226,232,240,.9);box-shadow:0 28px 80px #0f172a38,inset 0 1px #ffffffe6}.admin-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:22px}.admin-modal-header-main{display:flex;align-items:flex-start;gap:16px;min-width:0}.admin-modal-icon{width:52px;height:52px;border-radius:16px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--viewer-link, #14213d) 0%,#31435f 100%);color:#fff;box-shadow:0 16px 30px #14213d38}.admin-modal-copy{min-width:0}.admin-modal-eyebrow{margin:0 0 .45rem;color:#a16207;font-size:.74rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.admin-modal h3{margin:0;font-size:1.55rem;line-height:1.1;color:#0f172a}.admin-modal-description{margin:.65rem 0 0;color:#64748b;line-height:1.6;font-size:.95rem}.admin-modal-share{width:44px;height:44px;border-radius:14px;border:1px solid rgba(148,163,184,.18);background:linear-gradient(180deg,#ffffffeb,#f1f5f9eb);color:var(--viewer-link, #14213d);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.admin-modal-share:hover{transform:translateY(-1px);border-color:#94a3b852;box-shadow:0 12px 24px #0f172a14}.admin-modal-form{display:flex;flex-direction:column;gap:14px}.admin-modal-label{color:#334155;font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.admin-code-field{display:flex;align-items:center;gap:12px;padding:0 16px;min-height:64px;border-radius:18px;border:1px solid rgba(148,163,184,.24);background:#ffffffd9;box-shadow:inset 0 1px #ffffffb3}.admin-code-field svg{color:#64748b;flex-shrink:0}.admin-code-input{flex:1;min-width:0;padding:0;border:none;background:transparent;font-size:1.05rem;font-family:Courier New,monospace;letter-spacing:.22em;color:#0f172a}.admin-code-input:focus{outline:none}.admin-error{color:#b91c1c;font-size:.85rem;padding:.75rem .9rem;border-radius:14px;background:#fee2e2bf;border:1px solid rgba(248,113,113,.28)}.admin-modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:4px}.admin-modal-secondary,.admin-modal-primary{min-height:46px;padding:0 18px;border-radius:14px;font-weight:700;font-size:.92rem;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background .18s ease}.admin-modal-secondary{border:1px solid rgba(148,163,184,.24);background:#ffffffe6;color:#475569}.admin-modal-primary,.btn-save{padding:8px 16px;border:none;background:var(--viewer-link, #14213d);color:var(--viewer-surface, #ffffff);border-radius:14px;cursor:pointer;font-weight:700;box-shadow:0 16px 28px #14213d29}.admin-modal-secondary:hover,.admin-modal-primary:hover{transform:translateY(-1px)}.admin-modal-secondary:hover{border-color:#94a3b857;background:#f8fafcf2}.admin-modal-primary:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.btn-cancel{padding:8px 16px;border:1px solid #e2e8f0;background:#fff;color:#718096;border-radius:10px;cursor:pointer}.content-editor{height:100%;display:flex;flex-direction:column}.editor-toolbar{display:flex;gap:8px;justify-content:flex-end;padding:10px 16px;background:#f7fafc;border-bottom:1px solid #e2e8f0}.html-editor{flex:1;width:100%;padding:16px;border:none;font-family:Courier New,monospace;font-size:.85rem;line-height:1.5;resize:none;background:#1a202c;color:#e2e8f0}.viewer-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;height:100dvh;gap:16px;color:#718096}.viewer-error{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;height:100dvh;gap:12px;text-align:center}.viewer-error h1{font-size:2.5rem;color:#e2e8f0}.viewer-error p{color:#718096}.back-link{color:var(--viewer-link, #14213d);text-decoration:none;font-weight:600}.spinner,.spinner-large{width:32px;height:32px;border:3px solid #e2e8f0;border-top:3px solid var(--viewer-accent, #fca311);border-radius:50%;animation:spin .8s linear infinite}.spinner-large{width:48px;height:48px}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width: 900px){.viewer-layout{grid-template-rows:auto minmax(0,1fr) auto}.viewer-shell{--viewer-sidebar-width: 0px;grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr)}.viewer-shell.sidebar-collapsed{--viewer-sidebar-width: 0px}.viewer-shell.mobile-nav-open .viewer-content{pointer-events:none}.viewer-content{grid-row:2;min-height:0}.viewer-sidebar-controls{display:none}.viewer-mobile-topbar{grid-row:1;position:relative;z-index:18;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;column-gap:10px;padding:calc(10px + env(safe-area-inset-top)) 12px 12px;border-bottom:none;box-shadow:0 1px 3px #0000001f;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.viewer-layout.nav-theme-dark .viewer-mobile-topbar{background:linear-gradient(180deg,#0f172ae0,#0f172ac2)}.viewer-layout:not(.nav-theme-dark) .viewer-mobile-topbar{background:linear-gradient(180deg,#f8fafcf0,#f1f5f9e6)}.viewer-mobile-topbar-button{width:44px;height:44px;border:1px solid transparent;border-radius:14px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease,opacity .2s ease,background .2s ease,color .2s ease}.viewer-layout.nav-theme-dark .viewer-mobile-topbar-button{background:#0f172a5c;border-color:#ffffff1f;color:#f8fafc;box-shadow:0 12px 24px #0206172e}.viewer-layout:not(.nav-theme-dark) .viewer-mobile-topbar-button{background:#ffffffe0;border-color:#94a3b83d;color:var(--viewer-link, #14213d);box-shadow:0 12px 22px #94a3b82e}.viewer-mobile-topbar-button:hover:not(:disabled){transform:translateY(-1px)}.viewer-mobile-topbar-button:disabled{opacity:.42;cursor:default;box-shadow:none}.viewer-mobile-topbar-button:focus-visible{outline:2px solid var(--viewer-accent, #fca311);outline-offset:3px}.viewer-mobile-location{min-width:0;width:100%;display:flex;flex-direction:column;gap:2px}.viewer-mobile-location-primary,.viewer-mobile-location-secondary{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.viewer-mobile-location-primary{font-size:clamp(.88rem,3.7vw,.98rem);font-weight:700;color:var(--viewer-link, #14213d)}.viewer-layout.nav-theme-dark .viewer-mobile-location-primary{color:#f8fafc}.viewer-mobile-location-secondary{font-size:clamp(.66rem,2.55vw,.74rem);color:var(--viewer-footer-text, #64748b)}.viewer-mobile-sequence{display:inline-flex;align-items:center;gap:8px;flex-shrink:0;justify-self:end}.viewer-mobile-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a6b;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);opacity:0;pointer-events:none;transition:opacity .2s ease;z-index:24}.viewer-mobile-backdrop.visible{opacity:1;pointer-events:auto}.sidebar.mobile{position:fixed;inset:0 auto 0 0;width:min(88vw,360px);max-width:360px;height:100vh;height:100dvh;z-index:30;transform:translate(-100%);visibility:hidden;opacity:1;pointer-events:none;box-shadow:24px 0 48px #02061742;transition:transform .24s cubic-bezier(.22,1,.36,1),visibility .24s ease}.sidebar.mobile.mobile-open{transform:translate(0);visibility:visible;pointer-events:auto}.sidebar.mobile .sidebar-header{padding-top:calc(20px + env(safe-area-inset-top))}.sidebar.mobile .sidebar-footer{padding-bottom:calc(18px + env(safe-area-inset-bottom))}.content-frame-wrapper-with-clearance{padding-left:0}.viewer-footer{gap:12px;flex-wrap:wrap;padding-inline:16px}.admin-modal{padding:22px;border-radius:22px}.admin-modal-header{flex-direction:column}.admin-modal-actions{justify-content:stretch}.admin-modal-secondary,.admin-modal-primary{flex:1}.viewer-landscape-hint{width:min(80vw,270px);top:calc(50% + 8px)}}@media (prefers-reduced-motion: reduce){.sidebar,.viewer-mobile-backdrop,.viewer-mobile-topbar-button,.sidebar-mobile-close{transition:none!important;animation:none!important}}
