:root{--navy: #1B2A4A;--navy-light: #2C4066;--gold: #C9A227;--cream: #EDE7D9;--paper: #FFFFFF;--ink: #23262B;--slate: #6B7280;--line: #E3E0D8;--ok: #3D8B7D;--warn: #B5533C;--mono: "JetBrains Mono", "SFMono-Regular", Consolas, monospace;--serif: "Source Serif 4", Georgia, serif;--sans: "Inter", -apple-system, BlinkMacSystemFont, sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--sans);font-size:14px;line-height:1.5}button,select,input,textarea{font-family:inherit}#landing{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 24px}.landing-mark{font-family:var(--mono);font-size:15px;letter-spacing:.1em;color:var(--gold);text-transform:uppercase;margin-bottom:18px;font-weight:700}.landing-banner{background:var(--navy);border-radius:12px;padding:32px 40px;display:flex;flex-direction:column;align-items:center;margin-bottom:30px}.landing-logo{display:flex;align-items:center;gap:16px;justify-content:center;margin-bottom:12px}.landing-logo .wordmark{font-family:var(--serif);font-size:44px;font-weight:700;color:#fff;letter-spacing:-.5px}.landing-logo .wordmark .num{color:var(--gold)}.landing-tagline{font-family:var(--mono);font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:#d7dce6;text-align:center;font-weight:700}#landing .sub{color:var(--slate);font-size:14.5px;margin-bottom:44px;text-align:center}.role-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;max-width:780px;width:100%}.role-card{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:22px 18px;cursor:pointer;text-align:left;transition:border-color .15s,transform .1s}.role-card:hover{border-color:var(--navy);transform:translateY(-2px)}.role-card .role-icon{font-family:var(--serif);font-size:22px;color:var(--navy);margin-bottom:10px}.role-card .role-name{font-weight:700;font-size:14.5px;color:var(--ink);margin-bottom:4px}.role-card .role-desc{font-size:12px;color:var(--slate);line-height:1.4}.sp-card{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:26px 24px;max-width:420px;width:100%}.sp-label{display:block;font-family:var(--mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--navy);margin-bottom:6px}.sp-card select,.sp-card input{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:6px;font-size:14px;background:#fafaf8}.pw-wrap{position:relative}.pw-wrap input{padding-right:40px!important}.pw-toggle{position:absolute;right:4px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;padding:6px;color:var(--slate);display:flex;align-items:center;justify-content:center}.pw-toggle:hover{color:var(--navy)}.field{margin-bottom:18px;text-align:left}.field label{display:block;font-size:13.5px;font-weight:600;color:var(--ink);margin-bottom:7px}.yesno{display:flex;gap:10px}.yesno label{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:10px;border:1px solid var(--line);border-radius:6px;font-weight:500;font-size:13.5px;cursor:pointer;background:#fafaf8;margin-bottom:0}.yesno input{width:auto;margin:0}.yesno label.checked{border-color:var(--navy);background:#eef1f6;color:var(--navy);font-weight:600}#app-shell{display:none;min-height:100vh}.sidebar{width:240px;background:var(--navy);color:#fff;height:100vh;padding:24px 0;position:fixed;left:0;top:0;z-index:100;display:flex;flex-direction:column;overflow-y:auto}.sidebar::-webkit-scrollbar{width:14px}#year-select option{color:#23262b;background:#fff}.sidebar::-webkit-scrollbar-thumb{background:#ffffff59;border-radius:7px;border:3px solid var(--navy);background-clip:padding-box}.sidebar::-webkit-scrollbar-thumb:hover{background:#ffffff80;background-clip:padding-box}.sidebar::-webkit-scrollbar-track{background:transparent}.sidebar{scrollbar-width:auto;scrollbar-color:rgba(255,255,255,.35) transparent}.sidebar .brand{padding:0 20px 20px;border-bottom:1px solid rgba(255,255,255,.12);margin-bottom:16px}.sidebar .brand .mark{font-family:var(--mono);font-size:10px;letter-spacing:.08em;color:var(--gold);text-transform:uppercase}.sidebar .brand .logo-row{display:flex;align-items:center;gap:8px;margin-top:6px}.sidebar .brand .name{font-family:var(--serif);font-size:19px;font-weight:700;color:#fff;letter-spacing:-.3px}.sidebar .brand .name .num{color:var(--gold)}.sidebar .person-name{margin:0 20px 6px;display:flex;align-items:center;gap:9px}.sidebar .person-name .avatar{width:30px;height:30px;border-radius:50%;background:var(--gold);color:var(--navy);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:12.5px;flex-shrink:0}.sidebar .person-name .name-text{font-size:14.5px;font-weight:700;color:#fff;line-height:1.2}.sidebar .role-tag{margin:0 20px 18px;padding:6px 10px;background:#ffffff14;border-radius:5px;font-family:var(--mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--gold)}.nav-section{padding:0 12px;margin-bottom:4px}.nav-section-label{font-family:var(--mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--gold);font-weight:700;padding:10px 8px 4px;line-height:1.5}.nav-section-label .dc-icon{vertical-align:-2px;margin-right:6px;color:var(--gold);opacity:.85}.nav-section-label .nav-chevron{margin-left:6px;font-size:11px;color:#fff9}.nav-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 10px;border-radius:6px;cursor:pointer;font-size:13px;color:#ffffffd9;margin-bottom:1px}.nav-item:hover{background:#ffffff14}.nav-item.active{background:var(--gold);color:var(--navy);font-weight:700}.nav-item.disabled{color:#ffffff52;cursor:not-allowed}.nav-item.disabled:hover{background:none}.nav-item .soon{font-family:var(--mono);font-size:8.5px;background:#ffffff1a;padding:2px 5px;border-radius:3px}.nav-item-flagship{border:3px solid #fff}.sidebar .switch-role{margin-top:auto;padding:16px 20px 0;border-top:1px solid rgba(255,255,255,.12)}.sidebar .switch-role button{width:100%;background:transparent;border:1px solid rgba(255,255,255,.25);color:#fffc;padding:9px;border-radius:6px;font-size:12px;cursor:pointer}.sidebar .switch-role button:hover{border-color:#fff;color:#fff}.main-area{margin-left:240px;flex:1;min-height:100vh}.view{display:none}.view.active{display:block}.demo-banner-bar{display:none;align-items:center;gap:16px;position:sticky;top:0;z-index:60;height:38px;padding:0 32px;background:#7a2e1f;color:#fff;border-bottom:2px solid var(--gold);font-size:12.5px;overflow:hidden}.demo-banner-bar.active{display:flex}.demo-banner-bar .demo-banner-label{font-weight:800;letter-spacing:.03em;text-transform:uppercase;font-size:11.5px;flex-shrink:0}.demo-banner-bar .demo-banner-note{color:#ffffffd9;flex-shrink:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.demo-banner-bar .demo-banner-actions{margin-left:auto;display:flex;align-items:center;gap:10px;flex-shrink:0;white-space:nowrap}.demo-banner-bar .demo-banner-actions button{font-size:11.5px;padding:5px 12px;border-radius:4px;cursor:pointer;font-weight:700;border:1px solid rgba(255,255,255,.5);background:#ffffff1f;color:#fff;flex-shrink:0}.demo-banner-bar .demo-banner-actions button:hover{background:#ffffff3d}.demo-preview-banner-bar{display:none;align-items:center;gap:16px;position:sticky;z-index:59;height:38px;padding:0 32px;background:var(--navy);color:#fff;border-bottom:2px solid var(--gold);font-size:12.5px;overflow:hidden}.demo-preview-banner-bar.active{display:flex}.demo-preview-banner-bar .demo-banner-label{font-weight:800;letter-spacing:.03em;text-transform:uppercase;font-size:11.5px;flex-shrink:0;color:var(--gold)}.demo-preview-banner-bar .demo-banner-note{color:#ffffffd9;flex-shrink:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.demo-preview-banner-bar .demo-banner-actions{margin-left:auto;display:flex;align-items:center;gap:10px;flex-shrink:0;white-space:nowrap}.demo-preview-banner-bar .demo-banner-actions button{font-size:11.5px;padding:5px 12px;border-radius:4px;cursor:pointer;font-weight:700;border:1px solid rgba(255,255,255,.5);background:var(--gold);color:var(--navy);flex-shrink:0}.demo-preview-banner-bar .demo-banner-actions button:hover{background:#ddb840}.view-header{padding:28px 32px 20px;border-bottom:1px solid var(--line);background:var(--cream);position:sticky;top:var(--sticky-banner-offset, 0px);z-index:50;will-change:transform;transform:translateZ(0);backface-visibility:hidden}.view-header .eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.08em;color:var(--gold);text-transform:uppercase;margin-bottom:6px}.view-header h1{font-family:var(--serif);font-weight:600;font-size:26px;margin:0;color:var(--navy)}.breadcrumb{font-size:12.5px;margin-bottom:10px;color:var(--slate)}.breadcrumb .crumb-link{color:var(--navy);font-weight:600;cursor:pointer}.breadcrumb .crumb-link:hover{text-decoration:underline}.breadcrumb .crumb-sep{margin:0 6px;color:var(--line)}.breadcrumb .crumb-current{color:var(--slate)}.view-body{padding:24px 32px 80px}.dash-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px;margin-top:8px}.home-section-label{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--gold);font-weight:700;margin:40px 0 8px;padding-top:20px;border-top:1px solid var(--line);scroll-margin-top:148px}.home-section-label:first-child{margin-top:8px;padding-top:0;border-top:none}.dash-card{background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:18px;cursor:pointer}.dash-card:hover{border-color:var(--navy)}.dash-card.period-selected{background:#e7f2ef;border-color:var(--ok);border-width:2px}.dash-card.locked{cursor:default;opacity:.55}.dash-card.locked.owner-preview{cursor:pointer;opacity:.8}.dash-card.locked.owner-preview:hover{opacity:1;border-color:var(--navy)}.dash-card.no-completion{background:#eaf1f8;border-color:#cbdcea}.std-tab{cursor:pointer;padding:8px 16px;border-radius:6px 6px 0 0;font-size:13px;font-weight:700;color:var(--slate);background:var(--paper);border:1px solid var(--line);border-bottom:none}.std-tab.active{color:#fff;background:var(--navy);border-color:var(--navy)}.freeze-2col thead th{position:sticky;top:0;z-index:3;background:var(--navy);color:#fff}.freeze-2col th:nth-child(1),.freeze-2col td:nth-child(1){position:sticky;left:0;z-index:1;background:var(--paper);min-width:90px}.freeze-2col th:nth-child(2),.freeze-2col td:nth-child(2){position:sticky;left:90px;z-index:1;background:var(--paper);min-width:170px;box-shadow:2px 0 4px -2px #00000026}.freeze-2col thead th:nth-child(1),.freeze-2col thead th:nth-child(2){z-index:4;background:var(--navy)}.freeze-2col tbody tr:hover td:nth-child(1),.freeze-2col tbody tr:hover td:nth-child(2){background:#fbfaf6}.freeze-3col thead th{position:sticky;top:0;z-index:3;background:var(--navy);color:#fff}.freeze-3col th:nth-child(1),.freeze-3col td:nth-child(1){position:sticky;left:0;z-index:1;background:var(--paper);min-width:100px}.freeze-3col th:nth-child(2),.freeze-3col td:nth-child(2){position:sticky;left:100px;z-index:1;background:var(--paper);min-width:220px}.freeze-3col th:nth-child(3),.freeze-3col td:nth-child(3){position:sticky;left:320px;z-index:1;background:var(--paper);min-width:160px;box-shadow:2px 0 4px -2px #00000026}.freeze-3col thead th:nth-child(1),.freeze-3col thead th:nth-child(2),.freeze-3col thead th:nth-child(3){z-index:4;background:var(--navy)}.freeze-3col tbody tr:hover td:nth-child(1),.freeze-3col tbody tr:hover td:nth-child(2),.freeze-3col tbody tr:hover td:nth-child(3){background:#fbfaf6}.cd-freeze3 thead th{position:sticky;top:0;z-index:3;background:var(--navy);color:#fff}.cd-freeze3 th:nth-child(1),.cd-freeze3 td:nth-child(1){position:sticky;left:0;z-index:1;background:var(--paper);min-width:260px;max-width:260px;white-space:normal;word-break:break-word}.cd-freeze3 th:nth-child(2),.cd-freeze3 td:nth-child(2){position:sticky;left:260px;z-index:1;background:var(--paper);min-width:65px;max-width:65px}.cd-freeze3 th:nth-child(3),.cd-freeze3 td:nth-child(3){position:sticky;left:325px;z-index:1;background:var(--paper);min-width:65px;max-width:65px;box-shadow:2px 0 4px -2px #00000026}.cd-freeze3 thead th:nth-child(1),.cd-freeze3 thead th:nth-child(2),.cd-freeze3 thead th:nth-child(3){z-index:4;background:var(--navy)}.cd-freeze3 tbody tr:hover td:nth-child(1),.cd-freeze3 tbody tr:hover td:nth-child(2),.cd-freeze3 tbody tr:hover td:nth-child(3){background:#fbfaf6}.tms-freeze4 thead th{position:sticky;top:0;z-index:3;background:var(--navy);color:#fff}.tms-freeze4 th:nth-child(1),.tms-freeze4 td:nth-child(1){position:sticky;left:0;z-index:1;background:var(--paper);min-width:170px;max-width:170px;white-space:normal;word-break:break-word}.tms-freeze4 th:nth-child(2),.tms-freeze4 td:nth-child(2){position:sticky;left:170px;z-index:1;background:var(--paper);min-width:140px;max-width:140px;white-space:normal;word-break:break-word}.tms-freeze4 th:nth-child(3),.tms-freeze4 td:nth-child(3){position:sticky;left:310px;z-index:1;background:var(--paper);min-width:55px;max-width:55px}.tms-freeze4 th:nth-child(4),.tms-freeze4 td:nth-child(4){position:sticky;left:365px;z-index:1;background:var(--paper);min-width:55px;max-width:55px;box-shadow:2px 0 4px -2px #00000026}.tms-freeze4 thead th:nth-child(1),.tms-freeze4 thead th:nth-child(2),.tms-freeze4 thead th:nth-child(3),.tms-freeze4 thead th:nth-child(4){z-index:4;background:var(--navy)}.tms-freeze4 tbody tr:hover td:nth-child(1),.tms-freeze4 tbody tr:hover td:nth-child(2),.tms-freeze4 tbody tr:hover td:nth-child(3),.tms-freeze4 tbody tr:hover td:nth-child(4){background:#fbfaf6}.tlo-freeze4 thead th{position:sticky;top:0;z-index:3;background:var(--navy);color:#fff}.tlo-freeze4 th:nth-child(1),.tlo-freeze4 td:nth-child(1){position:sticky;left:0;z-index:1;background:var(--paper);min-width:170px;max-width:170px;white-space:normal;word-break:break-word}.tlo-freeze4 th:nth-child(2),.tlo-freeze4 td:nth-child(2){position:sticky;left:170px;z-index:1;background:var(--paper);min-width:140px;max-width:140px;white-space:normal;word-break:break-word}.tlo-freeze4 th:nth-child(3),.tlo-freeze4 td:nth-child(3){position:sticky;left:310px;z-index:1;background:var(--paper);min-width:55px;max-width:55px}.tlo-freeze4 th:nth-child(4),.tlo-freeze4 td:nth-child(4){position:sticky;left:365px;z-index:1;background:var(--paper);min-width:55px;max-width:55px;box-shadow:2px 0 4px -2px #00000026}.tlo-freeze4 thead th:nth-child(1),.tlo-freeze4 thead th:nth-child(2),.tlo-freeze4 thead th:nth-child(3),.tlo-freeze4 thead th:nth-child(4){z-index:4;background:var(--navy)}.tlo-freeze4 tbody tr:hover td:nth-child(1),.tlo-freeze4 tbody tr:hover td:nth-child(2),.tlo-freeze4 tbody tr:hover td:nth-child(3),.tlo-freeze4 tbody tr:hover td:nth-child(4){background:#fbfaf6}.sc-freeze4 thead th{position:sticky;top:0;z-index:3;background:var(--navy);color:#fff}.sc-freeze4 th:nth-child(1),.sc-freeze4 td:nth-child(1){position:sticky;left:0;z-index:1;background:var(--paper);min-width:185px;max-width:185px;white-space:normal}.sc-freeze4 th:nth-child(2),.sc-freeze4 td:nth-child(2){position:sticky;left:185px;z-index:1;background:var(--paper);min-width:28px;max-width:28px;padding-left:3px;padding-right:3px}.sc-freeze4 th:nth-child(3),.sc-freeze4 td:nth-child(3){position:sticky;left:213px;z-index:1;background:var(--paper);min-width:26px;max-width:26px;padding-left:3px;padding-right:3px}.sc-freeze4 th:nth-child(4),.sc-freeze4 td:nth-child(4){position:sticky;left:239px;z-index:1;background:var(--paper);min-width:26px;max-width:26px;padding-left:3px;padding-right:3px;box-shadow:2px 0 4px -2px #00000026}.sc-freeze4 thead th:nth-child(1),.sc-freeze4 thead th:nth-child(2),.sc-freeze4 thead th:nth-child(3),.sc-freeze4 thead th:nth-child(4){z-index:4;background:var(--navy)}.sc-freeze4 tbody tr:hover td:nth-child(1),.sc-freeze4 tbody tr:hover td:nth-child(2),.sc-freeze4 tbody tr:hover td:nth-child(3),.sc-freeze4 tbody tr:hover td:nth-child(4){background:#fbfaf6}.lsc-freeze2 thead th{position:sticky;top:0;z-index:3;background:var(--navy);color:#fff}.lsc-freeze2 th:nth-child(1),.lsc-freeze2 td:nth-child(1){position:sticky;left:0;z-index:1;background:var(--paper);min-width:170px;max-width:170px;white-space:normal;word-break:break-word}.lsc-freeze2 th:nth-child(2),.lsc-freeze2 td:nth-child(2){position:sticky;left:170px;z-index:1;background:var(--paper);min-width:60px;max-width:60px;box-shadow:2px 0 4px -2px #00000026}.lsc-freeze2 thead th:nth-child(1),.lsc-freeze2 thead th:nth-child(2){z-index:4;background:var(--navy)}.lsc-freeze2 tbody tr:hover td:nth-child(1),.lsc-freeze2 tbody tr:hover td:nth-child(2){background:#fbfaf6}.sa-table thead th:nth-child(5),.sa-table thead th:nth-child(6),.sa-table thead th:nth-child(7),.sa-table thead th:nth-child(8){background:#2c5a78;color:#fff}.sa-table tbody td:nth-child(5),.sa-table tbody td:nth-child(6),.sa-table tbody td:nth-child(7){background:#dceaf2}.sa-table tbody td:nth-child(8){background:#a9c8de}.sa-table thead th:nth-child(9),.sa-table thead th:nth-child(10),.sa-table thead th:nth-child(11){background:#1f6b4a;color:#fff}.sa-table tbody td:nth-child(9),.sa-table tbody td:nth-child(10),.sa-table tbody td:nth-child(11){background:#dcefe2}.sa-table th,.sa-table td{text-align:center}.da-table tbody td{border-bottom:2px solid #C7C4BA}.da-table tbody tr:hover td{background:#dce7f0!important}.da-table tbody tr:hover td:nth-child(1),.da-table tbody tr:hover td:nth-child(2){background:#dce7f0!important}.da-table thead th:nth-child(3),.da-table thead th:nth-child(4){background:#2c5a78;color:#fff}.da-table tbody td:nth-child(3),.da-table tbody td:nth-child(4){background:#dceaf2}.da-table thead th:nth-last-child(2),.da-table thead th:last-child{background:#1f6b4a;color:#fff}.da-table tbody td:nth-last-child(2),.da-table tbody td:last-child{background:#dcefe2}.da-table thead th{text-align:center;white-space:normal;vertical-align:middle}.da-table thead th:nth-child(3){max-width:130px}.da-table tbody td:nth-child(n+5):nth-last-child(n+3){text-align:center;vertical-align:middle}.sa-table input[type=text],.sa-table input[type=number]{text-align:center}.dash-card .dc-title{font-weight:700;font-size:14px;color:var(--navy);margin-bottom:4px;display:flex;align-items:center;gap:7px}.dash-card .dc-icon{flex-shrink:0;color:var(--gold)}.dash-card.locked .dc-icon{color:var(--slate)}.dash-card .dc-desc{font-size:12px;color:var(--slate);line-height:1.4}.dash-card .dc-badge{display:inline-flex;align-items:center;gap:4px;margin-top:10px;font-family:var(--mono);font-size:9.5px;text-transform:uppercase;padding:3px 7px;border-radius:3px}.dash-card .dc-badge .dc-icon{color:inherit}.dash-card .dc-badge.ready{background:#e7f2ef;color:var(--ok)}.dash-card .dc-badge.soon{background:#f0ead8;color:#8a6d3b}.dash-card .dc-badge.done{font-family:var(--sans);font-size:12px;font-weight:800;text-transform:none;background:#1f8a5f;color:#fff;padding:5px 10px;letter-spacing:.02em}.completion-bar{margin-bottom:16px}.completion-bar-inner{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:6px;font-size:13px}.completion-bar-inner.pending{background:#fbfaf7;border:1px solid var(--line)}.completion-bar-inner.complete{background:#1f8a5f;border:1px solid #17724D;color:#fff;font-weight:800}.completion-bar-inner.complete button{background:#ffffff26;border-color:#fff6;color:#fff}.completion-bar-inner button{margin-left:auto}.context-bar{display:flex;align-items:center;gap:8px;margin-bottom:10px;padding:9px 14px;background:var(--navy);border-radius:6px;color:#fff;font-size:12.5px;font-weight:600}.context-bar .ctx-year{color:var(--gold)}.context-bar .ctx-sep{color:#ffffff59;margin:0 2px}#cc-filters-bar,#cc-bulk-bar,#cc-catalog-table thead th{will-change:transform;transform:translateZ(0);backface-visibility:hidden}#cc-filters-bar{background:var(--paper)}#cc-catalog-table thead th{background:#fbfaf7}.import-card{background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:18px;margin-bottom:16px}.import-card .label{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--navy);margin-bottom:4px}.import-card .sub{font-size:12.5px;color:var(--slate);margin-bottom:10px}.stage{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:20px}.source-card{background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:16px;position:relative}.source-card .label{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--navy);margin-bottom:4px}.source-card .sub{font-size:12px;color:var(--slate);margin-bottom:10px}.source-card .source-steps{font-size:11px;color:var(--slate);margin:0 0 10px;padding-left:17px;line-height:1.5}.source-card .source-steps li{margin-bottom:2px}.source-card .source-steps strong{color:var(--charcoal);font-weight:600}.source-card textarea{width:100%;height:90px;resize:vertical;border:1px solid var(--line);border-radius:4px;padding:8px;font-family:var(--mono);font-size:11.5px;background:#fafaf8}.source-card .count{position:absolute;top:16px;right:16px;font-family:var(--mono);font-size:11px;color:var(--slate)}.source-card .count.has-data{color:var(--ok);font-weight:600}.source-card-head{display:flex;align-items:baseline;flex-wrap:wrap;column-gap:10px;row-gap:2px;padding-right:64px;margin-bottom:4px}.source-card-head .label{margin-bottom:0}.example-link{display:inline-flex;align-items:center;gap:4px;background:none;border:none;padding:0;cursor:pointer;font-size:11.5px;font-weight:600;color:var(--navy-light);text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:2px}.example-link:hover,.example-link:focus-visible{color:var(--navy);text-decoration-thickness:2px}.example-link .dc-icon{color:var(--gold);flex-shrink:0}.example-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#1b2a4ab8;z-index:1100;display:flex;align-items:center;justify-content:center;padding:24px}.example-modal{position:relative;background:var(--paper);border-radius:8px;border-top:4px solid var(--gold);padding:18px 20px 16px;max-width:96vw;max-height:94vh;display:flex;flex-direction:column;box-shadow:0 16px 48px #00000059}.example-modal-caption{font-family:var(--serif);font-size:20px;font-weight:600;color:var(--navy);margin:0 48px 12px 0}.example-modal img{display:block;max-width:calc(96vw - 40px);max-height:calc(94vh - 90px);width:auto;height:auto;object-fit:contain;border:1px solid var(--line);border-radius:4px;margin:0 auto}.example-modal-close{position:absolute;top:10px;right:12px;width:34px;height:34px;border-radius:50%;border:1px solid var(--line);background:var(--paper);color:var(--navy);font-size:22px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}.example-modal-close:hover,.example-modal-close:focus-visible{background:var(--navy);color:#fff;border-color:var(--navy)}.run-row{display:flex;align-items:center;gap:14px;margin-bottom:20px;flex-wrap:wrap}button.primary{background:var(--navy);color:#fff;border:none;padding:11px 22px;border-radius:5px;font-weight:600;font-size:13.5px;cursor:pointer}button.primary:hover{background:var(--navy-light)}button.ghost{background:transparent;border:1px solid var(--line);color:var(--ink);padding:10px 16px;border-radius:5px;font-size:13px;cursor:pointer}button.ghost:hover{border-color:var(--navy)}.run-row .hint{font-size:12.5px;color:var(--slate)}button.demo-role-box.active{background:var(--navy);color:#fff;border-color:var(--gold);font-weight:700;box-shadow:0 0 0 2px var(--gold)}button.demo-role-box.active:hover{background:var(--navy);border-color:var(--gold)}.summary-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:6px;overflow:hidden;margin-bottom:20px}.summary-strip .cell{background:var(--paper);padding:14px 16px}.summary-strip .cell.cell-link{cursor:pointer}.summary-strip .cell.cell-link:hover{background:#f3f1eb}.summary-strip .num{font-family:var(--serif);font-size:24px;color:var(--navy);font-weight:600}.summary-strip .num.warn-num{color:var(--warn)}.summary-strip .cap{font-family:var(--mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--slate);margin-top:2px}.panel{background:var(--paper);border:1px solid var(--line);border-radius:6px;margin-bottom:20px}.panel-head{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:10px}.panel-head h2{font-family:var(--serif);font-size:16px;margin:0;color:var(--navy)}.filters{display:flex;gap:8px;flex-wrap:wrap}.filters select,.filters input{font-size:12.5px;padding:6px 10px;border:1px solid var(--line);border-radius:4px;background:var(--cream)}table{width:100%;border-collapse:collapse}thead th{text-align:left;font-family:var(--mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--slate);padding:8px 14px;border-bottom:1px solid var(--line);background:#fbfaf7;white-space:nowrap}tbody td{padding:9px 14px;border-bottom:1px solid #EEECE6;font-size:13px;vertical-align:middle}tbody tr:hover{background:#fbfaf6}.sr-teacher-row:hover{background:#fbfaf6!important}.code{font-family:var(--mono);font-weight:600;color:var(--navy)}.dim{color:var(--slate)}.sem-band{text-align:center;font-size:12.5px;font-weight:700;padding:8px;color:#fff}.sem1-band{background:#2c5a78}.sem2-band{background:#8a5a2c}.sem1-col{background:#dceaf2;color:#1f3f55}.sem2-col{background:#f2e4d2;color:#5c4322}.sem1-cell{background:#f0f7fb}.sem2-cell{background:#fbf4eb}.sem-filler{background:#fbfaf7;border-bottom:1px solid var(--line)}#ms-tabs-bar{background:var(--paper)}#ms-table-scroll thead th{position:sticky;top:0;z-index:5}.chip{display:inline-block;font-size:11px;font-weight:600;padding:3px 9px;border-radius:20px;color:#fff;white-space:nowrap}.badge{display:inline-flex;align-items:center;font-family:var(--mono);font-size:10.5px;padding:2px 7px;border-radius:4px;margin-right:4px}.badge.miss{background:#fbeae5;color:var(--warn)}.badge.ok{background:#e7f2ef;color:var(--ok)}.dept-cell{display:flex;align-items:center;gap:6px;position:relative}.dept-select{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer;width:100%;height:100%}.dept-cell:hover .chip{outline:1px dashed var(--slate);outline-offset:2px}.override-tag{color:var(--gold);font-size:14px;line-height:1}.remove-btn{background:transparent;border:1px solid var(--line);color:var(--slate);border-radius:4px;width:26px;height:26px;cursor:pointer;font-size:12px}.remove-btn:hover{border-color:var(--warn);color:var(--warn);background:#fbeae5}.removed-chip{display:inline-flex;align-items:center;gap:8px;background:#fbfaf7;border:1px solid var(--line);border-radius:20px;padding:5px 6px 5px 12px;font-size:12.5px;color:var(--slate)}.removed-chip button{background:transparent;border:none;color:var(--ok);font-size:11.5px;font-weight:600;cursor:pointer;padding:4px 8px}.empty-state{text-align:center;padding:60px 20px;color:var(--slate)}.empty-state .big{font-family:var(--serif);font-size:19px;color:var(--navy);margin-bottom:6px}.empty-state .big .dc-icon{color:var(--slate);opacity:.6}footer.note{margin-top:20px;font-size:12px;color:var(--slate);border-top:1px solid var(--line);padding-top:14px}.mpc-sortable-th{cursor:pointer;-webkit-user-select:none;user-select:none}.mpc-sortable-th:hover{background:var(--navy-light)!important}.mpc-sort-icon{display:inline-block;margin-left:4px;font-size:10px;opacity:.55}.mpc-msdrop{position:relative;display:inline-block}.mpc-msdrop-btn{padding:6px 26px 6px 10px;border:1px solid var(--line);border-radius:4px;font-size:12.5px;background:#fff;cursor:pointer;text-align:left;min-width:140px;white-space:nowrap;position:relative;color:var(--ink)}.mpc-msdrop-btn:after{content:"▾";font-size:9px;color:var(--slate);position:absolute;right:10px;top:50%;transform:translateY(-50%)}.mpc-msdrop-btn:hover{border-color:var(--navy)}.mpc-msdrop-panel{position:absolute;top:calc(100% + 4px);left:0;z-index:60;min-width:220px;background:#fff;border:1px solid var(--line);border-radius:6px;box-shadow:0 4px 14px #00000024;padding:6px 0;max-height:280px;overflow-y:auto}.mpc-msdrop-item{display:flex;align-items:center;gap:8px;padding:6px 12px;font-size:12.5px;cursor:pointer}.mpc-msdrop-item:hover{background:#f3f1eb}.mpc-msdrop-item input{margin:0}.mpc-msdrop-clear{margin:4px 12px 0;padding:6px 0 2px;border-top:1px solid var(--line);font-size:11.5px;color:var(--navy);font-weight:600;cursor:pointer}@keyframes sa-split-flash-bg{0%{background-color:#ffe58a}to{background-color:transparent}}tr.sa-split-flash>td{animation:sa-split-flash-bg 1.6s ease-out}.mpc-msdrop-clear:hover{text-decoration:underline}
