:root{--navy:#10233f;--blue:#1769aa;--cyan:#20a4c7;--gold:#f4b942;--bg:#f3f6f9;--ink:#172337;--muted:#657386;--border:#dce4ec;--white:#fff;--danger:#b42318}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);margin:0;font-family:Inter,Segoe UI,Arial,sans-serif}button,input{font:inherit}button{cursor:pointer}.login-shell{background:linear-gradient(135deg,#0b1b31,#1769aa);place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{background:#fff;border-radius:24px;gap:16px;width:min(420px,100%);padding:34px;display:grid;box-shadow:0 24px 70px #00152c66}.brand-mark{background:var(--navy);border-radius:20px;place-items:center;width:70px;height:70px;font-size:36px;display:grid}.login-card h1{margin:0;font-size:30px}.login-card p{color:var(--muted);margin:-8px 0 8px}label{gap:7px;font-weight:650;display:grid}input{border:1px solid var(--border);border-radius:10px;min-height:48px;padding:13px 14px}.login-card button,.panel-title button{background:var(--blue);color:#fff;border:0;border-radius:10px;min-height:48px;font-weight:700}.error{color:#912018;background:#fee4e2;border-radius:10px;padding:12px 14px}.app-shell{grid-template-columns:260px 1fr;min-height:100vh;display:grid}aside{background:var(--navy);color:#fff;flex-direction:column;gap:30px;padding:26px 18px;display:flex}.logo{align-items:center;gap:12px;padding:0 8px;display:flex}.logo>span{font-size:30px}.logo div{display:grid}.logo small{color:#aebed0;margin-top:3px}nav{gap:7px;display:grid}nav button,.logout{color:#c6d3e2;text-align:left;background:0 0;border:0;border-radius:10px;padding:13px 14px;font-weight:650}nav button.active,nav button:hover{color:#fff;background:#ffffff18}.logout{margin-top:auto}.content{min-width:0;padding:34px}.content header{justify-content:space-between;align-items:center;margin-bottom:28px;display:flex}.content header small{color:var(--blue);letter-spacing:.12em;font-weight:800}.content h1{margin:5px 0 0;font-size:30px}.secondary{border:1px solid var(--border);background:#fff;border-radius:10px;padding:11px 16px;font-weight:700}.cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:18px;display:grid}.metric,.panel{border:1px solid var(--border);background:#fff;border-radius:16px;box-shadow:0 5px 16px #10233f0a}.metric{border-top:4px solid var(--cyan);padding:20px}.metric.warn{border-top-color:var(--gold)}.metric.danger{border-top-color:var(--danger)}.metric span{color:var(--muted);font-weight:650;display:block}.metric strong{margin-top:8px;font-size:32px;display:block}.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.panel{padding:22px}.panel h2{margin:0 0 20px;font-size:18px}.bar-row{margin:16px 0}.bar-row>div:first-child{justify-content:space-between;margin-bottom:7px;display:flex}.track{background:#e8eef4;border-radius:20px;height:9px;overflow:hidden}.track i{background:linear-gradient(90deg,var(--blue),var(--cyan));border-radius:20px;height:100%;display:block}.user-totals{grid-template-columns:auto 1fr;align-items:baseline;gap:10px 14px;display:grid}.user-totals b{color:var(--blue);font-size:28px}.panel-title{justify-content:space-between;align-items:center;display:flex}.panel-title button{padding:0 18px}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:14px 12px}th{color:var(--muted);text-transform:uppercase;font-size:12px}.pill{border-radius:20px;padding:5px 9px;font-size:12px;font-weight:800}.pill.ok{color:#16733b;background:#d9fbe5}.pill.off{color:#566273;background:#e8edf2}.link{color:var(--blue);background:0 0;border:0;font-weight:700}.empty{color:var(--muted)}@media (max-width:900px){.app-shell{grid-template-columns:1fr}aside{z-index:3;flex-direction:row;align-items:center;gap:10px;padding:12px 16px;position:sticky;top:0}.logo small{display:none}nav{margin-left:auto;display:flex}nav button{font-size:0}nav button:first-letter{font-size:20px}.logout{margin:0;font-size:0}.logout:before{content:"⇥";font-size:20px}.content{padding:22px}.cards{grid-template-columns:repeat(2,1fr)}}@media (max-width:620px){.content header{align-items:flex-start}.content h1{font-size:24px}.grid,.cards{grid-template-columns:1fr}.secondary{padding:10px}.panel{padding:16px}}.builder-grid{grid-template-columns:minmax(230px,290px) minmax(0,1fr);align-items:start;gap:18px;display:grid}.builder-list,.builder-editor{min-width:0}.builder-editor{gap:16px;display:grid}.builder-editor h2,.builder-editor h3{margin:0}.builder-editor h3{border-top:1px solid var(--border);padding-top:10px}.builder-editor label{font-size:14px}.builder-editor input,.builder-editor select,.builder-editor textarea{border:1px solid var(--border);width:100%;min-height:44px;color:var(--ink);background:#fff;border-radius:10px;padding:10px 12px}.builder-editor textarea{resize:vertical;min-height:84px}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.scope-options{flex-wrap:wrap;gap:10px;display:flex}.builder-editor .check-row{border:1px solid var(--border);background:#f6f9fb;border-radius:10px;align-items:center;gap:9px;padding:10px 12px;display:flex}.builder-editor .check-row input{width:18px;height:18px;min-height:18px}.module-row{text-align:left;border:1px solid var(--border);width:100%;color:var(--ink);background:#fff;border-radius:10px;gap:4px;margin-top:8px;padding:12px;display:grid}.module-row span{color:var(--muted);font-size:12px}.module-row.selected{border-color:var(--blue);background:#eaf4fb}.field-card{border:1px solid var(--border);border-radius:12px;gap:12px;padding:14px;display:grid}.primary{background:var(--blue);color:#fff;border:0;border-radius:10px;min-height:46px;padding:12px 16px;font-weight:700}.primary:disabled{opacity:.5;cursor:default}.notice{color:#166534;background:#dcfce7;border-radius:10px;padding:12px 14px}.danger-text{color:var(--danger)}.preview{border:1px solid var(--border);background:#f7fafc;border-radius:14px;gap:14px;max-width:440px;padding:18px;display:grid}.preview label{gap:6px;display:grid}.preview input:disabled,.preview select:disabled,.preview textarea:disabled{background:#fff}.builder-actions{flex-wrap:wrap;gap:10px;display:flex}@media (max-width:950px){.builder-grid,.form-grid{grid-template-columns:1fr}}.catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.catalog-grid>.error,.catalog-grid>.notice,.catalog-links{grid-column:1/-1}.catalog-form{gap:10px;margin-bottom:20px;display:grid}.catalog-form input,.catalog-grid select{border:1px solid var(--border);background:#fff;border-radius:10px;width:100%;min-height:44px;padding:10px 12px}.catalog-row{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:10px 0;display:flex}.catalog-row>div{display:grid}.catalog-row small{color:var(--muted)}.catalog-links{gap:15px;display:grid}.catalog-links .primary{justify-self:start}.scope-pill{background:#eaf4fb;border-radius:20px;padding:8px 12px;font-size:13px}@media (max-width:700px){.catalog-grid{grid-template-columns:1fr}}.user-create-form{border:1px solid var(--border);background:#f7fafc;border-radius:12px;gap:15px;margin:16px 0;padding:18px;display:grid}.user-create-form h3{margin:0}.user-create-form .primary{justify-self:start}.user-create-form select{border:1px solid var(--border);background:#fff;border-radius:10px;width:100%;min-height:48px;padding:10px}.user-create-form .check-row{border:1px solid var(--border);background:#fff;border-radius:8px;align-items:center;gap:7px;padding:7px 10px;display:flex}.user-create-form .check-row input{width:18px;height:18px;min-height:18px}.dashboard-filters{gap:14px;margin-bottom:18px;display:grid}.dashboard-filters h2{margin:0}.dashboard-filters button,.audit-filters button{background:var(--blue);color:#fff;border:0;border-radius:10px;justify-self:start;min-height:44px;padding:10px 18px;font-weight:700}.dashboard-filters .check-row{border:1px solid var(--border);background:#f7fafc;border-radius:8px;align-items:center;gap:7px;padding:6px 10px;font-size:13px;display:flex}.dashboard-filters .check-row input{width:17px;height:17px;min-height:17px}.audit-filters{grid-template-columns:1fr 1fr auto;align-items:end;gap:12px;margin-bottom:18px;display:grid}.audit-filters label{min-width:0}.audit-filters input{width:100%}.table-panel td:nth-child(5){white-space:normal;overflow-wrap:anywhere;max-width:400px}@media (max-width:700px){.audit-filters{grid-template-columns:1fr}}.assignment-editor{border:1px solid var(--border);background:#f7fafc;border-radius:12px;gap:14px;margin:18px 0;padding:18px;display:grid}.assignment-editor h3{margin:0}.assignment-editor p{color:var(--muted);margin:0}.assignment-editor .check-row{border:1px solid var(--border);background:#fff;border-radius:8px;align-items:center;gap:8px;padding:7px 10px;display:flex}.assignment-editor .check-row input{width:18px;height:18px;min-height:18px}.assignment-editor .primary{justify-self:start}.row-actions{align-items:center;gap:12px;display:flex}.review-grid{grid-template-columns:minmax(240px,330px) minmax(0,1fr);align-items:start;gap:18px;display:grid}.review-grid .panel{min-width:0}.review-grid select,.review-grid textarea{border:1px solid var(--border);background:#fff;border-radius:10px;width:100%;min-height:46px;padding:10px}.review-grid .secondary{margin:12px 0}.review-list{gap:8px;max-height:65vh;display:grid;overflow:auto}.review-row{text-align:left;border:1px solid var(--border);background:#fff;border-radius:10px;gap:4px;padding:12px;display:grid}.review-row span{color:var(--muted);font-size:13px}.review-row.selected{border-color:var(--blue);background:#eaf4fb}.review-answers{gap:8px;display:grid}.review-answers div{border:1px solid var(--border);border-radius:9px;padding:10px}.review-answers dt{color:var(--muted);font-size:12px}.review-answers dd{overflow-wrap:anywhere;margin:4px 0 0}.review-photos{gap:8px;display:grid}.review-photos button{text-align:left;border:1px solid var(--border);background:#f7fafc;border-radius:9px;padding:11px}.review-form{gap:12px;margin:20px 0;display:grid}.review-form textarea{min-height:90px}.review-form .primary{justify-self:start}.review-history{border-top:1px solid var(--border);padding:10px 0}.review-history p{margin:5px 0}@media (max-width:850px){.review-grid{grid-template-columns:1fr}}
