:root{--ink:#172439;--muted:#627088;--line:#dbe3ee;--surface:#fff;--canvas:#f5f8fc;--blue:#1f5a9d;--blue-dark:#174679;--blue-pale:#eaf2fc;--green:#176b55;--green-pale:#e5f5ef;--red:#a32d2d;--red-pale:#fbeaea}*{box-sizing:border-box}body{background:var(--canvas);min-width:320px;color:var(--ink);margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,a{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.65}.page{width:min(1120px,100% - 32px);margin:0 auto;padding:54px 0 72px}.page-centred{place-items:center;min-height:100vh;display:grid}.topbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:24px;padding-bottom:30px;display:flex}.eyebrow{color:var(--blue);letter-spacing:.12em;margin:0 0 8px;font-size:.72rem;font-weight:800}h1,h2,h3,p{margin-top:0}h1{letter-spacing:-.035em;margin-bottom:13px;font-size:clamp(2rem,5vw,3rem);line-height:1}h2{letter-spacing:-.02em;margin-bottom:7px;font-size:1.35rem}h3{letter-spacing:-.015em;font-size:1.05rem}.subtitle{color:var(--muted);max-width:670px;margin-bottom:0;line-height:1.5}.muted{color:var(--muted)}.user-area{color:var(--muted);flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:12px;font-size:.9rem;display:flex}.button{appearance:none;background:var(--blue);border:1px solid var(--blue);color:#fff;border-radius:7px;padding:10px 15px;font-weight:700;text-decoration:none;transition:background .15s,border-color .15s;display:inline-block}.button:hover{background:var(--blue-dark);border-color:var(--blue-dark)}.button-secondary{color:var(--blue);background:#fff;border-color:#b9c8dc}.button-secondary:hover{background:var(--blue-pale);border-color:var(--blue)}.notice{border:1px solid;border-radius:8px;justify-content:space-between;align-items:center;gap:16px;margin:26px 0;padding:12px 16px;display:flex}.notice-success{background:var(--green-pale);color:#155c49;border-color:#adddca}.notice-error{background:var(--red-pale);color:var(--red);border-color:#efbbbb}.notice button{color:inherit;background:0 0;border:0;font-size:1.35rem;line-height:1}.login-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;max-width:520px;margin:55px auto;padding:34px;box-shadow:0 10px 35px #25436b0f}.login-card p:not(.eyebrow){color:var(--muted);margin-bottom:26px;line-height:1.55}.app-tabs{border-bottom:1px solid var(--line);gap:6px;margin-top:28px;display:flex}.app-tab{color:var(--muted);background:0 0;border:0;border-bottom:3px solid #0000;padding:11px 15px;font-weight:750}.app-tab:hover{color:var(--blue)}.app-tab.active{border-bottom-color:var(--blue);color:var(--blue)}.tasks-section{margin-top:36px}.section-heading{justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;display:flex}.section-heading p{color:var(--muted);margin:0}.admin-panel{background:var(--surface);border:1px solid #bfd3eb;border-radius:10px;margin-bottom:18px;padding:20px}.admin-panel-heading{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;display:flex}.admin-panel-heading .eyebrow,.admin-panel-heading h2{margin-bottom:5px}.admin-panel-heading p:not(.eyebrow){color:var(--muted);margin:0}.access-user-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:17px;display:grid}.access-user-fields label{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;gap:5px;font-size:.73rem;font-weight:700;display:grid}.access-user-fields input,.access-user-fields select{color:var(--ink);text-transform:none;background:#fff;border:1px solid #bdc9d8;border-radius:6px;min-height:37px;padding:0 9px;font-size:.9rem}.project-access-list{border:0;border-top:1px solid var(--line);gap:8px;max-height:230px;margin:0;padding:13px 0 0;display:grid;overflow-y:auto}.project-access-list legend{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;padding:0;font-size:.73rem;font-weight:700}.project-access-list label{align-items:center;gap:8px;font-size:.9rem;display:flex}.project-access-list input{accent-color:var(--blue);width:16px;height:16px}.admin-actions{flex-wrap:wrap;align-items:center;gap:12px;margin-top:18px;display:flex}.empty-access{color:var(--muted);margin:18px 0}.filters{background:var(--surface);border:1px solid var(--line);border-radius:10px;flex-wrap:wrap;gap:14px;margin-bottom:18px;padding:15px;display:flex}.filters label{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;flex:190px;gap:5px;font-size:.73rem;font-weight:700;display:grid}.filters select,.filters input{color:var(--ink);text-transform:none;background:#fff;border:1px solid #bdc9d8;border-radius:6px;min-height:36px;padding:0 9px;font-size:.88rem;font-weight:500}.filters .completed-toggle{color:var(--ink);letter-spacing:normal;text-transform:none;align-self:end;align-items:center;gap:8px;min-height:36px;font-size:.84rem;font-weight:600;display:flex}.filters .completed-toggle input{accent-color:var(--blue);width:16px;min-height:auto;padding:0}.task-list{gap:12px;display:grid}.task-card{background:var(--surface);border:1px solid var(--line);border-radius:10px;justify-content:space-between;gap:28px;padding:22px;display:flex}.task-main{min-width:0}.task-title-row{align-items:flex-start;gap:12px;display:flex}.task-title-row h3{margin-bottom:9px}.status{color:#4d5c73;white-space:nowrap;background:#eff3f8;border-radius:999px;padding:4px 9px;font-size:.75rem;font-weight:700}.prefix{background:var(--blue-pale);color:var(--blue);white-space:nowrap;border-radius:999px;padding:4px 9px;font-size:.75rem;font-weight:800}.description{color:var(--muted);white-space:pre-wrap;margin-bottom:15px;font-size:.93rem;line-height:1.45}.rich-description{white-space:normal}.rich-description>:last-child{margin-bottom:0}.rich-description p,.rich-description ul,.rich-description ol,.rich-description blockquote,.rich-description pre{margin:0 0 10px}.rich-description ul,.rich-description ol{padding-left:1.4rem}.rich-description a{color:var(--blue);text-decoration:underline}.rich-description pre{white-space:pre-wrap;background:#f1f4f8;border-radius:5px;padding:9px;overflow-x:auto}.metadata{flex-wrap:wrap;gap:12px 24px;margin:0;display:flex}.metadata div{gap:2px;display:grid}.metadata dt{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;font-size:.7rem;font-weight:700}.metadata dd{margin:0;font-size:.88rem}.task-link{color:var(--blue);margin-top:16px;font-size:.85rem;font-weight:700;text-decoration:none;display:inline-block}.task-link:hover{text-decoration:underline}.score-box{border-left:1px solid var(--line);flex-direction:column;flex:0 0 146px;align-items:flex-end;gap:8px;padding-left:22px;display:flex}.score-label{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-size:.75rem;font-weight:700}.score-actions{gap:5px;display:flex}.score-button{color:#40516a;background:#fff;border:1px solid #bdc9d8;border-radius:6px;width:34px;height:34px;font-weight:800}.score-button:hover,.score-button.selected{background:var(--blue);border-color:var(--blue);color:#fff}.score-box small{color:var(--muted);font-size:.75rem}.remove-score{color:var(--blue);background:0 0;border:0;padding:0;font-size:.75rem;font-weight:700;text-decoration:underline}.remove-score:hover{color:var(--blue-dark)}.empty-state{background:var(--surface);color:var(--muted);text-align:center;border:1px dashed #bdc9d8;border-radius:10px;padding:35px}.empty-state h3{color:var(--ink)}.empty-state p{margin-bottom:0}.kpi-dashboard{margin-top:34px}.kpi-heading{justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:20px;display:flex}.kpi-heading .eyebrow{margin-bottom:5px}.kpi-heading h2{margin-bottom:6px}.kpi-heading .muted{margin-bottom:0}.kpi-legend{color:var(--muted);flex-wrap:wrap;justify-content:flex-end;gap:8px 14px;font-size:.78rem;font-weight:650;display:flex}.kpi-legend span{white-space:nowrap;align-items:center;gap:5px;display:inline-flex}.kpi-legend i{border-radius:999px;width:9px;height:9px;display:inline-block}.kpi-legend-red{background:#c33d3d}.kpi-legend-yellow{background:#cf9414}.kpi-legend-green{background:#16805b}.kpi-user-list{gap:18px;display:grid}.kpi-user-card{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:22px}.kpi-user-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:18px;padding-bottom:15px;display:flex}.kpi-user-heading h3{margin-bottom:4px}.kpi-user-heading p{color:var(--muted);margin-bottom:0;font-size:.86rem}.kpi-count{background:var(--blue-pale);color:var(--blue);white-space:nowrap;border-radius:999px;padding:6px 9px;font-size:.76rem;font-weight:750}.kpi-overview{grid-template-columns:minmax(220px,.72fr) minmax(0,1.9fr);gap:25px;display:grid}.kpi-overview h4{margin:0 0 5px;font-size:.94rem}.kpi-overview p{color:var(--muted);margin-bottom:0;font-size:.84rem;line-height:1.45}.kpi-gauge-panel{border-right:1px solid var(--line);padding-right:20px}.kpi-gauge{text-align:center;max-width:240px;margin:12px auto 0}.kpi-gauge svg{width:100%;display:block}.kpi-gauge-pointer{stroke:#30425d;stroke-linecap:round;stroke-width:4px}.kpi-gauge-center{fill:#30425d}.kpi-gauge-limit{fill:var(--muted);font-size:10px;font-weight:700}.kpi-gauge strong{letter-spacing:-.04em;margin-top:-15px;font-size:1.75rem;line-height:1;display:block}.kpi-gauge span{color:var(--muted);margin-top:4px;font-size:.77rem;font-weight:700;display:block}.kpi-monthly-panel{min-width:0}.kpi-chart-wrap{margin-top:10px;overflow-x:auto}.kpi-chart{width:100%;min-width:560px;display:block}.kpi-band-green{fill:#e5f5ef}.kpi-band-yellow{fill:#fff4d8}.kpi-band-red{fill:#fbeaea}.kpi-grid-line{stroke:#c8d0dc;stroke-dasharray:3 3;stroke-width:1px}.kpi-axis-label,.kpi-month-label{fill:var(--muted);font-size:11px;font-weight:650}.kpi-line{fill:none;stroke:#2b66b0;stroke-linecap:round;stroke-linejoin:round;stroke-width:3px}.kpi-chart-point{stroke:#fff;stroke-width:2px}.kpi-no-data{text-align:center;border:1px dashed #bdc9d8;border-radius:7px;padding:20px;margin-top:15px!important}@media (max-width:650px){.page{width:min(100% - 24px,1120px);padding-top:32px}.topbar,.task-card{flex-direction:column}.user-area{justify-content:flex-start}.task-card{gap:18px}.admin-panel-heading{flex-direction:column}.access-user-fields{grid-template-columns:1fr}.kpi-heading,.kpi-user-heading{flex-direction:column;align-items:flex-start}.kpi-legend{justify-content:flex-start}.kpi-overview{grid-template-columns:1fr}.kpi-gauge-panel{border-bottom:1px solid var(--line);border-right:0;padding-bottom:19px;padding-right:0}.score-box{border-left:0;border-top:1px solid var(--line);flex-basis:auto;align-items:flex-start;padding-top:16px;padding-left:0}}
