:root{--shell:#241a11;--bed:#fffdf8;--ink:#241b12;--accent:#8b2f2b;--texture:url(#tex-parchment);--bezel:#b79355;--glow:rgba(213,169,86,.42)}
*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0!important;padding:0!important;overflow:hidden}body{font-family:Berkeley,"Book Antiqua","Bell MT",Georgia,serif;background:var(--shell);color:var(--ink)}
#app-shell{width:100dvw;height:100dvh;overflow:hidden;display:grid;grid-template-rows:auto minmax(0,1fr) auto;isolation:isolate;background:radial-gradient(circle at 50% -20%,color-mix(in srgb,var(--accent) 38%,transparent),transparent 55%),var(--shell)}
#material-lab{position:absolute;width:0;height:0}.texture-layer{position:fixed;inset:0;z-index:-1;pointer-events:none;filter:var(--texture);opacity:.34;background:repeating-linear-gradient(97deg,transparent 0 7px,rgba(255,255,255,.025) 8px 9px)}
.shellbar{min-width:0;padding:7px 10px;display:grid;grid-template-columns:minmax(180px,1fr) auto auto auto;gap:8px;align-items:center;border-bottom:1px solid #050505;background:linear-gradient(#18130f,#080706);box-shadow:0 5px 18px #000b;z-index:10}.brand23{color:#fff8e5;letter-spacing:.08em;font-weight:800}.brand23 small{display:block;font:11px system-ui;color:#d9c69d;letter-spacing:.12em}.shell-controls{display:flex;gap:7px;align-items:center;min-width:0}.shell-controls select,.shell-controls input,.shell-controls button,.action23{min-height:44px;border:1px solid #050505;border-radius:7px;padding:7px 10px;background:linear-gradient(#fff,#ece3d1);color:#15110c;box-shadow:inset 0 1px #fff,0 2px 0 #050505,0 4px 10px #0008;font:600 13px inherit}.shell-controls button:active,.action23:active{transform:translateY(2px);box-shadow:inset 0 2px 5px #0008,0 1px #000}.demo-chip{color:#ffe9b1;border:1px solid var(--bezel);padding:7px 10px;border-radius:999px;font:700 11px system-ui;white-space:nowrap}
#workspace-host{min-width:0;min-height:0;overflow:hidden;padding:10px;position:relative}.workspace23{height:100%;min-height:0;min-width:0;overflow:hidden;animation:materialIn .22s ease both}.workspace-grid{height:100%;min-height:0;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:minmax(0,1fr);gap:10px}.bed23{position:relative;min-width:0;min-height:0;overflow:hidden;background:var(--bed);border:1px solid #050505;border-radius:10px;padding:12px;color:var(--ink);box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--bezel) 75%,#fff),inset 0 0 0 5px #17110c, inset 0 0 20px #0002,0 8px 17px #0009}.bed23::before{content:"";position:absolute;inset:5px;border:1px solid #fff9;border-radius:6px;pointer-events:none}.bed23 h2,.bed23 h3{margin:0 0 8px}.scroll23{height:calc(100% - 42px);overflow:auto;overscroll-behavior:contain;padding:3px}.span8{grid-column:span 8}.span7{grid-column:span 7}.span6{grid-column:span 6}.span5{grid-column:span 5}.span4{grid-column:span 4}.span12{grid-column:span 12}.row23{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.cards23{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px}.card23{border:1px solid #18130f;border-radius:7px;padding:10px;background:linear-gradient(145deg,#fff,#f0e7d5);box-shadow:0 2px 5px #0005}.card23 b{display:block}.muted23{font:12px system-ui;color:#5f574d}.sig23{position:absolute;right:10px;bottom:6px;font:10px monospace;color:#777}.expand23{position:absolute;right:8px;top:7px;width:44px;height:44px;border-radius:7px;border:1px solid #111;background:#fff;z-index:3}.tooltip23{position:relative}.tooltip23::after{content:attr(data-tip);position:absolute;left:50%;bottom:calc(100% + 8px);transform:translateX(-50%);background:#090806;color:#fff;padding:6px 8px;border-radius:5px;opacity:0;pointer-events:none;transition:opacity .08s;transition-delay:1s;white-space:nowrap}.tooltip23:hover::after,.tooltip23:focus-visible::after{opacity:1}.card23:hover,.action23:hover{transform:translateY(-1px);box-shadow:0 0 0 1px var(--accent),0 0 12px var(--glow),0 5px 12px #0006}.queue23{display:none;padding:5px 12px;background:#080706;color:#ffe6a4;border-top:1px solid var(--bezel);font:12px system-ui}.queue23.on{display:block}
.legacy-calendar{height:100%;min-height:0;overflow:hidden}.legacy-calendar>.rig{height:100%!important;min-height:0;width:100%!important;position:relative!important;inset:auto!important;padding:0!important}.legacy-calendar .bench{height:100%!important;min-height:0;max-width:none!important}.legacy-calendar .deck{min-height:0!important;height:calc(100% - 150px)!important;overflow:hidden!important}.legacy-calendar .stack{max-height:100%!important;overflow:auto!important}.legacy-calendar .panes{min-height:0!important;overflow:auto!important}
#overlay-root{position:fixed;inset:0;z-index:9999;pointer-events:none}.overlay23{pointer-events:auto;position:fixed;max-width:calc(100vw - 16px);max-height:calc(100vh - 16px);overflow:auto;background:var(--bed);border:2px solid #090806;border-radius:11px;padding:16px;box-shadow:inset 0 0 0 3px var(--bezel),0 18px 55px #000c;animation:overlayIn .15s ease both}.overlay23 .close23{float:right;min-width:44px;min-height:44px}.student-surface .admin-only{display:none!important}
@keyframes materialIn{from{opacity:0;filter:brightness(1.5)}to{opacity:1;filter:none}}@keyframes overlayIn{from{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}
@media(max-width:600px){#app-shell{grid-template-rows:auto minmax(0,1fr) auto}.shellbar{grid-template-columns:1fr auto;padding:5px 7px}.brand23 small,.demo-chip,.desktop-control{display:none}.shell-controls{grid-column:1/-1;overflow-x:auto}.shell-controls select,.shell-controls input,.shell-controls button{flex:0 0 auto}.workspace-grid{display:block}.bed23{height:100%;border-radius:8px}.workspace-grid>.bed23:not(.phone-primary){display:none}.span4,.span5,.span6,.span7,.span8,.span12{width:100%}#workspace-host{padding:6px}.legacy-calendar .deck{height:calc(100% - 142px)!important}.bottom-nav23{display:flex!important;gap:5px;overflow-x:auto;padding:5px;background:#090806;border-top:1px solid var(--bezel)}.bottom-nav23 button{min-width:52px;min-height:44px;color:#fff;background:#211a13;border:1px solid var(--bezel);border-radius:7px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important}}
