:root{--bg:#f7f8fa;--surface:#fff;--ink:#302824;--muted:#6c625d;--brand:#593127;--rail:#452c25;--accent:#a34b25;--line:#e6e1dd;--green:#21654d;--red:#a43037;--amber:#875b13;--space:24px;--radius:14px;color-scheme:light;font-family:"Avenir Next",Avenir,"Segoe UI",system-ui,sans-serif;color:var(--ink);background:var(--bg);font-size:15px;line-height:1.55;font-variant-numeric:tabular-nums;scrollbar-color:#a39a95 #f7f8fa}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit;caret-color:var(--accent)}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer;border:1px solid var(--line);background:white;color:var(--ink);border-radius:8px;padding:10px 16px;font-weight:600;min-height:44px}button:hover{background:#f0eeec}button:disabled{opacity:.6;cursor:wait}button.primary{background:var(--brand);border-color:var(--brand);color:white}button.primary:hover{background:var(--rail)}button.danger{background:#a43037;color:white;border-color:#a43037}button.link{border:0;padding:3px 0;background:transparent;color:var(--accent);min-height:36px}button.small{padding:6px 10px;min-height:36px;font-size:13px}a{color:var(--accent);text-underline-offset:4px}::selection{background:#eaccba;color:#302824}:focus-visible{outline:3px solid #c45c24;outline-offset:3px}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(27px,3vw,36px);line-height:1.15;letter-spacing:-.025em;margin-bottom:10px}h2{font-size:21px;line-height:1.3;letter-spacing:-.015em;margin-bottom:12px}h3{font-size:17px;margin-bottom:10px}p{max-width:75ch}small,.muted{color:var(--muted)}small{font-size:12px}label{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:14px}input,select,textarea{background:white;border:1px solid #bcb4b0;border-radius:7px;padding:10px 12px;width:100%;min-height:44px;color:var(--ink)}input::placeholder,textarea::placeholder{color:#756a64}textarea{resize:vertical;min-height:100px;line-height:1.55;font-weight:400}input[type=checkbox]{width:19px;min-height:19px;margin:0;accent-color:var(--brand)}label.check{flex-direction:row;align-items:flex-start;gap:10px;font-weight:500}.actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.full{grid-column:1/-1}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:26px;margin-bottom:24px}.error{color:#a43037;font-weight:600;white-space:pre-wrap}.hint{color:var(--muted);font-size:13px;margin-top:7px}.notice{background:#f8eee5;padding:14px 18px;border-radius:8px;margin:16px 0;font-size:14px}.skip{position:fixed;left:10px;top:-60px;z-index:30;background:white;padding:12px}.skip:focus{top:10px}.shell{display:grid;grid-template-columns:228px minmax(0,1fr);min-height:100vh}.sidebar{background:var(--rail);color:#fff;position:sticky;top:0;height:100vh;padding:26px 18px;display:flex;flex-direction:column;gap:28px}.brand{color:inherit;text-decoration:none;display:flex;align-items:center;gap:12px}.brand strong{font-size:18px;letter-spacing:-.03em}.brand img{width:70px;height:48px;object-fit:cover;object-position:center 48%;background:white;border-radius:7px}.sidebar nav{display:flex;flex-direction:column;gap:5px}.sidebar nav button{color:#e9dcd5;text-align:left;border:0;background:transparent;font-weight:500;display:flex;gap:12px;align-items:center;padding:11px 12px}.sidebar nav button:hover{background:#604035}.sidebar nav button.selected{background:#fff;color:var(--brand)}.icon{width:20px;height:20px;flex:none;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.sidebar footer{margin-top:auto;font-size:13px;color:#e9dcd5}.sidebar footer button{background:transparent;border-color:#927164;color:white;margin-top:10px}.sidebar footer a{color:#e9dcd5}.work{min-width:0}.topbar{padding:18px 38px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);background:white;font-size:13px;color:var(--muted)}main.content{max-width:1480px;padding:36px 38px;margin:auto}.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:24px}.page-head p{color:var(--muted);margin:0}.filters{display:flex;align-items:end;gap:14px;flex-wrap:wrap;margin:22px 0}.filters label{min-width:140px;flex:1}.filters label input,.filters select{font-weight:400}.metrics{display:flex;gap:0;margin:20px 0 26px;flex-wrap:wrap;border-block:1px solid var(--line)}.metric{flex:1;padding:18px 24px 18px 0;min-width:130px}.metric strong{display:block;font-size:28px;font-weight:650;letter-spacing:-.025em}.metric span{font-size:13px;color:var(--muted)}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(230px,1fr);gap:24px}.chart{width:100%;height:230px;display:block;overflow:visible}.chart text{font:12px "Avenir Next",sans-serif;fill:#6c625d}.chart .axis{stroke:#e6e1dd;stroke-width:1}.chart .series{stroke:#a34b25;stroke-width:2.5;fill:none}.chart circle{fill:#593127;stroke:white;stroke-width:2}.chart-wrap{min-width:0}.legend{display:flex;gap:14px;flex-wrap:wrap;margin:10px 0 0;font-size:13px}.badge{display:inline-flex;align-items:center;padding:3px 9px;border-radius:5px;font-size:12px;font-weight:650;background:#f0edeb;color:#645953;white-space:nowrap}.badge.C{color:#21654d;background:#e8f3ed}.badge.NC{color:#a43037;background:#fbe9e9}.badge.NA{color:#5e626b;background:#eef0f4}.badge.NV{color:#875b13;background:#fbf1d9}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;text-align:left;font-size:14px}th{font-weight:600;font-size:12px;color:var(--muted);background:#fafafa}td,th{padding:13px 12px;border-bottom:1px solid var(--line);vertical-align:middle}td:first-child,th:first-child{padding-left:0}td:last-child,th:last-child{padding-right:0}tr:last-child td{border-bottom:0}td strong{display:block}td small{display:block}.table-wrap .empty{min-width:0}.empty{padding:32px 10px;color:var(--muted);text-align:center}.empty h3{color:var(--ink)}.audit-layout{display:grid;grid-template-columns:205px minmax(0,1fr);gap:24px;align-items:start}.modules{position:sticky;top:20px;display:flex;flex-direction:column;gap:7px}.modules button{display:flex;gap:10px;text-align:left;align-items:center;font-size:13px;background:transparent;padding:10px;line-height:1.3}.modules button.selected{background:var(--brand);color:white;border-color:var(--brand)}.module-letter{display:grid;place-items:center;width:26px;height:26px;flex:none;border:1px solid currentColor;border-radius:6px;font-weight:700}.modules small{color:inherit;opacity:.85}.criteria{padding:22px 0;border-bottom:1px solid var(--line)}.criteria:first-of-type{padding-top:0}.criteria:last-of-type{border-bottom:0}.criterion-head{display:flex;align-items:flex-start;gap:12px}.criterion-head .code{color:var(--accent);font-size:13px;font-weight:700;min-width:35px;padding-top:3px}.criterion-head h3{font-size:16px;line-height:1.5;max-width:75ch}.criteria .guidance{font-size:13px;color:var(--muted);margin:0 0 16px 47px}.results{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.results button{font-size:13px;font-weight:600;padding:8px 11px}.results button[aria-pressed=true]{background:var(--brand);color:white;border-color:var(--brand)}.results button.NC[aria-pressed=true]{background:var(--red);border-color:var(--red)}.results button.C[aria-pressed=true]{background:var(--green);border-color:var(--green)}.results button.NV[aria-pressed=true]{background:var(--amber);border-color:var(--amber)}.criteria .details-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.criteria textarea{min-height:78px}.criteria .risk-fields{margin:18px 0;padding:18px;background:#fff7f4;border-radius:10px}.photo-grid{display:flex;flex-wrap:wrap;gap:12px;margin-top:14px}.photo{width:150px}.photo img{width:150px;height:110px;object-fit:cover;border-radius:8px}.photo p{font-size:12px;overflow-wrap:anywhere;margin:4px 0}.savebar{position:sticky;bottom:0;border-top:1px solid var(--line);background:#fff;padding:15px 0;display:flex;justify-content:space-between;align-items:center;gap:12px;z-index:4;margin-top:20px}.savebar small{display:block}.module-progress{display:flex;gap:4px;margin-bottom:20px}.module-progress span{height:6px;flex:1;border-radius:3px;background:#e6e1dd}.module-progress span.done{background:var(--green)}.scope{display:grid;grid-template-columns:1fr 1fr;gap:10px}.scope label{padding:10px;background:#f7f8fa;border-radius:6px}.company-list{display:grid;grid-template-columns:1fr 1fr;gap:20px}.company-list article{padding:0 0 20px;border-bottom:1px solid var(--line)}.login-page{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;background:white}.login-intro{background:var(--rail);color:#fff;padding:65px;display:flex;flex-direction:column;justify-content:space-between}.login-intro .brand img{width:110px;height:68px}.login-intro h1{font-size:clamp(36px,4vw,54px);max-width:12ch;line-height:1.08;margin:60px 0 20px}.login-intro p{color:#e2d4cc;max-width:39ch;font-size:17px}.login-steps{display:flex;gap:20px;flex-wrap:wrap;margin-top:35px}.login-steps span{font-size:13px;color:#e2d4cc}.login-form{display:flex;align-items:center;justify-content:center;padding:40px}.login-form form{width:100%;max-width:390px}.login-form label{margin:20px 0}.login-form button{width:100%;margin:8px 0 16px}.login-form h2{font-size:28px}.inline-form{margin-top:24px;border-top:1px solid var(--line);padding-top:24px}details summary{cursor:pointer;font-weight:600;padding:12px 0}details p{font-size:14px}#notice{position:fixed;bottom:18px;right:20px;max-width:450px;background:var(--rail);color:white;border-radius:9px;padding:0;z-index:40;box-shadow:0 7px 24px #30282426}#notice:not(:empty){padding:14px 20px}dialog{border:1px solid var(--line);border-radius:14px;padding:30px;max-width:470px;width:calc(100% - 32px);background:white;color:var(--ink)}dialog::backdrop{background:#21151180}dialog p{overflow-wrap:anywhere}.matrix th{white-space:nowrap}.matrix select{min-width:65px;padding:6px;font-size:13px}.history-list{max-height:230px;overflow:auto;font-size:13px}.history-list li{margin-bottom:8px}.wide-copy{max-width:80ch}form[aria-busy=true]{opacity:.7}
@media(max-width:1150px){.shell{grid-template-columns:195px minmax(0,1fr)}.sidebar{padding:24px 13px}.brand{gap:8px}.brand strong{font-size:16px}.brand img{width:55px;height:42px}main.content{padding:28px 24px}.topbar{padding:16px 24px}.audit-layout{grid-template-columns:160px minmax(0,1fr)}.dashboard-grid{grid-template-columns:1fr}.metrics .metric{min-width:110px}.login-intro{padding:45px}}
@media(max-width:760px){.shell{display:block}.sidebar{position:static;height:auto;padding:15px 16px;gap:12px}.sidebar .brand{justify-content:center}.sidebar nav{flex-direction:row;overflow:auto;gap:4px}.sidebar nav button{white-space:nowrap;padding:9px 12px;font-size:13px}.sidebar nav .icon{display:none}.sidebar footer{display:none}.topbar{padding:12px 18px}.topbar .muted{display:none}main.content{padding:24px 16px}.page-head{flex-wrap:wrap;margin-bottom:20px}.panel{padding:20px 16px;margin-bottom:18px}.filters{gap:10px}.filters label{min-width:130px}.form-grid,.company-list,.scope{grid-template-columns:1fr}.full{grid-column:auto}.audit-layout{display:block}.modules{position:static;flex-direction:row;overflow:auto;margin-bottom:20px}.modules button{min-width:170px}.module-progress{margin-top:15px}.criteria .details-grid{grid-template-columns:1fr}.criteria .guidance{margin-left:0}.criterion-head{gap:7px}.criterion-head h3{font-size:15px}.savebar{align-items:flex-start;flex-wrap:wrap}.savebar .actions{width:100%}.metric{min-width:48%;padding:14px 0}.metric strong{font-size:25px}.login-page{display:block}.login-intro{padding:28px}.login-intro h1{font-size:32px;max-width:18ch;margin:30px 0 14px}.login-intro p{font-size:15px;margin:0}.login-steps{display:none}.login-form{padding:32px 24px}.chart{height:200px}.table-wrap table{min-width:650px}#notice{right:12px;left:12px;bottom:12px}.results{gap:6px}.results button{font-size:12px;padding:8px 9px}.matrix select{min-width:62px}}
[hidden]{display:none!important}
.login-intro small{color:#e2d4cc}
.mobile-module{display:none}
@media(max-width:760px){.mobile-module{display:block;position:sticky;top:0;background:var(--bg);padding:8px 0 10px;z-index:5}.mobile-module label{font-size:12px}.mobile-module select{font-size:14px}.modules{display:none}.sidebar nav{border-bottom:1px solid #927164;scrollbar-width:thin;scrollbar-color:#b79583 #452c25}.sidebar nav button{flex-shrink:0}.chart-wrap .history-choice{max-width:100%;margin:14px 0}.topbar{flex-wrap:wrap;gap:8px}}
.series-scope{overflow-wrap:anywhere}
.collaboration{margin:20px 0;padding:18px 0;border-block:1px solid var(--line)}.collaboration h2{font-size:18px}.collaboration p{font-size:14px;margin-bottom:10px}.collaboration-status{display:flex;gap:15px;align-items:center;justify-content:space-between;margin-top:10px}.collaboration-status p{margin:0;color:var(--muted);font-size:13px}.work-picker fieldset{border:1px solid var(--line);border-radius:8px;padding:14px}.work-picker legend{font-size:13px}.work-modules{display:grid;grid-template-columns:1fr 1fr;gap:12px}.conflicts{margin-top:20px}.conflicts article{border:1px solid var(--line);padding:18px;border-radius:10px;margin-bottom:16px}.conflict-versions{display:grid;grid-template-columns:1fr 1fr;gap:25px}.conflict-versions p{white-space:pre-wrap;overflow-wrap:anywhere}.conflict-versions h4{margin:5px 0 12px;font-size:14px}.pie-layout{display:flex;flex-wrap:wrap;align-items:center;gap:18px}.pie-chart{width:min(100%,210px);height:auto;flex:0 0 180px}.pie-legend{flex:1;min-width:230px;font-size:13px}.pie-legend caption{text-align:left;font-weight:600;padding:8px 0}.pie-legend td,.pie-legend th{padding:8px 6px}.pie-legend td:nth-child(n+2){text-align:right}.pie-key{display:inline-block;width:11px;height:11px;border-radius:2px;margin-right:7px}.pie-key.C{background:var(--green)}.pie-key.NC{background:var(--red)}.pie-key.NA{background:#5e626b}.pie-key.NV{background:var(--amber)}.pie-key.P{background:var(--line)}
@media(max-width:760px){.collaboration-status{align-items:flex-start;flex-direction:column}.work-modules,.conflict-versions{grid-template-columns:1fr}.pie-layout{justify-content:center}.pie-legend{min-width:0;width:100%;flex-basis:100%}.work-picker label{font-size:14px}.collaboration input,.collaboration select{font-size:16px}}
@media(max-width:760px){.metrics .metric{min-width:45%}.chart{height:auto;aspect-ratio:600/230}.chart text{font-size:22px}}
@media(prefers-reduced-motion:no-preference){button{transition:background-color .15s ease-out}.modules button.selected{transition:background-color .2s ease-out}}
