:root{--ink:#1f2937;--muted:#4b5563;--bg:#f5f7fa;--card:#fff;--line:#c7d0da;--accent:#1e4e79;--accent-soft:#eaf1f8;--on-accent:#fff;--ok:#166534;--ok-bg:#e6f4ea;--concern:#9b1c1c;--concern-bg:#fdecec;--caution:#7a4a05;--caution-bg:#fdf3d9;--radius:10px;color:var(--ink);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:16px;line-height:1.5}*{box-sizing:border-box}body{margin:0;overflow-x:hidden}h1{margin:0 0 1rem;font-size:1.7rem}h2{margin:0 0 .25rem;font-size:1.4rem}h3{color:var(--accent);margin:0 0 .5rem;font-size:1.05rem}p{margin:0 0 .75rem}.muted{color:var(--muted);font-size:.92rem}.sr{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.skip{position:absolute;left:-999px}.skip:focus{z-index:10;background:#fff;padding:.5rem;top:8px;left:8px}:focus-visible{outline-offset:2px;outline:3px solid #0b6bcb}.app{grid-template-columns:220px minmax(0,1fr);min-height:100vh;display:grid}.side{background:var(--accent);color:var(--on-accent);flex-direction:column;gap:1rem;height:100vh;padding:1.25rem 1rem;display:flex;position:sticky;top:0}.brand{align-items:center;gap:.6rem;font-size:1.15rem;font-weight:700;display:flex}.mark{color:var(--accent);background:#fff;border-radius:8px;padding:.15rem .4rem;font-size:.9rem;font-weight:800}.nav{flex-direction:column;gap:.25rem;display:flex}.nav-item{color:var(--on-accent);text-align:left;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:8px;padding:.6rem .75rem}.nav-item:hover{background:#ffffff24}.nav-item.on{color:var(--accent);background:#fff;font-weight:600}.side-foot{color:#dbe7f3;margin-top:auto;font-size:.82rem}.menu-btn{display:none}.main{width:100%;max-width:1000px;padding:1.75rem clamp(1rem,3vw,2.5rem) 4rem}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:1rem;padding:1.1rem 1.25rem}.btn{background:var(--accent);color:var(--on-accent);border:1px solid var(--accent);font:inherit;cursor:pointer;border-radius:8px;padding:.55rem 1rem;font-weight:600}.btn:hover{filter:brightness(1.12)}.btn.ghost{color:var(--accent);background:#fff}.btn.ghost:hover{background:var(--accent-soft);filter:none}.btn.danger{background:var(--concern);border-color:var(--concern)}.icon-btn,.link{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:0;padding:.25rem;text-decoration:underline}.link-title{font:inherit;color:var(--accent);cursor:pointer;text-align:left;background:0 0;border:0;padding:0;font-size:1.1rem;font-weight:700}.link-title:hover{text-decoration:underline}.field{flex-direction:column;gap:.2rem;margin-bottom:.9rem;display:flex}.field>span{font-size:.95rem;font-weight:600}.field>em{color:var(--muted);font-size:.88rem;font-style:normal}.field.small{max-width:220px}.field.grow{flex:1;min-width:160px}input,textarea,select{font:inherit;color:var(--ink);background:#fff;border:1px solid #8794a3;border-radius:6px;width:100%;padding:.5rem .6rem}textarea{resize:vertical}input[type=checkbox]{width:auto;margin-right:.4rem}.row{flex-wrap:wrap;align-items:flex-end;gap:1rem;display:flex}.grid2{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:0 1.25rem;display:grid}.choice{border:0;margin:0 0 1rem;padding:0}.choice legend{margin-bottom:.4rem;padding:0;font-weight:600}.chips{flex-wrap:wrap;gap:.5rem;display:flex}.chips.tight{gap:.4rem;margin-top:.25rem}.chip{color:var(--ink);font:inherit;cursor:pointer;background:#fff;border:1px solid #8794a3;border-radius:999px;padding:.4rem .9rem;font-size:.92rem}.chip:hover{background:var(--accent-soft)}.chip.on{background:var(--accent);border-color:var(--accent);color:#fff}.chip.on.st-ok{background:var(--ok);border-color:var(--ok)}.chip.on.st-concern{background:var(--concern);border-color:var(--concern)}.chip.on.st-na{background:#4b5563;border-color:#4b5563}.stage-head{margin-bottom:1rem}.stage-head .ask{margin:.25rem 0;font-size:1.05rem}.eyebrow{text-transform:uppercase;letter-spacing:.08em;color:var(--accent);font-size:.78rem;font-weight:700}.proj-head{flex-direction:column;gap:.4rem;margin-bottom:1rem;display:flex}.title-input{background:0 0;border:1px solid #0000;padding:.25rem .4rem;font-size:1.5rem;font-weight:700}.title-input:hover,.title-input:focus{background:#fff;border-color:#8794a3}.source-input{font-size:.92rem}.tabs{border-bottom:2px solid var(--line);gap:.25rem;margin-bottom:1.25rem;display:flex;overflow-x:auto}.tab{font:inherit;cursor:pointer;white-space:nowrap;color:var(--muted);background:0 0;border:0;border-bottom:3px solid #0000;margin-bottom:-2px;padding:.6rem .85rem;font-weight:600}.tab:hover{color:var(--accent)}.tab.on{color:var(--accent);border-bottom-color:var(--accent)}.tick{color:var(--ok)}.proj-list{margin:0 0 1rem;padding:0;list-style:none}.proj{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.result{background:var(--accent-soft);border-radius:var(--radius);border:1px solid #b8cde0;margin-top:1rem;padding:1rem 1.15rem}.result-label{text-transform:uppercase;letter-spacing:.07em;color:var(--accent);margin:.5rem 0 .2rem;font-size:.78rem;font-weight:700}.result-main{margin-bottom:.4rem;font-size:1.25rem;font-weight:700}.stats{flex-wrap:wrap;gap:2rem;margin-bottom:.75rem;display:flex}.big{color:var(--accent);font-size:2rem;font-weight:800;line-height:1.1}.big.sm{padding-top:.55rem;font-size:1.25rem}.dl{margin:0}.dl dt{margin-top:.5rem;font-weight:700}.dl dd{margin:0}.note{border-left:4px solid var(--accent);background:#fff;border-radius:4px;padding:.6rem .8rem;font-size:.92rem}.note.warn{border-left-color:var(--caution);background:var(--caution-bg)}.error{color:var(--concern);background:var(--concern-bg);border-radius:6px;padding:.5rem .75rem;font-weight:600}ul.plain,ol.plain{margin:0 0 .75rem 1.1rem;padding:0}ul.plain li,ol.plain li{margin-bottom:.35rem}.flags{gap:.4rem;margin:0 0 .75rem;padding:0;list-style:none;display:grid}.flag{border:1px solid;border-radius:6px;padding:.55rem .75rem;font-size:.94rem}.flag.concern{background:var(--concern-bg);color:var(--concern);border-color:#e8b4b4}.flag.caution{background:var(--caution-bg);color:var(--caution);border-color:#e6cf94}.flag.ok{background:var(--ok-bg);color:var(--ok);border-color:#a9d5b5}.forest{background:#fff;border-radius:6px;width:100%;height:auto;margin:.5rem 0}.ft{fill:var(--ink);font-size:11px}.ft.muted-t{fill:var(--muted)}.ft.bold{font-weight:700}details{margin:.5rem 0}summary{cursor:pointer;color:var(--accent);font-weight:600}.scroll{max-width:100%;margin-bottom:.75rem;position:relative;overflow-x:auto}.tbl{border-collapse:collapse;width:100%;font-size:.92rem}.tbl th,.tbl td{border:1px solid var(--line);text-align:left;vertical-align:top;padding:.35rem .45rem}.tbl thead th{background:var(--accent);color:#fff}.tbl tbody th{background:var(--accent-soft);width:130px;font-weight:600}.tbl td input,.tbl td select,.tbl td textarea{min-width:110px}.tbl .w70{min-width:70px}.tbl .w80{min-width:80px}.cmp td{min-width:220px}.checklist{margin:0;padding:0;list-style:none}.checklist li{border-bottom:1px solid #e4e9ef;padding:.35rem 0}.checklist label{cursor:pointer;align-items:flex-start;display:flex}.checklist input{flex:none;margin-top:.3rem}.summary-bar{flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.pill{border-radius:999px;padding:.2rem .65rem;font-size:.85rem;font-weight:600}.pill.ok{background:var(--ok-bg);color:var(--ok)}.pill.concern{background:var(--concern-bg);color:var(--concern)}.pill.na{color:#374151;background:#e8ebef}.audit-item{border-bottom:1px solid #e4e9ef;padding:.7rem 0}.audit-item:last-child{border-bottom:0}.audit-q{margin-bottom:.3rem;font-weight:600}.audit-detail{flex-wrap:wrap;gap:.75rem;margin-top:.5rem;display:flex}.audit-detail .field{margin-bottom:0}.report{border:1px solid var(--line);border-radius:var(--radius);background:#fff;padding:1.5rem}.rep-actions{align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.rep-sec{break-inside:avoid;margin-bottom:1.25rem}.drop{border-style:dashed;border-width:2px}.drop.over{background:var(--accent-soft);border-color:var(--accent)}.row.between{justify-content:space-between;align-items:center}.tag.auto{background:var(--accent-soft);color:var(--accent);margin-left:.6rem}.tag.tip{background:var(--accent-soft);color:var(--accent)}.step.tip{opacity:.95}tr.dim td{color:var(--muted)}.banner{background:var(--accent-soft);border-radius:var(--radius);border:1px solid #b8cde0;flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1.25rem;padding:.6rem .9rem;display:flex}.banner-text{flex:1;min-width:200px}.banner-label{text-transform:uppercase;letter-spacing:.07em;color:var(--accent);margin-right:.4rem;font-size:.75rem;font-weight:700}.banner-label.ok{color:var(--ok)}.banner-actions{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.btn.small{padding:.35rem .75rem;font-size:.9rem}.badge{background:var(--accent);color:#fff;text-align:center;border-radius:999px;min-width:1.3rem;margin-left:.4rem;padding:0 .4rem;font-size:.78rem;display:inline-block}.tab.on .badge{background:var(--accent)}.next-card{border-left:5px solid var(--accent)}.next-card h3{color:var(--ink);font-size:1.2rem}.steps{margin:0;padding:0;list-style:none}.step{border-bottom:1px solid #e4e9ef;padding:.75rem 0}.step:last-child{border-bottom:0}.step-head{flex-wrap:wrap;align-items:baseline;gap:.6rem;display:flex}.step-title{font-weight:700}.step-text{margin:.25rem 0}.tag{text-transform:uppercase;letter-spacing:.05em;border-radius:999px;padding:.1rem .5rem;font-size:.72rem;font-weight:700}.tag.todo{color:#374151;background:#e8ebef}.tag.concern{background:var(--concern-bg);color:var(--concern)}.tag.caution,.pill.caution{background:var(--caution-bg);color:var(--caution)}@media (width<=760px){.app{grid-template-columns:minmax(0,1fr)}.side{flex-flow:wrap;justify-content:space-between;align-items:center;height:auto;padding:.75rem 1rem;position:static}.menu-btn{color:var(--accent);font:inherit;background:#fff;border:0;border-radius:8px;padding:.45rem .9rem;font-weight:600;display:block}.nav{width:100%;display:none}.nav.open{display:flex}.side-foot{display:none}.main{padding:1rem 1rem 3rem}h1{font-size:1.4rem}.field.small{max-width:none}.stats{gap:1.25rem}.report{padding:1rem}}@media print{.side,.tabs,.no-print,.skip{display:none!important}.app{display:block}.main{max-width:none;padding:0}.panel{padding:0}body{background:#fff}.report{border:0;padding:0}}
