@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap");.portal-mockup{--portal-sidebar-w:14rem;--portal-sidebar-collapsed:4rem;--portal-font:"Inter",var(--font-sans),ui-sans-serif,system-ui,sans-serif;--portal-mono:"JetBrains Mono",ui-monospace,monospace;--portal-text-xs:0.75rem;--portal-text-sm:0.875rem;--portal-text-base:1rem;--portal-text-title:1.125rem;--portal-radius:0.375rem;--portal-radius-lg:0.75rem;--portal-radius-xl:0.875rem;font-family:var(--portal-font);font-size:var(--portal-text-sm);color:var(--portal-ink);background-color:var(--portal-root);-webkit-font-smoothing:antialiased;letter-spacing:-.01em}[data-theme=light] .portal-mockup{--portal-root:#f3efe7;--portal-sidebar:#ffffff;--portal-header:#ffffff;--portal-workbench:#ffffff;--portal-surface:#ffffff;--portal-surface-input:#ffffff;--portal-active:rgba(26,74,46,0.1);--portal-accent:#1a4a2e;--portal-accent-hover:#0c2217;--portal-accent-muted:rgba(26,74,46,0.12);--portal-ink:#0f1a14;--portal-ink-secondary:#0f1a14;--portal-muted:#7d8a92;--portal-muted-dim:#7d8a92;--portal-border:#e4ddd3;--portal-border-strong:#e4ddd3;--portal-muted-surface:#f7f4ef;--portal-feed-bg:#ffffff;--portal-feed-border:#e4ddd3;--portal-feed-ink:#0f1a14;--portal-feed-subtitle:#64748b;--portal-feed-item-border:#e4ddd3;--portal-feed-item-bg:rgba(247,244,239,0.5);--portal-feed-item-hover-bg:rgba(247,244,239,0.9);--portal-feed-chip-bg:#f7f4ef;--portal-feed-chip-border:#e4ddd3;--portal-feed-chip-fg:#475569;--portal-feed-link-fg:var(--portal-accent);--portal-feed-link-border:var(--portal-accent-border);--portal-feed-link-bg:var(--portal-accent-surface);--portal-feed-link-hover-bg:var(--portal-accent-surface-strong);--portal-sidebar-border:#e4ddd3;--portal-nav-hover-bg:#f7f4ef;--portal-nav-badge-bg:rgba(26,74,46,0.12);--portal-nav-badge-border:rgba(26,74,46,0.25);--portal-topbar-border:#e4ddd3;--portal-btn-ghost-bg:#f7f4ef;--portal-btn-primary-fg:#ffffff;--portal-btn-primary-shadow:0 2px 8px rgba(26,74,46,0.2);--portal-tabs-bg:#f7f4ef;--portal-tabs-border:#e4ddd3;--portal-tab-fg:#475569;--portal-tab-hover-fg:#0f1a14;--portal-tab-hover-bg:#ffffff;--portal-tab-active-border:rgba(26,74,46,0.25);--portal-tab-count-bg:#e4ddd3;--portal-tab-count-fg:#334155;--portal-tab-active-count-bg:rgba(26,74,46,0.15);--portal-search-bg:#ffffff;--portal-filter-chip-bg:#f7f4ef;--portal-filter-select-bg:#ffffff;--portal-dropdown-bg:#ffffff;--portal-filter-select-fg:#475569;--portal-table-header-bg:#f7f4ef;--portal-table-row-border:#e4ddd3;--portal-table-row-alt-bg:#f7f4ef;--portal-table-row-hover-bg:rgba(26,74,46,0.06);--portal-card-shadow:0 1px 3px rgba(15,26,20,0.08);--portal-workbench-bg:#ffffff;--portal-workbench-border:#e4ddd3;--portal-workbench-inset:none;--portal-scrollbar-thumb:#d4ccc0;--portal-auth-card-shadow:0 8px 24px rgba(15,26,20,0.1);--portal-input-bg:#ffffff;--portal-alert-warn-border:rgba(217,119,6,0.35);--portal-alert-warn-bg:rgba(217,119,6,0.1);--portal-alert-warn-fg:#b45309;--portal-utility-btn-border:#e4ddd3;--portal-accent-border:rgba(26,74,46,0.25);--portal-accent-surface:rgba(26,74,46,0.06);--portal-accent-surface-strong:rgba(26,74,46,0.08);--portal-pill-high-bg:rgba(254,226,226,0.9);--portal-pill-high-fg:#b91c1c;--portal-pill-high-border:rgba(239,68,68,0.2);--portal-pill-medium-bg:rgba(254,243,199,0.9);--portal-pill-medium-fg:#b45309;--portal-pill-medium-border:rgba(245,158,11,0.2);--portal-pill-low-bg:#f7f4ef;--portal-user-avatar-fg:var(--portal-accent);--gs-matrix-header-bg:#f7f4ef;--gs-matrix-body-bg:#ffffff;--gs-matrix-alt-bg:#f7f4ef;--gs-matrix-hover-bg:#eef3ef;--gs-matrix-highlight-header-bg:#e8f0eb;--gs-matrix-grid-line:#e4ddd3}[data-theme=dark] .portal-mockup{--portal-root:#090c0b;--portal-sidebar:#06120d;--portal-header:#0c0e0d;--portal-workbench:#0e1210;--portal-surface:#111614;--portal-surface-input:#1c221f;--portal-active:rgba(16,48,34,0.8);--portal-accent:#10b981;--portal-accent-hover:#059669;--portal-accent-muted:rgba(16,185,129,0.1);--portal-ink:#f1f5f9;--portal-ink-secondary:#e2e8f0;--portal-muted:#94a3b8;--portal-muted-dim:#64748b;--portal-border:rgba(255,255,255,0.04);--portal-border-strong:rgba(255,255,255,0.08);--portal-muted-surface:rgba(255,255,255,0.03);--portal-feed-bg:var(--portal-surface);--portal-feed-border:var(--portal-border-strong);--portal-feed-ink:var(--portal-ink);--portal-feed-subtitle:var(--portal-muted);--portal-feed-item-border:var(--portal-border-strong);--portal-feed-item-bg:var(--portal-muted-surface);--portal-feed-item-hover-bg:rgba(255,255,255,0.06);--portal-feed-chip-bg:var(--portal-muted-surface);--portal-feed-chip-border:var(--portal-border-strong);--portal-feed-chip-fg:var(--portal-muted);--portal-feed-link-fg:var(--portal-accent);--portal-feed-link-border:var(--portal-accent-border);--portal-feed-link-bg:var(--portal-accent-surface);--portal-feed-link-hover-bg:var(--portal-accent-surface-strong);--portal-sidebar-border:rgba(255,255,255,0.04);--portal-nav-hover-bg:rgba(255,255,255,0.02);--portal-nav-badge-bg:rgba(6,78,59,0.8);--portal-nav-badge-border:rgba(16,185,129,0.3);--portal-topbar-border:rgba(255,255,255,0.04);--portal-btn-ghost-bg:rgba(255,255,255,0.04);--portal-btn-primary-fg:#000000;--portal-btn-primary-shadow:0 4px 12px rgba(6,78,59,0.2);--portal-tabs-bg:rgba(255,255,255,0.06);--portal-tabs-border:rgba(255,255,255,0.08);--portal-tab-fg:#94a3b8;--portal-tab-hover-fg:#f1f5f9;--portal-tab-hover-bg:rgba(255,255,255,0.06);--portal-tab-active-border:rgba(16,185,129,0.3);--portal-tab-count-bg:rgba(255,255,255,0.08);--portal-tab-count-fg:#cbd5e1;--portal-tab-active-count-bg:rgba(16,185,129,0.2);--portal-search-bg:#111614;--portal-filter-chip-bg:#161b19;--portal-filter-select-bg:#1c221f;--portal-dropdown-bg:#1c221f;--portal-filter-select-fg:#cbd5e1;--portal-table-header-bg:rgba(0,0,0,0.4);--portal-table-row-border:rgba(255,255,255,0.02);--portal-table-row-alt-bg:rgba(255,255,255,0.02);--portal-table-row-hover-bg:rgba(16,185,129,0.06);--portal-card-shadow:0 8px 24px rgba(0,0,0,0.25);--portal-workbench-bg:rgba(14,18,16,0.98);--portal-workbench-border:rgba(255,255,255,0.03);--portal-workbench-inset:inset 0 1px 0 rgba(255,255,255,0.02);--portal-scrollbar-thumb:#1e2922;--portal-auth-card-shadow:0 16px 48px rgba(0,0,0,0.45);--portal-input-bg:#1c221f;--portal-alert-warn-border:rgba(245,158,11,0.3);--portal-alert-warn-bg:rgba(120,53,15,0.25);--portal-alert-warn-fg:#fcd34d;--portal-utility-btn-border:rgba(255,255,255,0.03);--portal-accent-border:rgba(16,185,129,0.35);--portal-accent-surface:rgba(16,185,129,0.06);--portal-accent-surface-strong:rgba(16,185,129,0.08);--portal-pill-high-bg:rgba(127,29,29,0.4);--portal-pill-high-fg:#f87171;--portal-pill-high-border:rgba(239,68,68,0.1);--portal-pill-medium-bg:rgba(120,53,15,0.4);--portal-pill-medium-fg:#fbbf24;--portal-pill-medium-border:rgba(245,158,11,0.1);--portal-pill-low-bg:#0f172a;--portal-user-avatar-fg:#ffffff;--gs-matrix-header-bg:#0d100e;--gs-matrix-body-bg:#111614;--gs-matrix-alt-bg:#131816;--gs-matrix-hover-bg:#161f1b;--gs-matrix-highlight-header-bg:#141f1a;--gs-matrix-grid-line:#252f29}.portal-mockup ::-webkit-scrollbar{width:6px;height:6px}.portal-mockup ::-webkit-scrollbar-track{background:var(--portal-workbench)}.portal-mockup ::-webkit-scrollbar-thumb{background:var(--portal-scrollbar-thumb);border-radius:3px}.portal-mockup ::-webkit-scrollbar-thumb:hover{background:var(--portal-accent)}.portal-mockup .portal-main{flex:1;display:flex;flex-direction:column;min-width:0}.portal-mockup .portal-view-pane{flex:1;overflow-y:auto;padding:1rem;max-width:80rem;width:100%;margin-left:auto;margin-right:auto}.portal-mockup .portal-sidebar,.portal-mockup .portal-topbar{font-size:14px;--portal-text-xs:12px;--portal-text-sm:14px;--portal-text-base:16px;--portal-text-title:18px}.portal-mockup .portal-workbench{background:var(--portal-workbench-bg);border-radius:var(--portal-radius);padding:1rem;border:1px solid var(--portal-workbench-border);box-shadow:var(--portal-workbench-inset)}@media (min-width:1024px){.portal-mockup .portal-view-pane{padding:1rem 1rem 1.5rem}}.portal-mockup .dashboard-home{margin:-1rem;min-height:calc(100% + 2rem)}@media (min-width:1024px){.portal-mockup .dashboard-home{margin:-1rem}}.portal-mockup .portal-sidebar{background:var(--portal-sidebar)!important;border-right:1px solid var(--portal-sidebar-border);width:var(--portal-sidebar-w)}.portal-mockup .portal-sidebar.portal-sidebar--collapsed{width:var(--portal-sidebar-collapsed)}.portal-mockup .portal-sidebar .portal-sidebar-logo{border-bottom:1px solid var(--portal-sidebar-border);padding:.75rem 1rem}.portal-mockup .portal-sidebar .portal-sidebar-logo img{display:block;max-height:1.25rem;max-width:7rem;width:auto;height:auto;-o-object-fit:contain;object-fit:contain}.portal-mockup .portal-sidebar .portal-sidebar-logo img.portal-sidebar-logo-icon{max-height:1.375rem;max-width:1.375rem}.portal-mockup .portal-sidebar .portal-nav-link{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.375rem .75rem;border-radius:var(--portal-radius);font-size:var(--portal-text-sm);font-weight:500;color:var(--portal-muted);transition:background .15s,color .15s;min-height:2rem}.portal-mockup .portal-sidebar .portal-nav-link:hover{background:var(--portal-nav-hover-bg);color:var(--portal-ink)}.portal-mockup .portal-sidebar .portal-nav-link--active{background:var(--portal-active);color:var(--portal-accent);border-left:2px solid var(--portal-accent);padding-left:calc(.75rem - 2px)}.portal-mockup .portal-sidebar .portal-nav-link .portal-nav-icon,.portal-mockup .portal-sidebar .portal-nav-link svg{width:.875rem;height:.875rem;flex-shrink:0;opacity:.85}.portal-mockup .portal-sidebar .portal-nav-link--active .portal-nav-icon,.portal-mockup .portal-sidebar .portal-nav-link--active svg{color:var(--portal-accent)}.portal-mockup .portal-sidebar .portal-section-label{display:flex;align-items:center;justify-content:space-between;padding:.375rem .75rem;font-size:.8125rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--portal-muted-dim)}.portal-mockup .portal-sidebar .portal-section-label-btn{text-transform:none;letter-spacing:-.01em;font-size:var(--portal-text-sm);font-weight:500}.portal-mockup .portal-sidebar .portal-nav-badge{font-family:var(--portal-mono);font-size:.771429rem;font-weight:600;padding:.05rem .375rem;border-radius:9999px;background:var(--portal-nav-badge-bg);border:1px solid var(--portal-nav-badge-border);color:var(--portal-accent)}.portal-mockup .portal-sidebar .portal-user-card{background:var(--portal-active);border-radius:var(--portal-radius);padding:.5rem .75rem}.portal-mockup .portal-sidebar .portal-collapse-btn{font-size:var(--portal-text-sm);color:var(--portal-muted);padding:.375rem .75rem;border-radius:var(--portal-radius)}.portal-mockup .portal-sidebar .portal-collapse-btn:hover{background:var(--portal-nav-hover-bg);color:var(--portal-ink)}.portal-mockup .portal-sidebar .portal-section-row{display:flex;min-height:2.75rem;width:100%;align-items:center;border-radius:var(--portal-radius);transition:background .15s,color .15s}.portal-mockup .portal-sidebar .portal-section-row--route{background:var(--portal-active)}.portal-mockup .portal-sidebar .portal-section-row--open,.portal-mockup .portal-sidebar .portal-section-row:hover{background:var(--portal-nav-hover-bg)}.portal-mockup .portal-sidebar .portal-section-label-btn{color:var(--portal-muted)}.portal-mockup .portal-sidebar .portal-section-label-btn--open,.portal-mockup .portal-sidebar .portal-section-label-btn:hover{color:var(--portal-ink)}.portal-mockup .portal-sidebar .portal-section-label-btn--route{color:var(--portal-accent)}.portal-mockup .portal-sidebar .portal-section-chevron{color:var(--portal-muted);transition:color .15s}.portal-mockup .portal-sidebar .portal-section-chevron:hover{color:var(--portal-ink)}.portal-mockup .portal-sidebar .portal-nav-nested{margin-left:.75rem;margin-top:.125rem;display:flex;flex-direction:column;gap:.125rem;border-left:1px solid var(--portal-sidebar-border);padding-left:.375rem}.portal-mockup .portal-sidebar .portal-sidebar-footer{border-top:1px solid var(--portal-sidebar-border)}.portal-mockup .portal-sidebar .portal-user-avatar{display:flex;height:1.75rem;width:1.75rem;flex-shrink:0;align-items:center;justify-content:center;border-radius:9999px;border:1px solid var(--portal-nav-badge-border);background:var(--portal-nav-badge-bg);font-size:var(--portal-text-xs);font-weight:700;color:var(--portal-user-avatar-fg)}.portal-mockup .portal-sidebar .portal-user-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--portal-text-sm);font-weight:600;color:var(--portal-ink-secondary)}.portal-mockup .portal-sidebar .portal-user-role{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.771429rem;font-weight:500;text-transform:capitalize;color:var(--portal-muted)}.portal-mockup .portal-topbar{position:sticky;top:0;z-index:30;border-bottom:1px solid var(--portal-topbar-border);background:var(--portal-header);padding:.5rem 1rem;font-size:var(--portal-text-sm)}.portal-mockup .portal-topbar .portal-school-name{font-size:var(--portal-text-base);font-weight:600;letter-spacing:-.02em;color:var(--portal-ink-secondary)}.portal-mockup .portal-topbar .portal-context-meta{font-size:var(--portal-text-xs);font-weight:500;color:var(--portal-muted)}.portal-mockup .portal-topbar .portal-portal-badge{font-family:var(--portal-mono);font-size:var(--portal-text-xs);font-weight:500;padding:.125rem .25rem;border-radius:var(--portal-radius);background:var(--portal-nav-badge-bg);border:1px solid var(--portal-nav-badge-border);color:var(--portal-accent)}.portal-mockup .portal-topbar .portal-utility-btn{padding:.25rem .375rem;border-radius:var(--portal-radius);color:var(--portal-muted);border:1px solid var(--portal-utility-btn-border);min-height:2rem;min-width:2rem}.portal-mockup .portal-topbar .portal-utility-btn:hover{background:var(--portal-btn-ghost-bg);color:var(--portal-ink)}.portal-mockup .portal-topbar button{color:var(--portal-muted)}.portal-mockup .portal-topbar button:hover{color:var(--portal-ink);background:var(--portal-btn-ghost-bg)}.portal-mockup .portal-page-header{display:flex;flex-direction:column;gap:.75rem;border-bottom:1px solid var(--portal-border);padding-bottom:.75rem;margin-bottom:1rem}@media (min-width:640px){.portal-mockup .portal-page-header{flex-direction:row;align-items:flex-start;justify-content:space-between}}.portal-mockup .portal-page-title{font-size:var(--portal-text-title);font-weight:700;letter-spacing:-.02em;color:var(--portal-ink-secondary);line-height:1.25}.portal-mockup .portal-page-subtitle{font-size:var(--portal-text-xs);color:var(--portal-muted);margin-top:.125rem;line-height:1.4}.portal-mockup .portal-btn-primary{display:inline-flex;align-items:center;gap:.375rem;padding:.3rem .625rem;border-radius:var(--portal-radius);font-size:var(--portal-text-sm);font-weight:600;background:var(--portal-accent);color:var(--portal-btn-primary-fg);box-shadow:var(--portal-btn-primary-shadow);transition:background .15s;min-height:2rem}.portal-mockup .portal-btn-primary:hover:not(:disabled){background:var(--portal-accent-hover)}.portal-mockup .portal-btn-ghost{display:inline-flex;align-items:center;gap:.375rem;padding:.3rem .625rem;border-radius:var(--portal-radius);font-size:var(--portal-text-sm);font-weight:500;background:var(--portal-btn-ghost-bg);color:var(--portal-muted);min-height:2rem}.portal-mockup .portal-btn-ghost:hover:not(:disabled){color:var(--portal-ink)}.portal-mockup .portal-tabs{display:flex;flex-wrap:wrap;align-items:center;gap:.375rem;background:var(--portal-tabs-bg);padding:.125rem;border-radius:var(--portal-radius);border:1px solid var(--portal-tabs-border)}.portal-mockup .portal-tab{padding:.3rem .75rem;border-radius:calc(var(--portal-radius) - 2px);font-size:var(--portal-text-sm);font-weight:600;color:var(--portal-tab-fg);border:1px solid transparent;transition:all .15s;min-height:1.75rem}.portal-mockup .portal-tab:hover{color:var(--portal-tab-hover-fg);background:var(--portal-tab-hover-bg)}.portal-mockup .portal-tab--active{background:var(--portal-accent-muted);color:var(--portal-accent);border-color:var(--portal-tab-active-border)}.portal-mockup .portal-tab-count{margin-left:.375rem;font-family:var(--portal-mono);font-size:.771429rem;font-weight:700;padding:.05rem .25rem;border-radius:var(--portal-radius)}.portal-mockup .portal-tab--active .portal-tab-count{background:var(--portal-tab-active-count-bg)}.portal-mockup .portal-tab:not(.portal-tab--active) .portal-tab-count{background:var(--portal-tab-count-bg);color:var(--portal-tab-count-fg)}.portal-mockup .portal-search{position:relative;flex:1;min-width:0}.portal-mockup .portal-search input{width:100%;background:var(--portal-search-bg);border:1px solid var(--portal-border);border-radius:var(--portal-radius);padding:.3rem .625rem .3rem 2rem;font-size:var(--portal-text-xs);color:var(--portal-ink);outline:none}.portal-mockup .portal-search input:focus{border-color:var(--portal-accent)}.portal-mockup .portal-filter-chip{display:flex;align-items:center;gap:.25rem;background:var(--portal-filter-chip-bg);padding:.25rem;border-radius:var(--portal-radius);border:1px solid var(--portal-border)}.portal-mockup .portal-filter-chip select{background-color:var(--portal-filter-select-bg);border:none;font-size:var(--portal-text-xs);color:var(--portal-filter-select-fg);outline:none;max-width:6rem}.portal-mockup .portal-table-wrap{background:var(--portal-surface);border:1px solid var(--portal-border);border-radius:var(--portal-radius);overflow:visible;box-shadow:var(--portal-card-shadow)}.portal-mockup .portal-table-wrap>div{overflow-x:auto;border-radius:inherit}.portal-mockup .portal-table-wrap table{width:100%;border-collapse:collapse;text-align:left;font-size:var(--portal-text-sm)}.portal-mockup .portal-table-wrap thead tr{background:var(--portal-table-header-bg);border-bottom:1px solid var(--portal-border)}.portal-mockup .portal-table-wrap th{padding:.625rem .75rem;font-family:var(--portal-mono);font-size:var(--portal-text-xs);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--portal-muted);background:var(--portal-table-header-bg)}.portal-mockup .portal-table-wrap thead th button{background:transparent;border:none;padding:0;margin:0;font:inherit;color:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}.portal-mockup .portal-table-wrap thead th button:hover{color:var(--portal-accent)}.portal-mockup .portal-table-wrap thead th .text-text-muted{color:var(--portal-muted-dim)}.portal-mockup .portal-table-wrap thead th .text-accent,.portal-mockup .portal-table-wrap thead th .text-green-mid{color:var(--portal-accent)}.portal-mockup .portal-table-wrap .portal-table-sticky{position:sticky;left:0;background-color:var(--portal-table-header-bg)!important;background-clip:padding-box;z-index:20;transform:translateZ(0);box-shadow:8px 0 12px -6px var(--portal-table-header-bg)}.portal-mockup .portal-table-wrap tbody .portal-table-sticky{background-color:var(--portal-surface)!important;z-index:15;box-shadow:8px 0 12px -6px var(--portal-surface)}.portal-mockup .portal-table-wrap tbody tr:nth-child(2n) .portal-table-sticky{background-color:var(--portal-table-row-alt-bg)!important;box-shadow:8px 0 12px -6px var(--portal-table-row-alt-bg)}.portal-mockup .portal-table-wrap tbody tr:hover .portal-table-sticky{background-color:var(--portal-table-row-hover-bg)!important;box-shadow:8px 0 12px -6px var(--portal-table-row-hover-bg)}.portal-mockup .portal-table-wrap thead .portal-table-sticky{z-index:25}.portal-mockup .portal-table-wrap tbody td:not(.portal-table-sticky):not(.portal-grade-sheet-sticky-col):not(.portal-grade-sheet-name-col),.portal-mockup .portal-table-wrap thead th:not(.portal-table-sticky):not(.portal-grade-sheet-sticky-col):not(.portal-grade-sheet-name-col):not(.portal-grade-sheet-sticky-top){position:relative;z-index:0}.portal-mockup .gs-matrix-wrap{max-height:min(70vh,720px);overflow-x:hidden;overflow-y:auto;min-width:0;max-width:100%;border:1px solid var(--portal-border);border-radius:var(--portal-radius);background:var(--gs-matrix-body-bg);-webkit-overflow-scrolling:touch}.portal-mockup .gs-matrix-scroll-x{overflow-x:auto;overflow-y:visible;max-width:100%;-webkit-overflow-scrolling:touch}.portal-mockup .gs-matrix{border-collapse:separate;border-spacing:0;width:-moz-max-content;width:max-content;min-width:100%;font-size:var(--portal-text-sm);text-align:left}.portal-mockup .gs-matrix td,.portal-mockup .gs-matrix th{border-bottom:1px solid var(--gs-matrix-grid-line);border-right:1px solid var(--gs-matrix-grid-line)}.portal-mockup .gs-matrix th{padding:.5rem .75rem;font-weight:600;color:var(--portal-ink-secondary);text-transform:none;letter-spacing:-.01em;white-space:nowrap;background-color:var(--gs-matrix-header-bg);position:sticky;top:0;z-index:3;background-clip:padding-box;transform:translateZ(0);box-shadow:0 4px 0 0 var(--gs-matrix-header-bg)}.portal-mockup .gs-matrix-head-row-1 th{top:0}.portal-mockup .gs-matrix th.gs-matrix-th--new{background-color:var(--gs-matrix-highlight-header-bg)!important;color:var(--portal-accent);box-shadow:0 4px 0 0 var(--gs-matrix-highlight-header-bg)}.portal-mockup .gs-matrix th.gs-matrix-corner{text-align:left!important;left:0;top:0;z-index:25;min-width:11.25rem;border-bottom:2px solid var(--gs-matrix-grid-line);background-color:var(--gs-matrix-header-bg)!important;box-shadow:12px 0 0 0 var(--gs-matrix-header-bg),0 4px 0 0 var(--gs-matrix-header-bg)}.portal-mockup .gs-matrix td{padding:.5rem .75rem;background-color:var(--gs-matrix-body-bg);font-variant-numeric:tabular-nums}.portal-mockup .gs-matrix tbody td:not(.gs-matrix-student){position:relative;z-index:0}.portal-mockup .gs-matrix td.gs-matrix-student{text-align:left!important;font-weight:600;color:var(--portal-ink);position:sticky;left:0;z-index:15;min-width:11.25rem;border-bottom:1px solid var(--gs-matrix-grid-line)!important;background-color:var(--gs-matrix-body-bg)!important;background-clip:padding-box;transform:translateZ(0);box-shadow:12px 0 0 0 var(--gs-matrix-body-bg),inset 0 -1px 0 0 var(--gs-matrix-grid-line)}.portal-mockup .gs-matrix tbody tr:nth-child(2n) td{background-color:var(--gs-matrix-alt-bg)}.portal-mockup .gs-matrix tbody tr:nth-child(2n) td.gs-matrix-student{background-color:var(--gs-matrix-alt-bg)!important;box-shadow:12px 0 0 0 var(--gs-matrix-alt-bg),inset 0 -1px 0 0 var(--gs-matrix-grid-line)}.portal-mockup .gs-matrix tbody tr:hover td{background-color:var(--gs-matrix-hover-bg)}.portal-mockup .gs-matrix tbody tr:hover td.gs-matrix-student{background-color:var(--gs-matrix-hover-bg)!important;box-shadow:12px 0 0 0 var(--gs-matrix-hover-bg),inset 0 -1px 0 0 var(--gs-matrix-grid-line)}.portal-mockup .gs-matrix-th-stack{display:flex;flex-direction:column;align-items:center;gap:.125rem}.portal-mockup .gs-matrix-th-title{display:flex;align-items:center;justify-content:center;gap:.25rem;font-size:var(--portal-text-sm);font-weight:600;color:var(--portal-ink)}.portal-mockup .gs-matrix-th-meta{font-family:var(--portal-mono);font-size:var(--portal-text-xs);font-weight:400;color:var(--portal-muted)}.portal-mockup .gs-matrix-input{width:3.5rem;border-radius:var(--portal-radius);border:1px solid var(--portal-border);padding:.125rem .25rem;text-align:center;font-family:var(--portal-mono);font-size:var(--portal-text-sm);background-color:var(--gs-matrix-body-bg);color:var(--portal-ink)}.portal-mockup .gs-matrix-input:focus{outline:none;border-color:var(--portal-accent)}.portal-mockup .gs-matrix tbody tr:nth-child(2n) .gs-matrix-input{background-color:var(--gs-matrix-alt-bg)}.portal-mockup .gs-matrix tbody tr:hover .gs-matrix-input{background-color:var(--gs-matrix-hover-bg)}.portal-mockup .gs-matrix-input--dirty{border-color:#f59e0b;background-color:#fffbeb}.portal-mockup .gs-matrix-input--error{border-color:#dc2626;background-color:#fef2f2;color:#b91c1c;font-weight:600}[data-theme=dark] .portal-mockup .gs-matrix-input--dirty{border-color:#d97706;background-color:#1c1910}[data-theme=dark] .portal-mockup .gs-matrix-input--error{border-color:#ef4444;background-color:#1f1212;color:#fca5a5}[data-theme=dark] .portal-mockup .gs-matrix th{box-shadow:0 4px 0 0 var(--gs-matrix-header-bg)}[data-theme=dark] .portal-mockup .gs-matrix th.gs-matrix-th--new{box-shadow:0 4px 0 0 var(--gs-matrix-highlight-header-bg)}[data-theme=dark] .portal-mockup .gs-matrix th.gs-matrix-corner{box-shadow:12px 0 0 0 var(--gs-matrix-header-bg),0 4px 0 0 var(--gs-matrix-header-bg)}[data-theme=dark] .portal-mockup .gs-matrix td.gs-matrix-student{box-shadow:12px 0 0 0 var(--gs-matrix-body-bg),inset 0 -1px 0 0 var(--gs-matrix-grid-line)}[data-theme=dark] .portal-mockup .gs-matrix tbody tr:nth-child(2n) td.gs-matrix-student{box-shadow:12px 0 0 0 var(--gs-matrix-alt-bg),inset 0 -1px 0 0 var(--gs-matrix-grid-line)}[data-theme=dark] .portal-mockup .gs-matrix tbody tr:hover td.gs-matrix-student{box-shadow:12px 0 0 0 var(--gs-matrix-hover-bg),inset 0 -1px 0 0 var(--gs-matrix-grid-line)}.portal-mockup .portal-grade-sheet-frozen{position:sticky;left:0;z-index:30;min-width:180px;padding:.5rem .75rem;background-color:var(--portal-surface)!important;box-shadow:16px 0 0 0 var(--portal-surface);transform:translateZ(0)}.portal-mockup .portal-grade-sheet-frozen--header{background-color:var(--portal-table-header-bg)!important;box-shadow:16px 0 0 0 var(--portal-table-header-bg);z-index:40;font-weight:600;color:var(--portal-ink-secondary)}.portal-mockup .portal-table-wrap tbody tr:nth-child(2n) .portal-grade-sheet-frozen:not(.portal-grade-sheet-frozen--header){background-color:var(--portal-table-row-alt-bg)!important;box-shadow:16px 0 0 0 var(--portal-table-row-alt-bg)}.portal-mockup .portal-table-wrap tbody tr:hover .portal-grade-sheet-frozen:not(.portal-grade-sheet-frozen--header){background-color:var(--portal-table-row-hover-bg)!important;box-shadow:16px 0 0 0 var(--portal-table-row-hover-bg)}.portal-mockup .portal-table-wrap.portal-table-wrap--frozen-col table{border-collapse:separate;border-spacing:0}.portal-mockup .portal-table-wrap.portal-table-wrap--frozen-col .portal-grade-sheet-frozen-cell{padding:0;vertical-align:top;background:transparent!important;border-right:1px solid var(--portal-border)}.portal-mockup .portal-table-wrap.portal-table-wrap--frozen-col thead .portal-grade-sheet-frozen-cell{background:transparent!important}.portal-mockup .portal-table-wrap tbody tr{border-bottom:1px solid var(--portal-table-row-border);transition:background .1s;background:var(--portal-surface)}.portal-mockup .portal-table-wrap tbody tr:nth-child(2n){background:var(--portal-table-row-alt-bg)}.portal-mockup .portal-table-wrap tbody tr:hover{background:var(--portal-table-row-hover-bg)}.portal-mockup .portal-table-wrap td{padding:.5rem .75rem;color:var(--portal-ink-secondary);font-weight:500}.portal-mockup .portal-table-wrap .portal-cell-mono{font-family:var(--portal-mono);font-size:var(--portal-text-xs);color:var(--portal-muted)}.portal-mockup .portal-workbench table:not(.fin-table){width:100%;border-collapse:collapse;text-align:left;font-size:var(--portal-text-sm)}.portal-mockup .portal-workbench table:not(.fin-table) thead th,.portal-mockup .portal-workbench table:not(.fin-table) thead tr{background:var(--portal-table-header-bg);border-bottom:1px solid var(--portal-border)}.portal-mockup .portal-workbench table:not(.fin-table) th{padding:.625rem .75rem;font-family:var(--portal-mono);font-size:var(--portal-text-xs);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--portal-muted)}.portal-mockup .portal-workbench table:not(.fin-table) thead th button{background:transparent;border:none;padding:0;margin:0;font:inherit;color:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}.portal-mockup .portal-workbench table:not(.fin-table) thead th button:hover{color:var(--portal-accent)}.portal-mockup .portal-workbench table:not(.fin-table) td{padding:.5rem .75rem;color:var(--portal-ink-secondary);font-weight:500}.portal-mockup .portal-workbench table:not(.fin-table) tbody tr{border-bottom:1px solid var(--portal-table-row-border);transition:background .1s;background:var(--portal-surface)}.portal-mockup .portal-workbench table:not(.fin-table) tbody tr:nth-child(2n){background:var(--portal-table-row-alt-bg)}.portal-mockup .portal-workbench table:not(.fin-table) tbody tr:hover{background:var(--portal-table-row-hover-bg)}.portal-mockup .portal-panel{background:var(--portal-surface);border:1px solid var(--portal-border);border-radius:var(--portal-radius);overflow:hidden;box-shadow:var(--portal-card-shadow)}.portal-mockup .portal-panel__header{border-bottom:1px solid var(--portal-border);padding:.625rem 1rem;font-size:var(--portal-text-base);font-weight:600;color:var(--portal-ink-secondary)}.portal-mockup .portal-panel__body{padding:.75rem 1rem}.portal-mockup .portal-kpi--active{border-color:var(--portal-accent-border);background:var(--portal-accent-surface-strong)}.portal-mockup .portal-kpi--active .portal-kpi-value{color:var(--portal-accent)}.portal-mockup .portal-action-card{background:var(--portal-surface);border:1px solid var(--portal-border);border-radius:var(--portal-radius);padding:1rem;text-align:left;transition:border-color .15s,background .15s}.portal-mockup .portal-action-card:hover{border-color:var(--portal-accent-border);background:var(--portal-accent-surface)}.portal-mockup .portal-filter-bar{background:var(--portal-surface);border:1px solid var(--portal-border);border-radius:var(--portal-radius);padding:.75rem}.portal-mockup .portal-calendar-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;align-items:end}@media (min-width:768px){.portal-mockup .portal-calendar-filters--calendar{grid-template-columns:repeat(5,minmax(0,1fr))}.portal-mockup .portal-calendar-filters--list{grid-template-columns:repeat(4,minmax(0,1fr))}}.portal-mockup .portal-kpi-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}@media (min-width:768px){.portal-mockup .portal-kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem}}.portal-mockup .portal-kpi{background:var(--portal-surface);border:1px solid var(--portal-border);border-radius:var(--portal-radius);padding:.75rem}.portal-mockup .portal-kpi-label{display:block;font-family:var(--portal-mono);font-size:.771429rem;font-weight:500;text-transform:uppercase;letter-spacing:.04em;color:var(--portal-muted-dim)}.portal-mockup .portal-kpi-value{display:block;margin-top:.25rem;font-size:var(--portal-text-base);font-weight:600;color:var(--portal-ink-secondary)}.portal-mockup .portal-kpi-value--accent{color:var(--portal-accent)}.portal-mockup .portal-pill{display:inline-flex;align-items:center;gap:.25rem;font-size:.8125rem;font-weight:600;padding:.05rem .375rem;border-radius:9999px;border:1px solid transparent}.portal-mockup .portal-pill--high{background:var(--portal-pill-high-bg);color:var(--portal-pill-high-fg);border-color:var(--portal-pill-high-border)}.portal-mockup .portal-pill--medium{background:var(--portal-pill-medium-bg);color:var(--portal-pill-medium-fg);border-color:var(--portal-pill-medium-border)}.portal-mockup .portal-pill--low{background:var(--portal-pill-low-bg);color:var(--portal-muted);border-color:var(--portal-border)}.portal-mockup .portal-feed{background:var(--portal-feed-bg);border:1px solid var(--portal-feed-border);border-radius:var(--portal-radius-xl);padding:1rem;box-shadow:var(--portal-card-shadow);color:var(--portal-feed-ink)}.portal-mockup .portal-feed--top{margin-bottom:.25rem;border-top:3px solid var(--portal-accent);padding:1.125rem 1.25rem}.portal-mockup .portal-welcome-toolbar-hint{margin-top:1rem;border:1px solid var(--portal-border-strong);border-radius:var(--portal-radius-lg);background:var(--portal-muted-surface);padding:.75rem .875rem}.portal-mockup .portal-welcome-toolbar-hint__bar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;border-radius:var(--portal-radius-md);background:var(--portal-topbar-bg,#0f1a14);padding:.5rem .625rem}.portal-mockup .portal-welcome-toolbar-hint__label{font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:rgba(255,255,255,.55)}.portal-mockup .portal-welcome-toolbar-hint__controls{display:flex;align-items:center;gap:.25rem}.portal-mockup .portal-welcome-toolbar-hint__btn{display:inline-flex;height:2rem;width:2rem;align-items:center;justify-content:center;border-radius:.375rem;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.06);font-size:14px;font-weight:700;color:rgba(255,255,255,.92)}.portal-mockup .portal-welcome-toolbar-hint__divider{width:1px;height:1.25rem;margin:0 .125rem;background:rgba(255,255,255,.12)}.portal-mockup .portal-welcome-toolbar-hint__icon{display:inline-flex;height:2rem;width:2rem;align-items:center;justify-content:center;border-radius:.375rem;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.06);color:rgba(255,255,255,.92)}.portal-mockup .portal-welcome-toolbar-hint__caption{margin-top:.625rem;font-size:15px;line-height:1.45;color:var(--portal-muted)}@media (min-width:1024px){.portal-mockup .portal-feed--top .portal-feed-items-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));gap:.5rem}}.portal-mockup .portal-feed-title{font-size:var(--portal-text-base);font-weight:600;letter-spacing:-.02em;color:var(--portal-feed-ink)}.portal-mockup .portal-feed-subtitle{font-size:var(--portal-text-xs);color:var(--portal-feed-subtitle)}.portal-mockup .portal-feed-link{font-size:var(--portal-text-xs);font-weight:600;color:var(--portal-feed-link-fg);padding:.25rem .5rem;border-radius:var(--portal-radius);border:1px solid var(--portal-feed-link-border);background:var(--portal-feed-link-bg)}.portal-mockup .portal-feed-link:hover{background:var(--portal-feed-link-hover-bg);text-decoration:underline}.portal-mockup .portal-feed-kpi-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.375rem}.portal-mockup .portal-feed-kpi{background:var(--portal-muted-surface);border:1px solid var(--portal-border);border-radius:var(--portal-radius);padding:.5rem .625rem;text-align:left;transition:border-color .15s,background .15s}.portal-mockup .portal-feed-kpi--active,.portal-mockup .portal-feed-kpi:hover{border-color:var(--portal-accent-border)}.portal-mockup .portal-feed-kpi--active{background:var(--portal-accent-surface-strong)}.portal-mockup .portal-feed-kpi-label{display:block;font-family:var(--portal-mono);font-size:.771429rem;font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:var(--portal-muted)}.portal-mockup .portal-feed-kpi-value{display:block;margin-top:.125rem;font-size:var(--portal-text-title);font-weight:600;color:var(--portal-ink-secondary);line-height:1.2}.portal-mockup .portal-feed-kpi--active .portal-feed-kpi-value{color:var(--portal-accent)}.portal-mockup .portal-feed-item{border-radius:var(--portal-radius);border:1px solid var(--portal-feed-item-border);background:var(--portal-feed-item-bg);padding:.625rem .75rem}.portal-mockup .portal-feed-item:hover{background:var(--portal-feed-item-hover-bg)}.portal-mockup .portal-feed-chip{font-size:var(--portal-text-xs);font-weight:600;padding:.125rem .375rem;border-radius:var(--portal-radius);border:1px solid var(--portal-feed-chip-border);background:var(--portal-feed-chip-bg);color:var(--portal-feed-chip-fg)}.portal-mockup .portal-feed-chip--urgent{background:var(--portal-pill-medium-bg);color:var(--portal-pill-medium-fg);border-color:var(--portal-pill-medium-border)}.portal-mockup .portal-feed-chip--active{background:var(--portal-accent);color:var(--portal-btn-primary-fg);border-color:var(--portal-accent)}.portal-mockup .portal-feed-item-title{font-size:var(--portal-text-sm);font-weight:600;line-height:1.35;color:var(--portal-ink-secondary)}.portal-mockup .portal-feed-item-details{font-size:var(--portal-text-xs);color:var(--portal-muted)}.portal-mockup .input-base,.portal-mockup input.input-base,.portal-mockup select.input-base,.portal-mockup textarea.input-base{background:var(--portal-input-bg);border-color:var(--portal-border-strong);color:var(--portal-ink);font-size:var(--portal-text-sm);padding:.375rem .625rem}.portal-mockup .input-base:focus{border-color:var(--portal-accent);box-shadow:0 0 0 1px var(--portal-accent)}[data-theme=light] .portal-mockup select{color-scheme:light}[data-theme=dark] .portal-mockup select{color-scheme:dark}.portal-mockup select,.portal-mockup select.input-base{background-color:var(--portal-input-bg)}.portal-mockup select optgroup,.portal-mockup select option{background-color:var(--portal-dropdown-bg);color:var(--portal-ink)}.portal-mockup .absolute.border-border.bg-bg-card.shadow-lg,.portal-mockup .portal-column-filter-menu,.portal-mockup .portal-dropdown-menu{background-color:var(--portal-dropdown-bg)!important;color:var(--portal-ink);border-color:var(--portal-border-strong);backdrop-filter:none;-webkit-backdrop-filter:none}.portal-mockup .label-base{font-size:.8125rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--portal-muted)}.portal-mockup .portal-workbench .card,.portal-mockup .portal-workbench .rounded-2xl.border.border-border.bg-bg-card,.portal-mockup .portal-workbench .rounded-lg.bg-bg-card.shadow-sm,.portal-mockup .portal-workbench .rounded-lg.border.border-border.bg-bg-card{background:var(--portal-surface);border-color:var(--portal-border);border-radius:var(--portal-radius);color:var(--portal-ink)}.portal-mockup .portal-workbench .rounded-lg.bg-bg-card.shadow-sm .text-black,.portal-mockup .portal-workbench .rounded-lg.bg-bg-card.shadow-sm p.text-2xl,.portal-mockup .portal-workbench .text-text{color:var(--portal-ink-secondary)}.portal-mockup .portal-workbench .text-text-muted{color:var(--portal-muted)}.portal-mockup .portal-workbench .border-border{border-color:var(--portal-border)}.portal-mockup .portal-workbench .bg-bg-muted{background:var(--portal-muted-surface)}.portal-mockup .portal-workbench .bg-bg-card{background:var(--portal-surface)}.portal-mockup .portal-page-stack{display:flex;flex-direction:column;gap:1rem}.portal-mockup .portal-page-stack--lg{gap:1.25rem}.portal-mockup .portal-split-layout{display:grid;gap:1rem}@media (min-width:1280px){.portal-mockup .portal-split-layout{grid-template-columns:minmax(0,1fr) 18.75rem;gap:1.25rem}}.portal-mockup .portal-alert-warn{border:1px solid var(--portal-alert-warn-border);background:var(--portal-alert-warn-bg);color:var(--portal-alert-warn-fg);font-size:var(--portal-text-sm);padding:.5rem .75rem;text-align:center}.portal-mockup.portal-auth-shell{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:1rem;background:var(--portal-root);color:var(--portal-ink)}.portal-mockup.portal-auth-shell>#main-content{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%}.portal-mockup .portal-auth-card{width:100%;max-width:28rem;background:var(--portal-surface);border:1px solid var(--portal-border-strong);border-radius:var(--portal-radius-lg);padding:1.5rem;box-shadow:var(--portal-auth-card-shadow)}.portal-mockup .portal-auth-card h1{font-size:var(--portal-text-title);font-weight:600;color:var(--portal-ink)}.portal-mockup .portal-auth-card .portal-auth-subtitle{margin-top:.25rem}.portal-mockup .portal-auth-card .portal-auth-label,.portal-mockup .portal-auth-card .portal-auth-link,.portal-mockup .portal-auth-card .portal-auth-subtitle{font-size:var(--portal-text-sm);color:var(--portal-muted)}.portal-mockup .portal-auth-card .portal-auth-link:hover{color:var(--portal-ink)}.portal-mockup .portal-auth-card .text-text-muted{color:var(--portal-muted)}.portal-mockup.guardian-portal{min-height:100vh;min-height:100dvh;background:var(--portal-root);color:var(--portal-ink)}.portal-mockup.guardian-portal .bg-green-dark{background:var(--portal-sidebar)!important}.portal-mockup.guardian-portal .border-border{border-color:var(--portal-border)!important}.portal-mockup.guardian-portal .bg-bg-card{background:var(--portal-header)!important}.portal-mockup.guardian-portal .bg-bg-page{background:var(--portal-root)!important}.portal-mockup.guardian-portal .text-green-dark{color:var(--portal-accent)!important}.portal-mockup .portal-modal-panel,.portal-mockup [role=dialog] .rounded-lg.border.border-border.bg-bg-card{background:var(--portal-surface)!important;border-color:var(--portal-border-strong)!important;color:var(--portal-ink)}.portal-mockup [role=dialog] .border-b.border-border{border-color:var(--portal-border)!important}.portal-mockup [role=dialog] .text-text-muted{color:var(--portal-muted)}.portal-mockup .modal-scroll-area>div>:last-child:has(button),.portal-mockup .modal-scroll-area>form>:last-child:has(button){background:var(--portal-surface);border-color:var(--portal-border)}.portal-mockup .portal-column-filter-menu{background-color:var(--portal-dropdown-bg)!important;border-color:var(--portal-border-strong);color:var(--portal-ink);backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:var(--portal-card-shadow)}.portal-mockup .rounded-2xl.bg-bg-card.shadow-sm,.portal-mockup .rounded-2xl.border.border-border.bg-bg-card,.portal-mockup .rounded-lg.bg-bg-card.shadow-sm,.portal-mockup .rounded-lg.border.border-border.bg-bg-card{background:var(--portal-surface);border:1px solid var(--portal-border);color:var(--portal-ink-secondary)}.portal-mockup .rounded-2xl.bg-bg-muted\/50,.portal-mockup .rounded-lg.bg-bg-muted\/50{background:var(--portal-muted-surface);border:1px solid var(--portal-border);color:var(--portal-ink-secondary)}.portal-mockup .text-green-dark{color:var(--portal-accent)}.portal-mockup .dashboard-home{color:inherit}.portal-mockup .text-green-mid,.portal-mockup nav[aria-label=Breadcrumb] a{color:var(--portal-accent)}.portal-mockup nav[aria-label=Breadcrumb] span{color:var(--portal-muted)}.portal-mockup .portal-workbench .rounded-lg.border.border-border.bg-bg-card,.portal-mockup .portal-workbench section.rounded-lg.border.border-border.bg-bg-card{background:var(--portal-surface);border-color:var(--portal-border);border-radius:var(--portal-radius);box-shadow:var(--portal-card-shadow)}.portal-mockup .portal-workbench h2.text-base.font-semibold,.portal-mockup .portal-workbench h3.text-sm.font-medium,.portal-mockup .portal-workbench h3.text-sm.font-semibold,.portal-mockup .portal-workbench section h2.text-base{font-size:var(--portal-text-base);font-weight:600;color:var(--portal-ink-secondary);letter-spacing:-.01em}.portal-mockup .portal-workbench .text-xs.font-medium.uppercase,.portal-mockup .portal-workbench p.text-xs.font-medium.uppercase{font-family:var(--portal-mono);font-size:.771429rem;font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:var(--portal-muted)}.portal-mockup .portal-workbench .text-sm{font-size:var(--portal-text-sm);line-height:1.45}.portal-mockup .portal-workbench .text-base{font-size:var(--portal-text-base)}.portal-mockup .portal-workbench .text-lg{font-size:var(--portal-text-title)}.portal-mockup .portal-workbench .text-xs{font-size:var(--portal-text-xs)}.portal-mockup .portal-card-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.portal-mockup .portal-card-item{border:1px solid var(--portal-border);border-radius:var(--portal-radius-lg);background:var(--portal-surface);overflow:hidden;content-visibility:auto;contain-intrinsic-size:0 88px}.portal-mockup .portal-card-item--selected{background:var(--portal-accent-surface);border-color:var(--portal-accent-border)}.portal-mockup .portal-card-item__row{display:flex;align-items:stretch;gap:.5rem;padding:.75rem}.portal-mockup .portal-card-item__checkbox{display:flex;align-items:flex-start;padding-top:.125rem}.portal-mockup .portal-card-item__body{min-width:0;background:transparent;border:0;padding:0;color:inherit;cursor:pointer}.portal-mockup .portal-card-item--interactive .portal-card-item__body:hover{opacity:.92}.portal-mockup .portal-card-item__title{font-size:var(--portal-text-base);font-weight:600;color:var(--portal-ink-secondary);line-height:1.35}.portal-mockup .portal-card-item__subtitle{margin-top:.125rem;font-size:var(--portal-text-sm);color:var(--portal-muted)}.portal-mockup .portal-card-item__meta{margin-top:.5rem;display:flex;flex-wrap:wrap;gap:.375rem .75rem;font-size:var(--portal-text-sm);color:var(--portal-muted)}.portal-mockup .portal-card-item__trailing{display:flex;align-items:center}.portal-mockup .portal-tabs-scroll{scrollbar-width:none}.portal-mockup .portal-tabs-scroll::-webkit-scrollbar{display:none}.portal-mockup .portal-sticky-actions>*{flex:1}