:root{--canvas: #FFFFFF;--ink: #1B2227;--steel: #2F6FA8;--ochre: #B26B2A;--rose: #8C5A7C;--console: #11161C;--console-2: #171E26;--line: #27313B;--fg: #F5F7F8;--muted: #C0C8CF;--muted-2: #9DA8B2;--instruction: #FFEB3B;--active-tab: #FFEB3B;--canvas-muted: #52616D;--text-xs: 1rem;--text-sm: 1.125rem;--text-base: 1.25rem;--text-md: 1.5rem;--text-lg: 1.75rem;--column-heading-band: 60px;--column-heading-size: 22px;--column-heading-pad-y: 8px;--column-heading-pad-x: 12px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:IBM Plex Sans,-apple-system,system-ui,sans-serif;background:var(--console);color:var(--fg)}.app{display:flex;flex-direction:column;height:100vh;overflow:hidden}header{display:flex;align-items:baseline;gap:clamp(32px,4vw,72px);flex-wrap:nowrap;padding:14px 20px;border-bottom:1px solid var(--line);background:var(--console-2)}header h1{flex:none;font-size:var(--text-md);font-weight:600;letter-spacing:.02em;margin:0}header h1 .arrow{color:var(--ochre)}header .hint{font-family:IBM Plex Mono,monospace;font-size:var(--text-sm);line-height:1.5;color:var(--instruction)}header .hint b{color:inherit;font-weight:500}header .instruction-separator{color:inherit;padding:0 .45em}header .hint-compact,header .hint-phone{display:none}.mobile-tabs{display:none}main{display:flex;flex:1;min-height:0}#stage{flex:1;min-width:0;position:relative;background:var(--canvas)}#cy{position:absolute;inset:var(--column-heading-band) 0 0}.columns{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.columns .col-label{position:absolute;top:6px;transform:translate(-50%);white-space:nowrap;padding:var(--column-heading-pad-y) var(--column-heading-pad-x);font-family:IBM Plex Mono,monospace;font-size:var(--column-heading-size);font-weight:600;line-height:1.2;letter-spacing:.14em;text-transform:uppercase;color:var(--canvas-muted)}.columns .label-short{display:none}.columns .col-label.discipline{left:16.66%}.columns .col-label.topic{left:50%}.columns .col-label.subject{left:83.33%}#ghost{position:absolute;top:0;right:0;bottom:0;left:33%;display:flex;align-items:center;justify-content:center;pointer-events:none;padding:0 8%;text-align:center;transition:opacity .25s}#ghost p{font-family:IBM Plex Mono,monospace;font-size:var(--text-sm);line-height:1.7;color:var(--canvas-muted);max-width:360px}#ghost.gone{opacity:0}aside{width:clamp(340px,23vw,440px);flex:none;background:var(--console);border-left:1px solid var(--line);display:flex;flex-direction:column;min-height:0}.panel{padding:18px 18px 0}.eyebrow{font-family:IBM Plex Mono,monospace;font-size:var(--text-xs);letter-spacing:.16em;text-transform:uppercase;color:var(--muted-2);margin:0 0 10px}#crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px;margin-bottom:14px}.crumb{font-size:var(--text-sm);font-weight:500;border:none;background:none;cursor:pointer;padding:5px 8px;border-radius:6px;color:var(--fg);transition:background .15s;font-family:inherit}.crumb.home{color:var(--muted);font-family:IBM Plex Mono,monospace;font-size:var(--text-xs);letter-spacing:.04em;text-transform:uppercase}.crumb:hover{background:var(--console-2)}.crumb[data-layer=discipline]{color:#7ea7d4}.crumb[data-layer=topic]{color:#dca36b}.crumb[data-layer=subject]{color:#6fc3a3}.crumb.current{cursor:default;font-weight:600}.crumb.current:hover{background:none}.crumb:disabled{cursor:default}.sep{color:var(--muted-2);font-size:var(--text-sm)}#status{font-size:var(--text-sm);color:var(--instruction);line-height:1.6;padding-bottom:16px;border-bottom:1px solid var(--line)}#status b{color:var(--fg);font-weight:600}.docs-head{display:flex;align-items:center;justify-content:flex-start;gap:8px;padding:18px 18px 12px}.docs-head .eyebrow{margin:0;color:var(--fg)}.docs-head .count{font-family:IBM Plex Mono,monospace;font-size:var(--text-xs);color:var(--fg);padding:0}#docs{flex:1;overflow-y:auto;padding:0 18px 18px}.doc{border:1px solid var(--line);border-radius:12px;padding:12px 13px;margin-bottom:10px;background:var(--console-2);transition:border-color .15s,transform .15s}.doc:hover{border-color:#3a4a5a;transform:translateY(-1px)}.doc-header{display:flex;align-items:flex-start;gap:10px}.file-icon{font-size:17px;line-height:1;flex-shrink:0}.doc-title{font-size:16px;font-weight:600;line-height:1.4;color:var(--fg)}.doc-title a{color:inherit;text-decoration:none;transition:color .15s}.doc-title a:hover{color:#7eb8e8}.doc .tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:9px}.doc .tag{font-family:IBM Plex Mono,monospace;font-size:12px;font-weight:500;letter-spacing:.02em;text-transform:uppercase;padding:3px 8px;border-radius:20px;border:none;color:#ffffffb3;background:var(--line);transition:all .15s}.doc .tag[data-layer=discipline]{background:#2f6fa84d;color:#7ea7d4}.doc .tag[data-layer=subject]{background:#8c5a7c4d;color:#d19cc0}.doc .tag[data-layer=assignment-info]{background:#168a8a40;color:#79d5d5}.doc .tag[data-layer=eop-los]{background:#4e8fbf40;color:#8ec5ec;text-transform:none}.doc .tag[data-layer=author-info]{background:#c99a3e38;color:#e4bd70;text-transform:none}.doc .tag.active{font-weight:600}.doc .tag.active[data-layer=discipline]{background:var(--steel);color:#fff}.doc .tag.active[data-layer=subject]{background:var(--rose);color:#fff}.docs-empty{font-size:var(--text-base);color:var(--muted-2);padding:20px 4px;line-height:1.6;text-align:center}.app-message{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:IBM Plex Mono,monospace;font-size:var(--text-base);line-height:1.6;color:var(--muted);text-align:center;padding:24px;gap:8px}.app-message.error{color:var(--ochre)}.app-message .detail{font-size:var(--text-xs);color:var(--muted-2)}.app-message code{color:var(--fg)}@media (max-width: 1300px){header{gap:20px}header h1{font-size:var(--text-base)}header .hint{font-size:15px;white-space:nowrap}header .hint-desktop{display:none}header .hint-compact{display:inline}aside{width:clamp(320px,30vw,380px)}.columns .label-full{display:none}.columns .label-short{display:inline}}@media (max-width: 1050px){header{justify-content:space-between;gap:16px}header .title-prefix{display:none}.mobile-tabs{display:flex;flex:none;background:var(--console-2);border-bottom:1px solid var(--line)}.mobile-tabs button{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;border:0;border-bottom:3px solid transparent;padding:10px 12px;background:transparent;color:var(--muted);font:600 15px/1.2 IBM Plex Sans,sans-serif;cursor:pointer}.mobile-tabs button.active{color:var(--fg);border-bottom-color:var(--active-tab)}.mobile-tabs button.has-results:not(.active){color:var(--fg);background:#ffeb3b14}.mobile-tabs button:disabled{color:var(--muted-2);cursor:not-allowed;opacity:.55}.mobile-tabs .tab-count{min-width:22px;padding:2px 6px;border-radius:12px;background:var(--line);color:var(--fg);font:500 11px/1.3 IBM Plex Mono,monospace}.mobile-tabs button.has-results:not(.active) .tab-count{background:var(--instruction);color:var(--ink);font-weight:700}main{display:block;position:relative}main #stage,main aside{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}main.mobile-view-explore aside{display:none}main.mobile-view-documents #stage{display:none}main.mobile-view-documents aside{display:flex;border-left:0}.panel{padding:16px 16px 0}#status{font-size:16px}.docs-head{padding:16px 16px 11px}#docs{padding:0 14px 16px}.doc{padding:11px 12px;margin-bottom:9px}.doc-title{font-size:16px;line-height:1.4}.doc .tags{gap:4px;margin-top:8px}.doc .tag{font-size:12px;padding:3px 7px}}@media (max-width: 700px){:root{--column-heading-band: 54px;--column-heading-size: 16px;--column-heading-pad-y: 6px;--column-heading-pad-x: 6px}header{justify-content:space-between;gap:10px;padding:10px 12px}header h1{font-size:15px}header .hint{font-size:14px}header .hint-compact{display:none}header .hint-phone{display:inline}.panel{padding:14px 12px 0}#crumbs{gap:3px 4px;margin-bottom:10px}.crumb{font-size:14px;padding:3px 5px}.crumb.home{font-size:11px}#status{font-size:14px;line-height:1.5;padding-bottom:12px}.docs-head{padding:14px 12px 10px}.docs-head .count{font-size:11px;padding:0}#docs{padding:0 10px 12px}.doc{padding:9px;margin-bottom:8px;border-radius:10px}.doc-header{gap:7px}.file-icon{font-size:15px}.doc-title{font-size:14px;line-height:1.35}.doc .tags{gap:4px;margin-top:7px}.doc .tag{font-size:10px;letter-spacing:.02em;padding:2px 6px}.docs-empty{font-size:14px;padding:16px 4px}#ghost{left:33%}}@media (prefers-reduced-motion: reduce){*{transition:none!important}}
