:root{--bg: #f6f7f9;--surface: #ffffff;--border: #e2e5ea;--text: #1a1d23;--muted: #5f6672;--accent: #2f6f4f;--accent-soft: #eaf3ee;--danger: #a3342b;--danger-soft: #fbecea;--warn: #8a5a12;--warn-soft: #fdf3e2;--info: #1f5c8b;--info-soft: #e9f2f9;--radius: 10px;--shadow: 0 1px 2px rgba(16, 22, 32, .06), 0 4px 12px rgba(16, 22, 32, .04)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}h1,h2,h3{margin:0;font-weight:650;letter-spacing:-.01em}h1{font-size:26px}h2{font-size:20px}h3{font-size:17px}p{margin:0}.login-page{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{width:100%;max-width:400px;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow);padding:28px}.brand{text-align:center;margin-bottom:22px}.brand-name{font-size:24px;font-weight:700;letter-spacing:.04em}.brand-tagline{color:var(--muted);font-size:14px;margin-top:4px}.mode-switch{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:4px;background:var(--bg);border-radius:var(--radius);margin-bottom:20px}.mode-switch button{padding:9px 8px;border:0;border-radius:7px;background:transparent;color:var(--muted);font:inherit;font-size:14px;cursor:pointer}.mode-switch button[aria-pressed=true]{background:var(--surface);color:var(--text);font-weight:600;box-shadow:var(--shadow)}label{display:block;font-size:14px;color:var(--muted);margin-bottom:6px}input,select,textarea{width:100%;padding:11px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);font:inherit}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:-1px;border-color:var(--accent)}.field{margin-bottom:14px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.code-input{font-size:24px;letter-spacing:.4em;text-align:center}button{font:inherit;cursor:pointer}.btn{padding:11px 16px;border:1px solid transparent;border-radius:var(--radius);background:var(--accent);color:#fff;font-weight:600}.btn:disabled{opacity:.5;cursor:default}.btn-block{width:100%}.btn-ghost{background:transparent;color:var(--text);border-color:var(--border);font-weight:500}.btn-link{background:none;border:0;padding:0;color:var(--accent);font-size:14px;text-decoration:underline}.btn-sm{padding:6px 11px;font-size:14px}.btn-danger{background:var(--danger)}.shell{min-height:100vh;display:flex;flex-direction:column}.topbar{background:var(--surface);border-bottom:1px solid var(--border);padding:12px 20px;display:flex;align-items:center;gap:16px;flex-wrap:wrap}.topbar .brand-name{font-size:18px}.topbar-spacer{flex:1}.topbar-who{font-size:14px;color:var(--muted);text-align:right}.topbar-who strong{display:block;color:var(--text);font-weight:600}.nav{display:flex;gap:4px;padding:0 20px;background:var(--surface);border-bottom:1px solid var(--border);overflow-x:auto}.nav button{padding:12px 14px;border:0;border-bottom:2px solid transparent;background:none;color:var(--muted);white-space:nowrap}.nav button[aria-current=true]{color:var(--text);font-weight:600;border-bottom-color:var(--accent)}.content{flex:1;padding:24px 20px 48px;max-width:980px;width:100%;margin:0 auto}.section-head{display:flex;align-items:baseline;gap:12px;margin-bottom:18px;flex-wrap:wrap}.section-head p{color:var(--muted);font-size:14px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow)}.card+.card{margin-top:12px}.card-head{display:flex;align-items:center;gap:10px;margin-bottom:8px;flex-wrap:wrap}.card-title{font-weight:600}.card-meta{color:var(--muted);font-size:14px}.card-actions{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}.grid{display:grid;gap:12px}.grid-2{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.tag{display:inline-block;padding:3px 9px;border-radius:100px;font-size:13px;font-weight:600}.tone-new{background:var(--info-soft);color:var(--info)}.tone-ok{background:var(--accent-soft);color:var(--accent)}.tone-active{background:var(--warn-soft);color:var(--warn)}.tone-done{background:var(--accent-soft);color:var(--accent)}.tone-off{background:var(--danger-soft);color:var(--danger)}.tag-muted{background:var(--bg);color:var(--muted)}.notice{padding:11px 14px;border-radius:var(--radius);font-size:14px;margin-bottom:14px}.notice-error{background:var(--danger-soft);color:var(--danger)}.notice-ok{background:var(--accent-soft);color:var(--accent)}.notice-info{background:var(--info-soft);color:var(--info)}.empty{text-align:center;padding:40px 20px;color:var(--muted)}.loading{padding:24px;color:var(--muted)}.muted{color:var(--muted)}.small{font-size:14px}.stack{display:grid;gap:6px}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.timeline{margin-top:10px;padding-left:14px;border-left:2px solid var(--border)}.timeline li{list-style:none;font-size:14px;color:var(--muted);padding:2px 0}.token-box{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:10px;word-break:break-all}.public-page{min-height:100vh;display:flex;flex-direction:column}.public-head{background:var(--surface);border-bottom:1px solid var(--border);padding:18px 20px}.public-head .brand{margin-bottom:0}.public-body{flex:1;width:100%;max-width:620px;margin:0 auto;padding:24px 20px 56px}.lede{font-size:17px;color:var(--muted);margin-bottom:22px}.progress{display:flex;gap:6px;list-style:none;margin:0 0 18px;padding:0}.progress li{flex:1;display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--muted)}.progress-dot{display:block;height:4px;border-radius:2px;background:var(--border)}.progress li[data-done=true] .progress-dot{background:var(--accent-soft)}.progress li[aria-current=step] .progress-dot{background:var(--accent)}.progress li[aria-current=step] .progress-title{color:var(--text);font-weight:600}@media(max-width:560px){.progress-title{display:none}}.step-hint{margin:4px 0 18px}.field-label{display:block;font-size:14px;color:var(--muted);margin-bottom:6px}.choice{display:flex;flex-wrap:wrap;gap:8px}.choice button{flex:1 1 auto;min-width:88px;min-height:44px;padding:10px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text)}.choice button:hover{border-color:var(--accent)}.choice button[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:600}.choice button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.public-nav{display:flex;gap:10px;margin-top:16px}.public-nav .btn{flex:1}.consent-note{margin-top:16px}.done-card{text-align:center}.done-card p{color:var(--muted);margin:10px 0 4px}.done-card .card-actions{justify-content:center}.staff-panel{margin-top:14px;padding-top:14px;border-top:1px solid var(--border)}.staff-list{list-style:none;margin:0 0 16px;padding:0}.staff-list li{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:10px 0;border-bottom:1px solid var(--border)}.staff-list li:last-child{border-bottom:0}.staff-list .tag{margin-left:8px}.staff-add{background:var(--bg);border-radius:var(--radius);padding:14px}.index-card{display:flex;align-items:center;gap:18px;border-left:4px solid var(--border)}.index-card.tone-green{border-left-color:var(--accent)}.index-card.tone-yellow{border-left-color:var(--warn)}.index-card.tone-red{border-left-color:var(--danger)}.index-value{font-size:40px;font-weight:700;line-height:1;font-variant-numeric:tabular-nums}.sections-nav{display:flex;gap:8px;overflow-x:auto;padding:4px 0 12px;margin-bottom:4px}.section-chip{flex:0 0 auto;display:flex;flex-direction:column;gap:2px;align-items:flex-start;padding:8px 12px;border:1px solid var(--border);border-left-width:3px;border-radius:var(--radius);background:var(--surface);color:var(--text);text-align:left}.section-chip.tone-green{border-left-color:var(--accent)}.section-chip.tone-yellow{border-left-color:var(--warn)}.section-chip.tone-red{border-left-color:var(--danger)}.section-chip[aria-current=true]{background:var(--accent-soft);border-color:var(--accent)}.section-chip-title{font-size:14px;font-weight:600;white-space:nowrap}.section-chip-count{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.criterion-todo{border-left:3px solid var(--warn-soft)}.criterion-target{font-size:14px;color:var(--muted);margin:10px 0 12px}.status-picker{display:flex;flex-direction:column;gap:2px}.status-option{display:flex;align-items:center;gap:10px;padding:7px 0;margin:0;cursor:pointer;font-size:15px;line-height:1.3;color:var(--status-color)}.status-ok{--status-color: var(--accent)}.status-warn{--status-color: var(--warn)}.status-crit{--status-color: var(--danger)}.status-na{--status-color: var(--muted)}.status-option input{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:20px;height:20px;flex:0 0 auto;margin:0;border:2px solid currentColor;border-radius:50%;background:transparent;cursor:pointer;display:grid;place-content:center}.status-option input:before{content:"";width:10px;height:10px;border-radius:50%;background:currentColor;transform:scale(0);transition:transform 90ms ease-out}.status-option input:checked:before{transform:scale(1)}.status-option:has(input:checked){font-weight:600}.status-option input:focus-visible{outline:2px solid currentColor;outline-offset:2px}.status-option:has(input:disabled){cursor:default;opacity:.55}.status-option input:disabled{cursor:default}@media(prefers-reduced-motion:reduce){.status-option input:before{transition:none}}.criterion-unsaved{border-left:3px solid var(--info)}.section-footer{position:sticky;bottom:0;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:16px;padding:14px 16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.risk-list{list-style:none;margin:10px 0 0;padding:0}.risk-list li{display:flex;flex-direction:column;gap:2px;padding:10px 0;border-bottom:1px solid var(--border)}.risk-list li:last-child{border-bottom:0}.risk-list .tag{margin-right:8px}
