:root{font-family:SF Pro Text,SF Pro Display,PingFang SC,Microsoft YaHei UI,Microsoft YaHei,Segoe UI,Arial,sans-serif;color:#111827;background:#eef2f7;font-synthesis:none;text-rendering:optimizeLegibility;--text: #111827;--muted: #64748b;--faint: #94a3b8;--line: rgba(148, 163, 184, .28);--hairline: rgba(15, 23, 42, .08);--surface: rgba(255, 255, 255, .82);--surface-strong: #ffffff;--surface-soft: rgba(248, 250, 252, .86);--blue: #0a84ff;--teal: #00a6a6;--amber: #c47a1a;--red: #d94841;--green: #11875d;--shadow: 0 22px 58px rgba(15, 23, 42, .1);--small-shadow: 0 10px 28px rgba(15, 23, 42, .08)}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at 12% 8%,rgba(10,132,255,.12),transparent 28%),radial-gradient(circle at 92% 6%,rgba(0,166,166,.1),transparent 30%),#eef2f7}button,input,select,textarea{font:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid rgba(10,132,255,.22);outline-offset:2px}.app-shell,.generic-shell,.student-shell,.assistant-shell,.lecturer-shell,.admin-shell{min-height:100vh;display:grid;grid-template-columns:244px minmax(0,1fr);background:transparent}.sidebar,.generic-sidebar,.student-sidebar,.assistant-sidebar,.lecturer-sidebar,.admin-sidebar{min-height:100vh;color:var(--text);display:flex;flex-direction:column;position:sticky;top:0;border-right:1px solid var(--hairline);background:#ffffffa3;-webkit-backdrop-filter:blur(22px) saturate(160%);backdrop-filter:blur(22px) saturate(160%)}.brand{display:flex;gap:12px;align-items:center;padding:20px 18px 16px}.brand-mark{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:#111827;color:#fff;font-weight:800;box-shadow:var(--small-shadow)}.terminal-student .brand-mark{background:#0a84ff}.terminal-assistant .brand-mark{background:#00a6a6}.terminal-lecturer .brand-mark{background:#5e5ce6}.terminal-admin .brand-mark{background:#1f2937}.brand strong,.brand span{display:block}.brand strong{font-size:14px}.brand span{margin-top:3px;color:var(--muted);font-size:12px}.workflow-nav,.generic-sidebar nav{display:grid;gap:5px;padding:8px 12px}.workflow-link,.nav-link{min-height:42px;display:flex;align-items:center;gap:10px;color:#475569;text-decoration:none;border-radius:12px;padding:0 12px;font-size:14px;font-weight:700;border:1px solid transparent}.workflow-link:hover,.nav-link:hover{background:#ffffffb8;border-color:var(--hairline)}.workflow-link.active,.nav-link.active{background:#fff;color:#0f172a;border-color:var(--hairline);box-shadow:0 8px 22px #0f172a14}.route-page-experience{display:grid;gap:16px;margin:18px 0;min-width:0}.route-page-hero,.route-command-bar,.route-primary-panel,.route-side-panel>section{border:1px solid var(--hairline);border-radius:18px;background:#ffffffe0;box-shadow:0 12px 32px #0f172a0f}.route-page-hero{min-height:126px;padding:20px;display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.route-page-title{min-width:0;display:flex;align-items:flex-start;gap:12px}.route-icon{width:44px;height:44px;flex:0 0 44px;border-radius:14px;display:grid;place-items:center;color:#0b716a;background:#e0f2ef}.route-kicker{display:block;color:#566372;font-size:12px;font-weight:850}.route-page-title h2{margin:6px 0 0;color:var(--text);font-size:26px;line-height:1.18;letter-spacing:0}.route-page-title p,.route-page-state span,.route-section-heading p,.route-action small,.route-object-row span,.route-object-row small,.route-report-cover p,.route-report-chapters p{color:var(--muted);font-size:13px;line-height:1.5}.route-page-title p{margin:7px 0 0;max-width:68ch}.route-page-state{flex:0 0 auto;display:grid;justify-items:end;gap:8px}.route-command-bar{min-height:58px;padding:9px;display:grid;grid-template-columns:minmax(220px,1fr) auto auto;gap:9px;align-items:center}.route-command-bar label{min-width:0;height:40px;display:flex;align-items:center;gap:9px;padding:0 12px;border:1px solid var(--hairline);border-radius:13px;background:#fff}.route-command-bar input{width:100%;min-width:0;border:0;outline:0;background:transparent;color:var(--text)}.route-command-bar button{min-height:40px;border:1px solid var(--hairline);border-radius:13px;background:#fff;color:var(--text);display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 13px;font-weight:850}.route-command-bar>span{min-height:40px;display:inline-flex;align-items:center;color:var(--muted);font-size:12px;font-weight:800}.route-page-grid{display:grid;grid-template-columns:minmax(0,1fr) 388px;gap:16px;align-items:start;min-width:0}.route-primary-panel{min-width:0;padding:18px}.route-side-panel{min-width:0;display:grid;gap:16px;position:sticky;top:86px}.route-side-panel>section{padding:16px}.route-section-heading{display:flex;align-items:flex-start;gap:10px;margin-bottom:14px}.route-section-heading>svg{flex:0 0 auto;color:#0b716a}.route-section-heading h3{margin:0;color:var(--text);font-size:17px;line-height:1.35;letter-spacing:0}.route-section-heading p{margin:4px 0 0}.route-object-list{display:grid;gap:10px}.route-object-row{min-height:76px;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(120px,.35fr);gap:12px;align-items:center;border:1px solid var(--hairline);border-radius:14px;background:#fff;padding:12px}.route-object-row strong,.route-field-grid strong,.route-summary-grid strong{color:var(--text);overflow-wrap:anywhere}.route-object-row span{display:block;margin-top:4px}.route-object-row small{justify-self:end;text-align:right}.route-form-grid,.route-field-grid,.route-summary-grid,.route-report-chapters{display:grid;gap:10px}.route-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.route-form-grid label{min-width:0;display:grid;gap:7px;color:var(--muted);font-size:12px;font-weight:850}.route-form-grid label.wide{grid-column:1 / -1}.route-form-grid input,.route-form-grid textarea{width:100%;min-width:0;border:1px solid var(--hairline);border-radius:12px;background:#fff;color:var(--text);padding:10px 12px;font-weight:750}.route-form-grid textarea{min-height:92px;resize:vertical}.route-detail-object,.route-report-cover{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;border:1px solid var(--hairline);border-radius:16px;background:#fff;padding:16px;margin-bottom:12px}.route-detail-object span{color:#0b716a;font-size:12px;font-weight:850}.route-detail-object h3,.route-report-cover h3{margin:5px 0 0;color:var(--text);font-size:20px;line-height:1.25;letter-spacing:0}.route-detail-object p,.route-report-cover p{margin:6px 0 0}.route-field-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.route-field-grid div,.route-summary-grid article,.route-report-chapters article{min-width:0;border:1px solid var(--hairline);border-radius:14px;background:#fff;padding:12px;display:grid;gap:6px}.route-field-grid span,.route-summary-grid span,.route-report-chapters span{color:var(--muted);font-size:12px;font-weight:850}.route-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:12px}.route-summary-grid article svg{color:#0b716a}.route-report-cover{align-items:center}.route-report-cover>svg{flex:0 0 auto;color:#395a7a}.route-report-cover>div{min-width:0;flex:1}.route-report-chapters{grid-template-columns:repeat(2,minmax(0,1fr))}.route-report-chapters p{margin:0;color:var(--text);font-weight:750}.route-action-list,.route-contract-list{display:grid;gap:8px}.route-action{width:100%;min-height:58px;border:1px solid var(--hairline);border-radius:13px;background:#fff;color:var(--text);display:grid;align-content:center;gap:4px;padding:10px 12px;text-align:left}.route-action span{min-width:0;display:flex;align-items:center;gap:8px}.route-action svg{flex:0 0 auto;color:#0b716a}.route-action strong{min-width:0;overflow-wrap:anywhere}.route-action-api{border-color:#0b716a3d}.route-action-route svg{color:#395a7a}.route-action-local svg{color:#9a650f}.route-action-disabled{opacity:.55;cursor:not-allowed}.route-action-disabled svg{color:#8792a0}.route-contract-list span{min-width:0;border:1px solid var(--hairline);border-radius:11px;background:#f8fafceb;color:#334155;padding:8px 10px;font-size:12px;font-weight:750;overflow-wrap:anywhere}.workflow-link svg,.nav-link svg{flex:0 0 auto;color:#64748b}.workflow-link.active svg,.nav-link.active svg{color:var(--blue)}.sidebar-brief{margin:auto 16px 18px;border:1px solid var(--hairline);border-radius:14px;padding:14px;display:grid;gap:5px;background:#ffffff94}.sidebar-brief span,.sidebar-brief small{color:var(--muted);font-size:12px}.sidebar-brief strong{font-size:16px;overflow-wrap:anywhere}.workspace,.generic-workspace,.student-workspace,.assistant-workspace,.lecturer-workspace,.admin-workspace{min-width:0;padding:0 28px 32px}.topbar,.generic-topbar,.student-topbar,.assistant-topbar,.lecturer-topbar,.admin-topbar{min-height:70px;display:flex;align-items:center;gap:10px;position:sticky;top:0;z-index:10;background:#eef2f7c7;-webkit-backdrop-filter:blur(18px) saturate(160%);backdrop-filter:blur(18px) saturate(160%);border-bottom:1px solid var(--hairline)}.global-search{flex:1;min-width:220px;height:42px;border:1px solid var(--hairline);border-radius:13px;background:#ffffffd6;display:flex;align-items:center;gap:10px;padding:0 13px;box-shadow:inset 0 1px #fffc}.global-search input{width:100%;min-width:0;border:0;outline:0;color:var(--text);background:transparent}.filter-bar label,.auth-panel label{display:grid;gap:6px;color:var(--muted);font-size:12px;font-weight:700}.filter-bar select,.filter-bar input,.auth-panel input{min-width:0;height:40px;border:1px solid var(--hairline);border-radius:12px;background:#fff;color:var(--text);padding:0 12px}.icon-button{width:42px;height:42px;border-radius:13px;border:1px solid var(--hairline);background:#ffffffdb;color:#334155;display:grid;place-items:center;position:relative}.notify-dot{position:absolute;top:-5px;right:-5px;min-width:18px;height:18px;border-radius:9px;background:var(--red);color:#fff;font-size:11px;line-height:18px}.workflow-header,.generic-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:26px 0 17px}.workflow-header h1,.generic-header h1,.student-topbar h1,.assistant-topbar h1,.lecturer-topbar h1,.student-hero h2,.assistant-hero h2,.lecturer-hero h2,.panel-heading h2,.detail-drawer h2,.detail-drawer h3,.auth-panel h1{margin:0;letter-spacing:0}.workflow-header h1,.generic-header h1{font-size:30px;line-height:1.15}.workflow-header p,.generic-header p,.student-topbar p,.assistant-topbar p,.lecturer-topbar p,.admin-topbar p,.student-hero p,.assistant-hero p,.lecturer-hero p,.panel-heading p,.drawer-header p,.modal-card p,.auth-panel p{margin:7px 0 0;color:var(--muted);font-size:13px;line-height:1.55}.primary-button,.secondary-button{min-height:42px;border-radius:13px;padding:0 15px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;font-size:14px;font-weight:750}.primary-button{color:#fff;background:var(--blue)}.secondary-button{color:#1f2937;background:#ffffffdb;border-color:var(--hairline)}.compact{min-height:40px;padding:0 12px}.primary-button:disabled,.secondary-button:disabled,.action-row:disabled{cursor:not-allowed;opacity:.5}.permission-banner,.data-quality{border-radius:14px;padding:11px 13px;display:flex;gap:9px;align-items:flex-start;font-size:13px;font-weight:700;border:1px solid transparent}.permission-banner.success{background:#ecfdf5db;color:#065f46;border-color:#11875d2e}.permission-banner.warning,.data-quality{background:#fff7ede6;color:#7a4a14;border-color:#c47a1a38}.permission-banner.danger{background:#fef2f2e6;color:#991b1b;border-color:#d9484138}.data-quality{margin-bottom:16px}.data-quality p,.data-quality small{display:block;margin:4px 0 0;color:#7a4a14;font-weight:500}.metric-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.metric{min-height:84px;background:var(--surface);border:1px solid var(--hairline);border-radius:16px;padding:14px;display:grid;align-content:center;gap:7px;box-shadow:0 8px 24px #0f172a0d}.metric span{color:var(--muted);font-size:13px}.metric strong{color:var(--text);font-size:20px;line-height:1.2;overflow-wrap:anywhere}.metric-blue{border-top:3px solid var(--blue)}.metric-teal{border-top:3px solid var(--teal)}.metric-amber{border-top:3px solid var(--amber)}.metric-red{border-top:3px solid var(--red)}.metric-green{border-top:3px solid var(--green)}.metric-slate{border-top:3px solid #536579}.work-surface,.generic-surface{display:grid;grid-template-columns:minmax(0,1fr) 372px;gap:16px;align-items:start;min-width:0}.queue-panel,.detail-drawer,.modal-card,.student-main-panel,.student-evidence-band>article,.observation-pool{background:var(--surface);border:1px solid var(--hairline);border-radius:18px;box-shadow:0 12px 32px #0f172a0f}.queue-panel,.student-main-panel,.student-evidence-band>article,.observation-pool{padding:18px;min-width:0}.detail-drawer{min-width:0}.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}.inline-section-heading{display:flex;align-items:center;gap:8px;color:var(--text);font-size:13px;font-weight:850}.filter-bar{display:grid;grid-template-columns:126px minmax(190px,1fr) 160px auto;gap:12px;align-items:end;padding:12px;background:var(--surface-soft);border:1px solid var(--hairline);border-radius:16px;margin-bottom:14px}.filter-title{min-height:40px;display:flex;align-items:center;gap:8px;font-weight:800;color:var(--text)}.resource-table{overflow:auto;max-width:100%;min-width:0;border:1px solid var(--hairline);border-radius:14px;background:#fff}.table-caption{display:flex;justify-content:space-between;gap:12px;color:var(--muted);font-size:13px;padding:12px 12px 0;margin-bottom:8px}.table-caption span{color:var(--text);font-weight:800}table{width:100%;border-collapse:collapse;min-width:720px}th,td{border-bottom:1px solid rgba(148,163,184,.22);padding:12px 10px;text-align:left;vertical-align:middle;font-size:13px}th{color:var(--muted);background:#f8fafc;font-weight:800}tr.selected td{background:#edf6ff}td button{max-width:100%;display:grid;gap:4px;border:0;background:transparent;color:inherit;padding:0;text-align:left}td button strong{color:var(--text)}td button span{color:var(--muted)}.status-badge,.status-pill{display:inline-flex;min-height:25px;align-items:center;border-radius:9px;padding:0 9px;font-size:12px;font-weight:800;white-space:nowrap}.status-pill{min-height:30px;border-radius:10px}.status-blue{color:#175cd3;background:#eaf2ff}.status-teal{color:#0d6565;background:#e7f6f5}.status-amber{color:#7a4a14;background:#fff2df}.status-red{color:#991b1b;background:#fff1f1}.status-green{color:#065f46;background:#ecfdf5}.status-slate{color:#344054;background:#eef1f5}.status-primary,.status-evidence{color:#175cd3;background:#eaf2ff}.status-warning{color:#7a4a14;background:#fff2df}.status-danger{color:#991b1b;background:#fff1f1}.status-success{color:#065f46;background:#ecfdf5}.status-neutral{color:#344054;background:#eef1f5}.empty-state{padding:28px 12px;text-align:center;color:var(--muted)}.detail-drawer{padding:18px;position:sticky;top:86px}.drawer-header{border-bottom:1px solid var(--hairline);padding-bottom:14px}.drawer-header span{color:var(--blue);font-size:12px;font-weight:800}.drawer-header h2{margin-top:6px;font-size:21px;line-height:1.25}.drawer-section{padding:16px 0;border-bottom:1px solid var(--hairline)}.drawer-section:last-child{border-bottom:0;padding-bottom:0}.drawer-section h3{font-size:15px;margin-bottom:12px}.evidence-list,.evidence-meta{display:grid;gap:10px;margin:0}.evidence-list div,.evidence-meta div{display:grid;gap:3px;padding:10px;background:#f8fafceb;border:1px solid var(--hairline);border-radius:12px}.evidence-list dt,.evidence-meta dt{color:var(--muted);font-size:12px}.evidence-list dd,.evidence-meta dd{margin:0;color:var(--text);font-size:13px;font-weight:700;overflow-wrap:anywhere}.mono{font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:12px}.action-list{display:grid;gap:9px}.action-row{min-height:43px;border:1px solid var(--hairline);border-radius:13px;background:#fff;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 12px;color:var(--text);font-weight:700}.action-copy{min-width:0;display:inline-flex;align-items:center;gap:9px;text-align:left}.action-copy>span:last-child{min-width:0;overflow-wrap:anywhere}.action-icon{width:28px;height:28px;flex:0 0 28px;display:inline-flex;align-items:center;justify-content:center;border-radius:9px;color:var(--blue);background:#2563eb17}.action-icon.danger,.danger-action .action-icon{color:#991b1b;background:#b9413b1c}.action-chevron{flex:0 0 auto;color:#94a3b8}.capability-strip{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.capability-strip span{min-height:30px;display:inline-flex;align-items:center;border:1px solid var(--hairline);border-radius:11px;background:#ffffffbd;color:#334155;padding:0 10px;font-size:12px;font-weight:700;max-width:100%}.filter-meta{min-height:40px;display:inline-flex;align-items:center;color:var(--muted);font-size:12px;font-weight:700}.student-shell{grid-template-columns:236px minmax(0,1fr)}.assistant-shell,.lecturer-shell{grid-template-columns:240px minmax(0,1fr)}.admin-shell{grid-template-columns:248px minmax(0,1fr)}.student-topbar,.assistant-topbar,.admin-topbar,.lecturer-topbar{justify-content:space-between}.student-topbar h1,.assistant-topbar h1,.lecturer-topbar h1,.admin-topbar h1{font-size:24px;line-height:1.2}.student-topbar-actions{display:inline-flex;align-items:center;gap:10px}.student-mobile-companion,.assistant-mobile-companion{display:none}.student-hero,.assistant-hero,.lecturer-hero{min-height:136px;margin:18px 0 16px;padding:22px;display:flex;align-items:flex-start;justify-content:space-between;gap:18px;border:1px solid var(--hairline);border-radius:18px;background:linear-gradient(135deg,#ffffffeb,#eff9ffe0);box-shadow:0 12px 34px #0f172a0f}.lecturer-topbar{justify-content:space-between}.lecturer-hero{background:linear-gradient(135deg,#fffffff0,#f4f1ffe0)}.assistant-hero{background:linear-gradient(135deg,#fffffff0,#e8f8f6e0)}.student-hero h2,.assistant-hero h2,.lecturer-hero h2{margin-top:8px;font-size:28px;line-height:1.16}.eyebrow{display:inline-flex;min-height:26px;align-items:center;border-radius:10px;background:#0a84ff1a;color:#175cd3;padding:0 9px;font-size:12px;font-weight:800}.student-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:16px;align-items:start}.student-main-panel{display:grid;gap:16px}.learning-timeline{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;list-style:none;padding:0;margin:0}.timeline-node{min-height:112px;border:1px solid var(--hairline);border-radius:14px;background:#fff;padding:12px;display:grid;align-content:start;gap:8px}.timeline-index{width:28px;height:28px;border-radius:10px;display:grid;place-items:center;background:#eef2f7;color:#334155;font-size:12px;font-weight:850}.timeline-label{color:var(--text);font-size:14px;font-weight:850}.timeline-state{color:var(--muted);font-size:12px;line-height:1.45}.timeline-done{border-color:#11875d38;background:#f0fdf7}.timeline-current{border-color:#0a84ff3d;background:#edf6ff}.timeline-pending{border-color:#c47a1a33;background:#fff7ed}.student-summary-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.student-summary-item{min-height:74px;border:1px solid var(--hairline);border-radius:14px;background:#fff;padding:12px;display:grid;align-content:center;gap:6px}.student-summary-item span{color:var(--muted);font-size:12px;font-weight:700}.student-summary-item strong{min-width:0;color:var(--text);font-size:15px;line-height:1.35;overflow-wrap:anywhere}.student-actions{display:grid;gap:9px}.student-side-panel{min-width:0;display:grid;gap:16px}.observation-pool{min-height:100%}.panel-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:14px}.panel-head h3{margin:0;font-size:18px;letter-spacing:0}.panel-sub{color:var(--muted);font-size:12px;font-weight:700}.pool-skeleton,.pool-empty{min-height:126px;border:1px dashed rgba(148,163,184,.42);border-radius:14px;display:grid;place-items:center;padding:16px;color:var(--muted);text-align:center}.pool-empty{gap:7px}.pool-empty p{margin:0;color:var(--text);font-weight:800}.pool-empty span{font-size:12px;line-height:1.5}.pool-skeleton{background:linear-gradient(90deg,#f8fafc,#eef6ff,#f8fafc);background-size:180% 100%;animation:skeleton-sweep 1.2s ease-in-out infinite}.pool-list{list-style:none;display:grid;gap:10px;padding:0;margin:0}.pool-item{width:100%;min-height:78px;border:1px solid var(--hairline);border-radius:14px;background:#fff;color:var(--text);padding:12px;display:grid;gap:8px;text-align:left}.pool-item:hover{border-color:#0a84ff47;box-shadow:0 8px 22px #0f172a0f}.pool-item-head,.pool-item-meta{display:flex;gap:10px}.pool-item-head{align-items:center;justify-content:space-between}.pool-item-name{min-width:0;display:inline-flex;align-items:center;gap:9px;font-weight:850;overflow-wrap:anywhere}.pool-item-meta{flex-wrap:wrap;color:var(--muted);font-size:12px}.student-evidence-band{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.78fr);gap:16px;margin-top:16px}.assistant-layout{display:grid;grid-template-columns:minmax(220px,.68fr) minmax(0,1.44fr) minmax(250px,.82fr);gap:16px;align-items:start}.assistant-queue-panel,.assistant-main-panel,.assistant-context-panel{min-width:0;background:var(--surface);border:1px solid var(--hairline);border-radius:18px;box-shadow:0 12px 32px #0f172a0f;padding:18px}.assistant-queue-list,.assistant-main-panel,.assistant-context-panel{display:grid;gap:14px}.assistant-queue-item{min-height:92px;border:1px solid var(--hairline);border-radius:14px;background:#fff;padding:13px;display:grid;gap:10px}.assistant-queue-item.active{border-color:#00a6a647;background:#eefbf9}.assistant-queue-item strong,.assistant-progress-card h2,.assistant-evidence-card h2,.assistant-action-grid h2,.assistant-context-panel h2{margin:0;color:var(--text)}.assistant-queue-item span,.assistant-action-grid p,.assistant-context-panel p{margin:5px 0 0;color:var(--muted);font-size:13px;line-height:1.5}.assistant-progress-card,.assistant-evidence-card,.assistant-action-grid>article,.assistant-context-panel>section{min-width:0;border:1px solid var(--hairline);border-radius:16px;background:#fff;padding:15px}.assistant-progress-grid{display:grid;grid-template-columns:minmax(90px,.55fr) minmax(0,1fr);gap:10px 12px;margin-top:12px}.assistant-progress-grid span{color:var(--muted);font-size:12px;font-weight:800}.assistant-progress-grid strong{min-width:0;color:var(--text);font-size:13px;overflow-wrap:anywhere}.assistant-evidence-card{display:grid;gap:13px}.assistant-evidence-card .action-row,.assistant-context-panel .action-row{min-height:66px;min-width:0;width:100%;align-items:flex-start;flex-direction:column;justify-content:center;padding:10px 12px;overflow:hidden}.assistant-evidence-card .action-api,.assistant-context-panel .action-api{display:block;width:100%;max-width:100%;min-width:0;box-sizing:border-box;padding-left:37px;line-height:16px;white-space:nowrap;overflow:hidden;overflow-wrap:normal;word-break:normal;text-align:left;text-overflow:ellipsis}.assistant-action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.assistant-action-grid>article{display:grid;gap:14px}.assistant-action-grid svg,.assistant-context-panel .panel-heading svg{color:var(--teal)}.assistant-timeline{list-style:none;display:grid;gap:13px;margin:14px 0;padding:0;color:#334155;font-size:13px;font-weight:700}.assistant-timeline li{display:flex;align-items:center;gap:10px}.assistant-timeline span{width:10px;height:10px;border-radius:999px;background:var(--teal);box-shadow:0 0 0 4px #00a6a61f}.action-api{min-width:0;color:var(--muted);font-size:11px;font-weight:800;overflow-wrap:anywhere}.lecturer-layout{display:grid;grid-template-columns:minmax(230px,.76fr) minmax(0,1.45fr) minmax(300px,.86fr);gap:16px;align-items:start}.lecturer-queue-panel,.lecturer-review-panel,.lecturer-context-panel{min-width:0;background:var(--surface);border:1px solid var(--hairline);border-radius:18px;box-shadow:0 12px 32px #0f172a0f;padding:18px}.lecturer-queue-list{display:grid;gap:10px}.lecturer-queue-item{min-height:92px;border:1px solid var(--hairline);border-radius:14px;background:#fff;padding:13px;display:grid;gap:10px}.lecturer-queue-item.active{border-color:#5e5ce63d;background:#f4f2ff}.lecturer-queue-item strong,.lecturer-note-card h3,.lecturer-lab h3,.lecturer-context-panel h2{margin:0;color:var(--text)}.lecturer-queue-item span,.lecturer-note-card p,.lecturer-lab p{margin:5px 0 0;color:var(--muted);font-size:13px;line-height:1.5}.lecturer-review-panel{display:grid;gap:16px}.lecturer-review-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.lecturer-note-card,.lecturer-lab,.lecturer-context-panel>section{border:1px solid var(--hairline);border-radius:16px;background:#fff;padding:15px}.lecturer-note-card{display:grid;gap:13px}.lecturer-lab{display:grid;gap:14px}.lecturer-lab-actions{display:flex;flex-wrap:wrap;gap:10px}.lecturer-context-panel{display:grid;gap:14px}.lecturer-timeline{list-style:none;display:grid;gap:13px;margin:14px 0 0;padding:0;color:#334155;font-size:13px;font-weight:700}.lecturer-timeline li{display:flex;align-items:center;gap:10px}.lecturer-timeline span{width:10px;height:10px;border-radius:999px;background:#5e5ce6;box-shadow:0 0 0 4px #5e5ce61f}.admin-query-panel{margin:18px 0 16px;display:grid;grid-template-columns:repeat(4,minmax(130px,1fr)) auto auto;gap:12px;align-items:end;border:1px solid var(--hairline);border-radius:18px;background:var(--surface);box-shadow:0 12px 32px #0f172a0d;padding:16px}.admin-query-panel label{display:grid;gap:6px;color:var(--muted);font-size:12px;font-weight:800}.admin-query-panel input{min-width:0;height:40px;border:1px solid var(--hairline);border-radius:12px;background:#fff;color:var(--text);padding:0 12px;font-weight:700}.admin-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);gap:16px;align-items:start}.admin-event-panel,.admin-action-panel,.admin-detail-card{min-width:0;background:var(--surface);border:1px solid var(--hairline);border-radius:18px;box-shadow:0 12px 32px #0f172a0f;padding:18px}.admin-event-list,.admin-action-grid,.admin-audit-list{display:grid;gap:10px}.admin-event-row{min-height:76px;display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;border:1px solid var(--hairline);border-radius:14px;background:#fff;padding:13px}.admin-event-row.active{border-color:#1f29372e;background:#f8fafc}.admin-event-row strong{display:block;color:var(--text);overflow-wrap:anywhere}.admin-event-row span,.admin-event-row small,.admin-action-grid small{color:var(--muted);font-size:12px;font-weight:700;overflow-wrap:anywhere}.admin-action-grid .action-row{min-height:58px;align-items:flex-start;flex-direction:column;justify-content:center}.danger-action{color:#991b1b;background:#fff7f7}.admin-detail-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:16px}.admin-detail-card{display:grid;align-content:start}.admin-audit-list{list-style:none;margin:0;padding:0}.admin-audit-list li{display:flex;gap:10px;align-items:flex-start;color:#334155;font-size:13px;font-weight:700;line-height:1.5}.entitlement-bar{position:sticky;bottom:0;z-index:20;min-height:58px;margin:18px -28px -32px;padding:10px 28px;display:flex;align-items:center;justify-content:space-between;gap:14px;border-top:1px solid var(--hairline);background:#ffffffe6;-webkit-backdrop-filter:blur(18px) saturate(160%);backdrop-filter:blur(18px) saturate(160%)}.entitlement-state{display:inline-flex;align-items:center;gap:8px;color:#334155;font-size:14px}.entitlement-dot{width:10px;height:10px;border-radius:999px;background:var(--green);box-shadow:0 0 0 4px #11875d1f}.ghost-button{min-height:38px;border:1px solid var(--hairline);border-radius:12px;background:#fff;color:#1f2937;padding:0 13px;font-weight:800}.ghost-button:disabled{cursor:not-allowed;opacity:.5}@keyframes skeleton-sweep{0%{background-position:100% 0}to{background-position:-100% 0}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;background:#0f172a4d;display:grid;place-items:center;padding:22px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.modal-card{width:min(560px,100%);box-shadow:var(--shadow);padding:22px}.check-row{display:flex;gap:10px;align-items:flex-start;margin:14px 0;color:#334155;line-height:1.5}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.toast{position:fixed;left:50%;bottom:22px;transform:translate(-50%);min-height:42px;max-width:min(92vw,520px);padding:0 16px;display:inline-flex;align-items:center;gap:8px;border-radius:15px;background:#111827eb;color:#fff;box-shadow:var(--shadow);z-index:40;font-size:14px}.auth-screen{min-height:100vh;display:grid;place-items:center;padding:24px;background:transparent}.auth-panel{width:min(420px,100%);display:grid;gap:14px;padding:26px;border:1px solid var(--hairline);border-radius:22px;background:#fffc;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(20px) saturate(160%);backdrop-filter:blur(20px) saturate(160%)}.auth-panel .brand-mark{margin-bottom:2px}.auth-message{min-height:20px;color:var(--muted);font-size:13px}@media(max-width:1180px){.app-shell,.generic-shell,.student-shell,.assistant-shell,.lecturer-shell,.admin-shell{grid-template-columns:214px minmax(0,1fr)}.work-surface,.generic-surface,.student-grid,.student-evidence-band,.assistant-layout,.assistant-action-grid,.lecturer-layout,.admin-grid,.route-page-grid,.admin-detail-grid,.admin-query-panel{grid-template-columns:1fr}.route-side-panel{position:static}.route-object-row{grid-template-columns:minmax(0,1fr) auto}.route-object-row small{grid-column:1 / -1;justify-self:start;text-align:left}.learning-timeline{grid-template-columns:repeat(3,minmax(0,1fr))}.detail-drawer{position:static}.filter-bar{grid-template-columns:1fr 1fr}.filter-title{grid-column:1 / -1}}@media(max-width:820px){.app-shell,.generic-shell,.student-shell,.assistant-shell,.lecturer-shell,.admin-shell{display:block}.sidebar,.generic-sidebar,.student-sidebar,.assistant-sidebar,.lecturer-sidebar,.admin-sidebar{min-height:auto;position:static;border-right:0;border-bottom:1px solid var(--hairline);padding:12px 14px 10px}.brand{padding:0 2px 10px}.brand-mark{width:38px;height:38px;border-radius:11px}.workflow-nav,.generic-sidebar nav{display:flex;gap:8px;width:100%;max-width:100%;min-width:0;overflow-x:auto;overflow-y:hidden;padding:0 2px 8px;scrollbar-width:none}.workflow-nav::-webkit-scrollbar,.generic-sidebar nav::-webkit-scrollbar{display:none}.workflow-link,.nav-link{flex:0 0 auto;min-height:38px;border-radius:13px;padding:0 12px;white-space:nowrap}.sidebar-brief{margin:0 2px;display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:13px}.sidebar-brief span{flex:0 0 auto}.sidebar-brief strong{font-size:14px}.sidebar-brief small{margin-left:auto}.workspace,.generic-workspace,.student-workspace,.assistant-workspace,.lecturer-workspace,.admin-workspace{padding:0 14px 22px}.topbar,.generic-topbar{min-height:auto;display:grid;grid-template-columns:minmax(0,1fr) 42px 42px auto auto;gap:8px;padding:10px 0}.topbar .secondary-button,.generic-topbar .secondary-button,.student-topbar .secondary-button,.assistant-topbar .secondary-button,.lecturer-topbar .secondary-button,.admin-topbar .secondary-button{min-height:38px}.topbar .secondary-button.compact,.generic-topbar .secondary-button.compact,.student-topbar .secondary-button.compact,.assistant-topbar .secondary-button.compact,.lecturer-topbar .secondary-button.compact,.admin-topbar .secondary-button.compact{min-width:40px}.workflow-header,.generic-header{align-items:stretch;flex-direction:column;gap:12px;padding:18px 0 14px}.global-search{min-width:0;height:38px;border-radius:13px}.icon-button{width:42px;height:38px;border-radius:13px}.filter-bar{grid-template-columns:1fr}.route-page-hero{flex-direction:column;min-height:auto;padding:16px}.route-page-state{width:100%;justify-items:start}.route-command-bar{grid-template-columns:1fr}.route-primary-panel,.route-side-panel>section{padding:14px;border-radius:16px}.route-field-grid,.route-form-grid,.route-summary-grid,.route-report-chapters{grid-template-columns:1fr}.metric-strip{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.metric{min-height:64px;border-radius:14px;padding:11px 12px}.metric span{font-size:12px}.metric strong{font-size:18px}.workflow-header h1,.generic-header h1{font-size:24px}.route-page-title h2{font-size:23px}.queue-panel,.detail-drawer,.modal-card,.student-main-panel,.student-evidence-band>article,.observation-pool,.assistant-queue-panel,.assistant-main-panel,.assistant-context-panel,.lecturer-queue-panel,.lecturer-review-panel,.lecturer-context-panel{border-radius:16px}.queue-panel,.detail-drawer,.student-main-panel,.student-evidence-band>article,.observation-pool,.lecturer-queue-panel,.lecturer-review-panel,.lecturer-context-panel{padding:14px}.student-topbar,.assistant-topbar,.admin-topbar,.lecturer-topbar{min-height:auto;display:flex;align-items:flex-start;padding:12px 0}.student-topbar-actions{gap:8px}.student-hero,.assistant-hero,.lecturer-hero{flex-direction:column;min-height:auto;margin:14px 0;padding:18px}.student-hero h2{font-size:24px}.student-mobile-companion{display:none;margin:14px 0 16px;border:1px solid var(--hairline);border-radius:18px;background:#ffffffe0;box-shadow:0 12px 32px #0f172a0f;padding:14px}.mobile-companion-header,.mobile-section-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.mobile-companion-header h2{margin:7px 0 0;font-size:20px;line-height:1.25}.mobile-companion-header p,.mobile-current-task p,.mobile-entitlement-card p{margin:6px 0 0;color:var(--muted);font-size:13px;line-height:1.45}.mobile-current-task,.mobile-review-card,.mobile-entitlement-card{margin-top:12px;border:1px solid var(--hairline);border-radius:16px;background:#fff;padding:13px}.mobile-section-title{justify-content:flex-start;align-items:center;color:#175cd3;font-size:13px;font-weight:850}.mobile-current-task strong{display:block;margin-top:10px;color:var(--text);font-size:18px;line-height:1.32;overflow-wrap:anywhere}.mobile-primary-action,.mobile-action-stack button,.mobile-entitlement-card button{width:100%;min-height:46px;margin-top:12px;border:1px solid var(--hairline);border-radius:14px;background:#fff;color:var(--text);display:flex;align-items:center;justify-content:center;gap:9px;font-weight:850}.mobile-primary-action{border-color:#0a84ff47;background:var(--blue);color:#fff}.mobile-companion-grid{margin-top:12px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.mobile-grid-heading{grid-column:1 / -1;display:flex;align-items:center;gap:8px;color:#334155;font-size:13px;font-weight:850}.mobile-companion-grid>div:not(.mobile-grid-heading){min-width:0;min-height:82px;border:1px solid var(--hairline);border-radius:14px;background:#fff;padding:11px;display:grid;align-content:start;gap:6px}.mobile-companion-grid svg,.mobile-review-card svg,.mobile-entitlement-card svg{flex:0 0 auto}.mobile-companion-grid span{color:var(--muted);font-size:12px;font-weight:750}.mobile-companion-grid strong{color:var(--text);font-size:13px;line-height:1.35;overflow-wrap:anywhere}.mobile-action-stack{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.assistant-mobile-companion{display:none;margin:10px 0 14px;border:1px solid var(--hairline);border-radius:18px;background:#ffffffe6;box-shadow:0 12px 32px #0f172a0f;padding:12px}.assistant-mobile-header,.assistant-mobile-urgent,.assistant-mobile-evidence,.assistant-mobile-timeline,.assistant-mobile-actions{min-width:0}.assistant-mobile-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.assistant-mobile-header h2{margin:5px 0 0;font-size:19px;line-height:1.25}.assistant-mobile-header p,.assistant-mobile-urgent p{margin:4px 0 0;color:var(--muted);font-size:13px;line-height:1.45}.assistant-mobile-urgent,.assistant-mobile-evidence,.assistant-mobile-timeline,.assistant-mobile-actions,.assistant-mobile-contract,.mobile-contract-card{margin-top:9px;border:1px solid var(--hairline);border-radius:16px;background:#fff;padding:11px}.assistant-mobile-urgent strong{display:block;margin-top:7px;color:var(--text);font-size:17px;line-height:1.32;overflow-wrap:anywhere}.assistant-mobile-evidence{display:grid;gap:7px}.assistant-mobile-evidence>div:not(.mobile-section-title){min-width:0;border:1px solid var(--hairline);border-radius:13px;padding:8px 10px;display:grid;gap:4px}.assistant-mobile-evidence span,.assistant-mobile-timeline li{color:var(--muted);font-size:12px;font-weight:750}.assistant-mobile-evidence strong{color:var(--text);font-size:13px;line-height:1.35;overflow-wrap:anywhere}.assistant-mobile-contract p,.mobile-contract-card p{margin-top:7px;color:var(--muted);font-family:var(--mono);font-size:11px;line-height:1.45;overflow-wrap:anywhere}.assistant-mobile-timeline ol{margin:8px 0 0;padding:0;display:grid;gap:6px;list-style:none}.assistant-mobile-timeline li{display:flex;align-items:center;gap:8px;color:#334155}.assistant-mobile-timeline li span{width:24px;height:24px;border-radius:8px;background:#0a84ff1a;color:var(--blue);display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}.assistant-mobile-action-grid{margin-top:8px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.assistant-mobile-action-grid button{min-width:0;min-height:44px;border:1px solid var(--hairline);border-radius:14px;background:#fff;color:var(--text);display:flex;align-items:center;justify-content:center;gap:8px;font-weight:850}.assistant-mobile-action-grid button:first-child{border-color:#0b716a47;background:#0b716a;color:#fff}.assistant-mobile-action-grid button:disabled{opacity:.55;cursor:not-allowed}.assistant-hero h2,.lecturer-hero h2{font-size:24px}.learning-timeline,.student-summary-list,.assistant-action-grid,.lecturer-review-grid{grid-template-columns:1fr 1fr}.entitlement-bar{margin:18px -14px -22px;padding:10px 14px}table{min-width:650px}.modal-actions{flex-direction:column-reverse}}@media(max-width:460px){.sidebar,.generic-sidebar,.student-sidebar,.assistant-sidebar,.lecturer-sidebar{padding-inline:12px}.brand strong{font-size:13px}.brand span,.sidebar-brief span,.sidebar-brief small{font-size:11px}.sidebar-brief{overflow:hidden}.sidebar-brief strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar,.generic-topbar{grid-template-columns:minmax(0,1fr) 40px 40px 40px 40px}.topbar .secondary-button.compact,.generic-topbar .secondary-button.compact,.student-topbar .secondary-button.compact,.assistant-topbar .secondary-button.compact,.lecturer-topbar .secondary-button.compact,.admin-topbar .secondary-button.compact{padding:0 8px;font-size:0;gap:0}.topbar .secondary-button.compact svg,.generic-topbar .secondary-button.compact svg,.student-topbar .secondary-button.compact svg,.assistant-topbar .secondary-button.compact svg,.lecturer-topbar .secondary-button.compact svg,.admin-topbar .secondary-button.compact svg{flex:0 0 auto}.workspace,.generic-workspace,.student-workspace,.assistant-workspace,.lecturer-workspace,.admin-workspace{padding-inline:12px}.student-topbar,.assistant-topbar,.admin-topbar,.lecturer-topbar{gap:10px}.student-topbar h1,.assistant-topbar h1,.admin-topbar h1{font-size:20px}.student-mobile-companion{display:block}.assistant-mobile-companion{display:block;margin-top:8px;padding:10px;border-radius:16px}.assistant-mobile-header p{display:none}.assistant-mobile-header h2{font-size:18px}.student-hero,.student-grid,.student-evidence-band{display:none}.assistant-hero,.assistant-layout,.assistant-workspace>.capability-strip{display:none}.student-sidebar .workflow-nav{display:grid;grid-template-columns:1fr;overflow:visible;padding-bottom:0}.assistant-sidebar .workflow-nav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;overflow:visible;padding-bottom:0}.student-sidebar .workflow-link{width:100%;white-space:normal}.assistant-sidebar .workflow-link{width:100%;min-height:42px;padding:0 6px;justify-content:center;white-space:normal;font-size:0}.assistant-sidebar .workflow-link svg{flex:0 0 auto}.lecturer-topbar h1{font-size:20px}.learning-timeline,.student-summary-list,.mobile-companion-grid,.mobile-action-stack,.assistant-mobile-action-grid,.lecturer-review-grid{grid-template-columns:1fr}.assistant-mobile-evidence{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.assistant-mobile-evidence .mobile-section-title{grid-column:1 / -1}.assistant-mobile-evidence>div:not(.mobile-section-title){padding:7px}.assistant-mobile-evidence span{font-size:11px}.assistant-mobile-evidence strong{font-size:12px}.assistant-mobile-urgent,.assistant-mobile-evidence,.assistant-mobile-timeline,.assistant-mobile-actions{margin-top:7px;padding:9px;border-radius:14px}.assistant-mobile-urgent strong{margin-top:5px;font-size:16px}.assistant-mobile-urgent p{font-size:12px}.assistant-mobile-timeline ol{margin-top:6px}.assistant-mobile-action-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.assistant-mobile-action-grid button{min-height:42px;font-size:12px;gap:6px}.route-page-experience{margin-top:12px;gap:12px}.route-page-title{gap:10px}.route-icon{width:38px;height:38px;flex-basis:38px;border-radius:12px}.route-detail-object,.route-report-cover{flex-direction:column;align-items:stretch}.route-action{min-height:54px}.entitlement-bar{align-items:stretch;flex-direction:column}th,td{padding:10px 8px}.toast{bottom:14px}}
