:root{font-family:Inter,"Segoe UI",Arial,sans-serif;color:#152c44;background:#f4f7fb;font-synthesis:none;--navy:#102a43;--muted:#697c8e;--blue:#347df1;--teal:#10a58d;--line:#e6ecf2}*{box-sizing:border-box}body{margin:0;font-size:16px}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.55}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #75b2ff;outline-offset:3px}[hidden]{display:none!important}.boot{padding:80px;text-align:center;color:var(--muted)}h1,h2,p{margin-top:0}h1{font-size:32px;letter-spacing:-.9px;line-height:1.2;margin-bottom:10px}h2{font-size:18px;letter-spacing:-.25px;margin-bottom:6px}.muted{color:var(--muted);font-size:14px;line-height:1.6}.eyebrow{font-size:12px;letter-spacing:1.9px;font-weight:700;color:#52768c;margin-bottom:12px}.brand{display:flex;align-items:center;gap:11px;font-size:21px;font-weight:700;letter-spacing:-.6px}.brand-icon{display:grid;place-items:center;width:34px;height:36px;border-radius:8px;background:#2ad1b1;color:#102a43;font-weight:800}.layout{display:flex;min-height:100vh}.sidebar{width:242px;flex-shrink:0;background:var(--navy);color:white;position:fixed;inset:0 auto 0 0;padding:31px 22px;display:flex;flex-direction:column}.sidebar-caption{font-size:12px;letter-spacing:1.6px;color:#94acbf;margin:60px 14px 20px}.nav-active{background:#203e56;border-radius:8px;border-left:3px solid #2ad1b1;display:flex;align-items:center;gap:11px;padding:15px 10px;font-size:14px}.nav-active svg{width:22px;height:22px;color:#4bddc1}.side-bottom{margin-top:auto;padding:24px 10px 0;border-top:1px solid #30475d;font-size:13px;line-height:1.8;color:#9bb1c3}.side-bottom p{margin:15px 0 0}.read-only{color:#c4f9ee;border:1px solid #3b756f;background:#193e48;border-radius:5px;padding:5px 9px;font-size:12px}.main-shell{margin-left:242px;flex:1;min-width:0}.topbar{min-height:78px;background:#fff;border-bottom:1px solid var(--line);padding:18px 36px;display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:14px;color:var(--muted)}.slash{color:#b2bec9;margin:0 10px}.account{display:flex;align-items:center;gap:10px;color:#30455b;flex-wrap:wrap}.avatar{width:32px;height:32px;background:#e6f2f2;color:#167d73;display:grid;place-items:center;border-radius:50%;font-weight:700}.text-button{border:0;background:transparent;color:#697c8e;font-size:13px;padding:8px}.text-button:hover{color:#152c44}main{max-width:1620px;margin:auto;padding:36px}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:25px}.page-heading .muted{margin:0}.secondary,.period-submit{background:white;border:1px solid #dbe4ec;border-radius:7px;color:#35516a;padding:10px 15px;font-size:14px;white-space:nowrap}.secondary:hover,.period-submit:hover{background:#eaf1f8}.secondary span{font-size:21px;vertical-align:-1px;margin-right:7px}.demo-banner{background:#fff4d8;color:#7e5b0b;border:1px solid #f0dda8;border-radius:8px;padding:12px 16px;margin-bottom:18px;font-size:14px;display:flex;align-items:center;gap:14px;flex-wrap:wrap}.period{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:24px;font-size:14px}.period label{font-weight:600;margin-right:2px}.period select,.period input{border:1px solid #dce4ed;background:white;color:#2f485e;padding:9px;border-radius:6px;min-width:0}.updated{margin-left:auto;color:#748495;font-size:12px}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-bottom:24px}.metric{background:white;border:1px solid var(--line);border-radius:11px;padding:20px;box-shadow:0 3px 9px #102a4303}.metric-top{display:flex;justify-content:space-between;align-items:center;gap:8px;color:#526a7f;font-size:14px;min-height:36px}.metric-symbol{border-radius:8px;display:grid;place-items:center;width:33px;height:33px;font-size:22px;flex-shrink:0}.blue{background:#eaf2ff;color:#347df1}.amber{background:#fff2dc;color:#d99816}.teal{background:#e6f7f2;color:#129b82}.purple{background:#f0ecfb;color:#8464c7}.metric strong{display:block;font-size:38px;line-height:1.2;letter-spacing:-1px;margin:15px 0 9px;font-weight:650}.metric p{font-size:12px;color:#7a8a98;margin:0;line-height:1.5}.card{background:white;border:1px solid var(--line);border-radius:11px;padding:23px;min-width:0;box-shadow:0 3px 9px #102a4303}.card-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.card-heading p{margin:0;font-size:13px}.chart-key{display:flex;gap:19px;font-size:13px;color:#526a7f}.chart-key span{display:flex;align-items:center;gap:7px}.chart-key i{height:8px;width:8px;border-radius:2px;display:inline-block}.key-created{background:var(--blue)}.key-resolved{background:var(--teal)}.timeline-card{margin-bottom:24px}.timeline{margin-top:25px;height:240px;position:relative;padding:8px 0 30px 30px;display:flex;gap:3px;align-items:flex-end;border-bottom:1px solid var(--line);background:repeating-linear-gradient(to top,transparent 0,transparent 47px,#edf1f6 48px,#edf1f6 49px)}.bar-group{height:100%;flex:1;min-width:0;display:flex;align-items:flex-end;gap:2px;position:relative;justify-content:center}.bar{width:35%;max-width:30px;border-radius:3px 3px 0 0;min-height:0}.bar-created{background:var(--blue)}.bar-resolved{background:var(--teal)}.bar-label{position:absolute;bottom:-26px;left:50%;transform:translateX(-50%);font-size:12px;color:#8292a1;white-space:nowrap}.axis-max{position:absolute;left:0;top:0;color:#8292a1;font-size:12px}.axis-zero{position:absolute;left:0;bottom:24px;font-size:12px;color:#8292a1}.data-details{font-size:12px;color:#728398;margin-top:18px}.data-details summary{cursor:pointer;width:fit-content}.table-wrap{overflow:auto;max-height:230px;margin-top:12px}table{width:100%;border-collapse:collapse;font-size:14px}th,td{padding:9px;text-align:left;border-bottom:1px solid var(--line)}.bottom-grid{display:grid;grid-template-columns:1.08fr 1fr;gap:24px}.status-content{display:flex;align-items:center;gap:27px;min-height:230px;padding-top:20px}.donut{width:168px;height:168px;border-radius:50%;flex-shrink:0;display:grid;place-items:center;background:#edf1f6}.donut-core{width:129px;height:129px;background:white;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-direction:column}.donut-core strong{font-size:31px;letter-spacing:-1px}.donut-core span{font-size:12px;color:#8795a4;margin-top:6px}.status-legend{padding:0;margin:0;list-style:none;flex:1;min-width:0}.status-legend li{display:flex;align-items:center;gap:8px;font-size:13px;color:#5c7085;margin:13px 0}.status-legend i{width:8px;height:8px;border-radius:50%;flex-shrink:0}.status-legend b{margin-left:auto;color:#253d54;font-weight:600}.priorities{padding-top:20px}.priority-row{display:grid;grid-template-columns:80px 1fr 26px;align-items:center;gap:10px;margin:15px 0;font-size:13px;color:#60758b}.priority-track{height:7px;border-radius:10px;background:#f1f4f8}.priority-fill{height:7px;border-radius:10px;background:#408bee}.priority-row b{text-align:right;font-weight:600;color:#29425a}.small-badge{white-space:nowrap;border-radius:5px;font-size:12px;background:#f0f5f9;color:#526d81;padding:5px 8px}.method-note{font-size:12px;line-height:1.7;color:#8593a1;margin:20px 0 0}footer{border-top:1px solid #e0e7ee;margin-top:31px;padding-top:20px;display:flex;justify-content:space-between;gap:15px;flex-wrap:wrap;font-size:12px;color:#8b99a8}.error-banner{padding:18px;border:1px solid #f3c7c3;background:#fff0ee;color:#9e322a;border-radius:8px;margin-bottom:24px;line-height:1.6;font-size:14px}.loading{padding:60px;text-align:center;color:#5b7287}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.login{display:grid;grid-template-columns:1fr 1fr;min-height:100vh}.login-intro{background:#102a43;color:white;padding:50px 12%;display:flex;flex-direction:column;justify-content:space-between}.login-intro .eyebrow{color:#4bddc1}.login-intro h1{font-size:48px;line-height:1.15;letter-spacing:-1.8px}.login-intro p:not(.eyebrow){font-size:18px;line-height:1.8;color:#a7c0d0}.login-foot{font-size:13px;color:#8da8bc}.login-panel{display:grid;place-items:center;background:white;padding:50px}.login-panel form{width:100%;max-width:390px}.login-panel h2{font-size:26px;line-height:1.3}.login-panel label{display:block;font-size:14px;font-weight:600;margin:24px 0 8px}.login-panel input{width:100%;border:1px solid #d7e1e9;border-radius:7px;padding:13px}.primary{border:0;border-radius:7px;background:#102a43;color:white;font-weight:600;padding:15px;width:100%;margin-top:27px}.primary:hover{background:#1b4569}.login-help{margin-top:25px;color:#81919f;font-size:13px;line-height:1.7}.error-text{color:#ac3a2f;font-size:14px;margin:16px 0 0}@media(min-width:1600px){main{padding:42px}.timeline{height:280px}}@media(max-width:1200px){.sidebar{width:200px;padding:30px 16px}.main-shell{margin-left:200px}main{padding:25px}.topbar{padding:16px 25px}.metrics{gap:12px}.metric{padding:16px}.metric-top{font-size:13px}.metric strong{font-size:32px}.bottom-grid{gap:18px}.status-content{gap:16px;flex-wrap:wrap;justify-content:center}.status-legend{min-width:180px}.donut{width:145px;height:145px}.donut-core{width:110px;height:110px}}@media(max-width:950px){.sidebar{display:none}.main-shell{margin-left:0}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.status-content{flex-wrap:nowrap}.bottom-grid{grid-template-columns:1fr}.login-intro{padding:38px}.login-intro h1{font-size:38px}}@media(max-width:600px){.topbar{padding:14px 18px;align-items:flex-start}.topbar>span{display:none}.account{width:100%}.account .text-button{margin-left:auto}main{padding:24px 16px}h1{font-size:27px}.page-heading{align-items:flex-start}.page-heading .secondary{font-size:0;padding:6px 10px}.page-heading .secondary span{font-size:24px;margin:0}.page-heading .secondary:after{content:'Actualiser';font-size:12px;display:block}.eyebrow{font-size:11px;letter-spacing:1.5px}.period{gap:8px}.period>label:not(.sr-only){width:100%}.period select{width:100%}.period input{font-size:13px;flex:1;width:100px}.period-submit{padding:9px}.updated{width:100%;margin:6px 0 0}.metrics{gap:10px}.metric{padding:14px}.metric-top{align-items:flex-start;min-height:38px;line-height:1.4}.metric-symbol{display:none}.metric strong{font-size:31px}.metric p{font-size:12px}.card{padding:18px}.card-heading{align-items:flex-start;flex-wrap:wrap}.chart-key{margin-top:8px}.timeline{height:220px;gap:1px}.bar-group{gap:1px}.bar-label{font-size:11px}.status-content{gap:16px;flex-wrap:wrap}.status-legend{min-width:155px}.login{grid-template-columns:1fr}.login-intro{padding:26px}.login-intro>div:nth-child(2),.login-foot{display:none}.login-panel{padding:35px 25px;align-items:start}.login-panel form{max-width:none}.login-panel h2{font-size:24px}.method-note{font-size:12px}}@media(prefers-reduced-motion:no-preference){.bar{transition:height .3s}.priority-fill{transition:width .3s}}

.classification-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:24px;margin-bottom:24px}.type-content{display:flex;flex-direction:column;align-items:center;padding:24px 0 4px;gap:24px}.type-donut{width:174px;height:174px}.type-donut .donut-core{width:135px;height:135px}.type-legend{list-style:none;padding:0;margin:0;width:100%;max-width:300px}.type-legend li{display:grid;grid-template-columns:9px 1fr auto 62px;gap:10px;align-items:center;margin:15px 0;font-size:14px;color:#526a7f}.type-legend i{width:9px;height:9px;border-radius:50%}.type-legend b{color:#253d54}.type-legend small{font-size:13px;color:#7a8a98;text-align:right}.category-bars{margin-top:22px}.category-row{margin:15px 0}.category-row-heading{display:grid;grid-template-columns:minmax(0,1fr) auto 60px;gap:12px;align-items:baseline;font-size:14px;color:#526a7f}.category-row-heading span{overflow-wrap:anywhere;line-height:1.5}.category-row-heading b{color:#253d54;font-weight:600}.category-row-heading small{font-size:13px;text-align:right;color:#7a8a98}.category-track{height:7px;border-radius:5px;background:#eef3f8;margin-top:7px}.category-fill{height:7px;border-radius:5px;background:#347df1}.category-other{background:#9baabc}.empty-note{font-size:14px;line-height:1.6;color:#7a8a98;text-align:center;padding:10px 0}.classification-grid td:first-child{overflow-wrap:anywhere}.classification-grid .table-wrap table{table-layout:fixed}.classification-grid th:first-child{width:60%}@media(max-width:950px){.classification-grid{grid-template-columns:1fr}.type-content{flex-direction:row;justify-content:space-around;flex-wrap:wrap;gap:20px}.type-legend{max-width:250px}}@media(max-width:600px){.classification-grid{gap:24px}.type-legend{max-width:300px}.category-row-heading{font-size:13px;gap:8px;grid-template-columns:minmax(0,1fr) auto 50px}.category-row-heading small{font-size:12px}.classification-grid th:first-child{width:54%}}

/* Administration: same portal, server-enforced role and a client selector. */
.admin-nav{display:flex;flex-direction:column;min-height:0;flex:1}.is-admin .sidebar-caption{margin:38px 10px 16px}.is-admin .side-bottom{flex-shrink:0;padding-top:16px}.is-admin .side-bottom p{display:none}.nav-manage{display:flex;justify-content:space-between;align-items:center;gap:8px;border:1px solid #365167;border-radius:7px;background:#19374e;color:#deebf4;padding:13px 10px;font-size:14px;text-align:left}.nav-manage span{font-size:12px;color:#a8c4d4}.nav-manage.selected{border-color:#36bbab;background:#1f494f;color:white}.client-picker{display:flex;flex-direction:column;min-height:0;margin:24px 0 16px;overflow:auto}.client-picker summary{font-size:12px;color:#b4cad9;cursor:pointer;padding:4px 0 12px;letter-spacing:.25px}.client-picker input{width:100%;min-width:0;background:#17364e;border:1px solid #36546a;border-radius:6px;color:white;padding:9px;font-size:12px;margin-bottom:12px}.client-picker input::placeholder{color:#a1b7c8}.client-list{display:flex;flex-direction:column;gap:5px}.client-nav-button{width:100%;border:0;border-left:3px solid transparent;background:transparent;border-radius:6px;color:#c3d5e1;text-align:left;padding:10px;font-size:13px;line-height:1.5;overflow-wrap:anywhere}.client-nav-button small{display:block;color:#93adbf;font-size:11px;margin-top:2px}.client-nav-button:hover{background:#1c3b53}.client-nav-button.selected{background:#214752;border-left-color:#36d1b8;color:white}.client-nav-button.selected small{color:#b0d8d6}.client-nav-button:disabled{cursor:default;opacity:.5}.nav-empty{color:#a1b7c8;font-size:13px}.admin-grid{display:grid;grid-template-columns:minmax(270px,.8fr) minmax(0,1.2fr);gap:24px;align-items:start}.client-form label{display:block;font-size:14px;font-weight:600;color:#36516a;margin:21px 0 8px}.client-form input{width:100%;min-width:0;border:1px solid #d7e1e9;border-radius:7px;padding:11px;background:white;color:#152c44}.client-form small{display:block;line-height:1.5;color:#748495;font-size:12px;margin:7px 0 0}.managed-clients{margin-top:14px}.managed-client{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:19px 0;border-bottom:1px solid #e6ecf2}.managed-client:last-child{border-bottom:0}.managed-client>div{min-width:0;overflow-wrap:anywhere}.managed-client strong{font-size:15px;color:#29445b}.managed-client small{display:block;color:#728398;font-size:12px;margin-top:7px;line-height:1.6}.managed-client button{font-size:12px;padding:9px 11px}.success-banner{padding:17px;border:1px solid #b9dfd3;background:#edfaf5;color:#246f57;border-radius:8px;margin-bottom:24px;line-height:1.6;font-size:14px}.is-admin #page-title{overflow-wrap:anywhere}.is-admin .account{min-width:0}.is-admin #client-name{overflow-wrap:anywhere}@media(max-width:1200px){.admin-grid{grid-template-columns:1fr}.managed-client{gap:12px}}@media(max-width:950px){.is-admin.layout,.is-admin .layout{flex-direction:column}.is-admin .sidebar{display:flex;position:static;width:100%;padding:18px 25px;gap:14px}.is-admin .sidebar>.brand,.is-admin .sidebar-caption,.is-admin .side-bottom{display:none}.is-admin .admin-nav{display:block}.is-admin .nav-manage{width:100%}.is-admin .client-picker{margin:14px 0 0;max-height:320px}.is-admin .client-picker summary{padding-bottom:4px}.is-admin .client-picker input{margin-top:10px}.is-admin .main-shell{margin-left:0;width:100%}}@media(max-width:600px){.is-admin .sidebar{padding:14px 16px}.managed-client{flex-direction:column;align-items:stretch;gap:10px}.managed-client button{align-self:flex-start}.admin-grid{gap:20px}.is-admin .account{gap:8px}.is-admin .account .small-badge{font-size:10px;padding:4px 6px}.is-admin .account .text-button{margin-left:0}.is-admin #client-name{font-size:13px}}
