:root{--bg: #f7f8fa;--surface: #ffffff;--surface-sunken: #eef0f4;--surface-quiet: #fafbfc;--border: #dde1e8;--border-strong: #c3c9d4;--text: #11161d;--text-muted: #4d5765;--text-faint: #66707e;--accent: #1c6ce8;--accent-hover: #004eca;--accent-bg: #eaf2fe;--danger: #c2333a;--danger-bg: #fdeced;--danger-border: #f3c9cb;--warn: #8a6410;--warn-bg: #fdf6e7;--warn-border: #ecdcb4;--ok: #1f7a3d;--ok-bg: #eaf5ee;--ok-border: #c3e2cd;--ai: #6b4fbb;--ai-bg: #f3f1fb;--ai-border: #dcd6f0;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-7: 32px;--sp-8: 40px;--radius-sm: 6px;--radius: 10px;--radius-pill: 999px;--tap: 44px;--ease: cubic-bezier(.2, 0, .2, 1);--dur-fast: .12s;--dur: .2s;--shadow-card: 0 1px 2px rgba(17, 22, 29, .05);--shadow-raised: 0 4px 16px rgba(17, 22, 29, .1)}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:Hiragino Sans,Noto Sans JP,system-ui,sans-serif;font-size:14px;line-height:1.65;font-feature-settings:"palt" 1}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px;line-height:1.7;font-feature-settings:normal}a{color:var(--accent);text-underline-offset:2px}a:hover{color:var(--accent-hover)}:where(a,button,input,textarea,select,[tabindex]):focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.app-header{display:flex;align-items:center;gap:var(--sp-5);padding:0 var(--sp-6);min-height:56px;background:#11161d;color:#eef0f4;flex-wrap:wrap}.app-title{font-weight:700;letter-spacing:.02em;white-space:nowrap}.app-header nav{display:flex;gap:var(--sp-1);flex-wrap:wrap}.app-header nav a{display:flex;align-items:center;min-height:36px;padding:0 var(--sp-3);border-radius:var(--radius-sm);color:#99a2b0;text-decoration:none;white-space:nowrap}.app-header nav a:hover{background:#ffffff14;color:#eef0f4}.app-header nav a.active{background:var(--accent);color:#fff;font-weight:600}.header-user{display:flex;align-items:center;gap:var(--sp-3);margin-left:auto;font-size:12px;color:#99a2b0}.link-button{min-height:var(--tap);padding:0 var(--sp-2);background:none;border:none;color:#99a2b0;cursor:pointer;font-size:12px;font-family:inherit;text-decoration:underline}.link-button:hover{color:#eef0f4}main{max-width:940px;margin:0 auto;padding:var(--sp-7) var(--sp-6) var(--sp-8)}.spacer{flex-grow:1}h2{display:flex;align-items:center;gap:var(--sp-2);margin:0;font-size:20px;line-height:1.4;letter-spacing:.01em}h3{margin:0;font-size:15px;line-height:1.5}h4{margin:0;font-size:12px;font-weight:700;color:var(--text-muted);letter-spacing:.02em}.count{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:20px;padding:0 6px;background:var(--surface-sunken);border-radius:var(--radius-pill);font-size:12px;font-weight:700;color:var(--text-muted)}.muted{color:var(--text-muted);font-size:12px}.hint{display:block;margin-top:var(--sp-1);color:var(--text-muted);font-size:12px;font-weight:400;line-height:1.6}.empty{margin:0;padding:var(--sp-4);background:var(--surface-quiet);border:1px dashed var(--border);border-radius:var(--radius);color:var(--text-muted)}.loading{color:var(--text-muted)}.stack+.stack{margin-top:var(--sp-7)}.stack-head{display:flex;flex-direction:column;gap:var(--sp-1);margin-bottom:var(--sp-3)}.stack-desc{margin:0;color:var(--text-muted);font-size:12px}.stack-quiet .card{background:var(--surface-quiet)}.hero-empty{display:flex;flex-direction:column;align-items:flex-start;gap:var(--sp-4);margin-bottom:var(--sp-7);padding:var(--sp-6);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.hero-empty p{margin:0;color:var(--text-muted)}.cards,.rows{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--sp-2)}.card{display:flex;align-items:flex-start;gap:var(--sp-5);padding:var(--sp-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-card)}.card-main{display:flex;flex-direction:column;gap:var(--sp-3);flex-grow:1;min-width:0}.card-side{display:flex;flex-direction:column;align-items:flex-end;gap:var(--sp-2);flex-shrink:0}.card-critical{border-left:3px solid var(--danger);padding-left:calc(var(--sp-4) - 2px)}.card-soon{border-left:3px solid var(--warn);padding-left:calc(var(--sp-4) - 2px)}.card-featured{padding:var(--sp-5)}.card-featured .card-title{font-size:17px}.card-tags{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.card-tags:empty{display:none}.card-title{display:flex;align-items:baseline;gap:var(--sp-2);flex-wrap:wrap}.card-owner{color:var(--text-faint);font-size:12px;text-align:right}.row{display:flex;align-items:center;gap:var(--sp-3);min-height:var(--tap);padding:var(--sp-3) var(--sp-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-wrap:wrap}.badge{display:inline-flex;align-items:center;gap:var(--sp-1);padding:3px var(--sp-2);background:var(--surface-sunken);border-radius:var(--radius-sm);font-size:11.5px;font-weight:700;color:var(--text-muted);white-space:nowrap;line-height:1.5}.badge-quiet{background:transparent;padding-left:0;padding-right:0;font-weight:400;color:var(--text-faint)}.badge-danger{background:var(--danger-bg);color:var(--danger)}.badge-warn{background:var(--warn-bg);color:var(--warn)}.badge-ok{background:var(--ok-bg);color:var(--ok)}.badge-sub{margin-left:var(--sp-1);font-weight:400;opacity:.85}.chip-municipality{padding:2px var(--sp-2);background:var(--surface-sunken);border-radius:var(--radius-sm);font-size:12px;font-weight:600;color:var(--text-muted);white-space:nowrap}.type-badge{padding:2px 7px;border-radius:var(--radius-sm);font-size:10.5px;font-weight:700;letter-spacing:.04em;white-space:nowrap}.type-sql{background:var(--accent-bg);color:var(--accent-hover)}.type-api{background:var(--warn-bg);color:var(--warn)}.type-manual{background:var(--surface-sunken);color:var(--text-muted)}button,.button{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);min-height:var(--tap);padding:0 var(--sp-4);background:var(--surface);color:var(--text);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:13px;font-family:inherit;font-weight:500;line-height:1;cursor:pointer;text-decoration:none;transition:background-color var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease)}button:hover:not(:disabled),.button:hover{background:var(--surface-sunken)}a.button:hover{color:var(--text)}button:disabled{cursor:not-allowed;background:var(--surface-sunken);border-color:var(--border);color:var(--text-faint)}.button-primary,a.button-primary,button.primary{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}.button-primary:hover,a.button-primary:hover,button.primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover);color:#fff}button.primary:disabled{background:var(--surface-sunken);border-color:var(--border);color:var(--text-faint)}button.danger{color:var(--danger);border-color:var(--danger-border)}button.danger:hover:not(:disabled){background:var(--danger-bg)}.icon-button{min-width:var(--tap);min-height:var(--tap);padding:0;border:none;background:none;color:var(--text-muted);font-size:15px}.icon-button:hover:not(:disabled){background:var(--surface-sunken);color:var(--text)}.icon-button:disabled{background:none;color:#747e90}.application-form{max-width:680px}.application-form>*+*{margin-top:var(--sp-5)}form label,fieldset label{display:block;font-size:12px;font-weight:700;color:var(--text-muted)}form label+label{margin-top:var(--sp-5)}input[type=text],input[type=url],input[type=email],input[type=password],input[type=date],input[type=month],textarea,select{width:100%;min-height:var(--tap);margin-top:var(--sp-2);padding:var(--sp-2) var(--sp-3);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text);font-family:inherit;font-size:14px;font-weight:400;line-height:1.6}textarea{resize:vertical;min-height:72px}input::placeholder,textarea::placeholder{color:var(--text-faint)}.field-row{display:flex;gap:var(--sp-2);margin-top:var(--sp-2);flex-wrap:wrap}.field-row>*{margin-top:0;flex:1 1 200px}.field-row button{flex:0 0 auto}label.checkbox{display:grid;grid-template-columns:auto 1fr;gap:var(--sp-1) var(--sp-3);align-items:center;min-height:var(--tap);font-size:13px;font-weight:600;color:var(--text);cursor:pointer}label.checkbox input[type=checkbox]{width:18px;height:18px;min-height:0;margin:0;accent-color:var(--accent);cursor:pointer}label.checkbox .hint{grid-column:2;margin-top:0}label.maintenance{padding:var(--sp-3);background:var(--warn-bg);border:1px solid var(--warn-border);border-radius:var(--radius-sm)}label.ai-review{padding:var(--sp-3);background:var(--ai-bg);border:1px solid var(--ai-border);border-radius:var(--radius-sm)}fieldset{margin:0;padding:0;border:none}legend{padding:0;margin-bottom:var(--sp-2);font-size:13px;font-weight:700;color:var(--text)}.form-actions{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap}.form-actions .hint{margin-top:0}.step-editor .step{margin-bottom:var(--sp-2);background:var(--surface-quiet);border:1px solid var(--border-strong);border-radius:var(--radius-sm);overflow:hidden}.step-blocking{border-color:var(--danger)}.step-header{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-1) var(--sp-2);background:var(--surface-sunken);border-bottom:1px solid var(--border);flex-wrap:wrap}.step-number{display:flex;align-items:center;justify-content:center;width:20px;height:20px;background:#11161d;border-radius:var(--radius-sm);color:#fff;font-size:11px;font-weight:700;flex-shrink:0}.type-toggle{display:flex;gap:2px;padding:2px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm)}.type-toggle button{min-height:32px;padding:0 var(--sp-2);background:none;border:none;border-radius:3px;font-size:11.5px;font-weight:500;color:var(--text-muted)}.type-toggle button.active{background:var(--accent);color:#fff;font-weight:700}.step-actions{display:flex;gap:2px;margin-left:auto}.step-purpose,.step-body{margin-top:0;border:none;border-radius:0;background:var(--surface)}.step-purpose{min-height:40px;border-bottom:1px solid var(--border);font-size:13px}.step-body{min-height:88px}.add-step{width:100%;border-style:dashed;border-color:var(--border-strong);color:var(--text-muted);font-weight:600}.findings{list-style:none;display:flex;flex-direction:column;gap:var(--sp-2);margin:0;padding:var(--sp-3);background:var(--warn-bg);border-top:1px solid var(--warn-border)}.findings li{display:flex;flex-direction:column;gap:2px;font-size:12px;line-height:1.6;color:var(--warn)}.finding-high strong{color:var(--danger)}.finding-hint{color:var(--text-muted)}.alert{display:flex;flex-direction:column;gap:var(--sp-2);margin:0;padding:var(--sp-3) var(--sp-4);border-radius:var(--radius);font-size:13px;line-height:1.6}.alert-danger{background:var(--danger-bg);border:1px solid var(--danger-border);color:var(--danger)}.alert-warn{background:var(--warn-bg);border:1px solid var(--warn-border);color:var(--warn)}.alert-ok{background:var(--ok-bg);border:1px solid var(--ok-border);color:var(--ok)}.alert-info{background:var(--ai-bg);border:1px solid var(--ai-border);color:#423a66}.error-text{white-space:pre-wrap}.summary-warn{flex-direction:row;align-items:center;gap:var(--sp-4);flex-wrap:wrap}.summary-warn button{margin-left:auto}.detail>*+*{margin-top:var(--sp-5)}.detail-header{display:flex;flex-direction:column;gap:var(--sp-2)}.detail-meta{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap}.detail-header h2{align-items:baseline;flex-wrap:wrap;font-size:20px}.detail-header p{margin:0}.panel,.machine-checks,.approvals,.ai-findings,.revisions,.progress,.export{padding:var(--sp-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-card)}.panel>h3,.machine-checks>h3,.approvals>h3,.ai-findings>h3,.revisions>h3,.progress>h3,.export>h3{margin-bottom:var(--sp-3)}.check-row{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) 0;flex-wrap:wrap}.check-row+.check-row{border-top:1px solid var(--surface-sunken)}.check-name{min-width:88px;font-size:13px;font-weight:700}.concerns{display:flex;gap:var(--sp-3);flex-wrap:wrap}.concerns>div{flex:1 1 240px;padding:var(--sp-3) var(--sp-4);border-radius:var(--radius)}.concern{background:var(--warn-bg);border:1px solid var(--warn-border)}.countermeasure{background:var(--ok-bg);border:1px solid var(--ok-border)}.concerns p{margin:var(--sp-1) 0 0;font-size:13px}.step-view{list-style:none;display:flex;flex-direction:column;gap:var(--sp-4);margin:0;padding:0}.step-view-header{display:flex;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-2);flex-wrap:wrap}.step-view-purpose{font-size:13px;font-weight:600}.step-view-header .copy-button-wrap{margin-left:auto}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.copy-button{display:inline-flex;align-items:center;gap:var(--sp-1);min-height:var(--tap);padding:var(--sp-2) var(--sp-3);border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-muted);font-size:12px;font-weight:700;line-height:1;cursor:pointer;min-width:8.5em;justify-content:center;transition:background var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.copy-button:where(:not(.copy-copied,.copy-failed)):hover{background:var(--surface-sunken);color:var(--text)}.copy-button:where(:not(.copy-copied,.copy-failed)):active{background:var(--border)}.copy-button.copy-copied{background:var(--ok-bg);border-color:var(--ok-border);color:var(--ok)}.copy-button.copy-failed{background:var(--danger-bg);border-color:var(--danger-border);color:var(--danger)}@media(prefers-reduced-motion:reduce){.copy-button{transition:none}}.step-view pre{margin:0;padding:var(--sp-3) var(--sp-4);background:#11161d;color:#dbe2ec;border-radius:var(--radius-sm);overflow-x:auto;white-space:pre}.timeline{list-style:none;margin:0;padding:0}.timeline li{position:relative;display:flex;align-items:baseline;gap:var(--sp-3);padding:var(--sp-2) 0 var(--sp-2) var(--sp-6);flex-wrap:wrap}.timeline li:before{content:"";position:absolute;left:0;top:12px;width:10px;height:10px;background:var(--surface);border:2px solid var(--border-strong);border-radius:50%}.timeline li:after{content:"";position:absolute;left:5px;top:26px;bottom:-16px;width:2px;background:var(--border)}.timeline li:last-child:after{display:none}.timeline li.done:before{background:var(--accent);border-color:var(--accent)}.timeline-label{min-width:140px;font-size:13px;font-weight:600}.approval-block{display:flex;flex-direction:column;gap:var(--sp-3)}.approval-block p{margin:0;font-size:13px}.approval-block+.secondary-actions{margin-top:var(--sp-4);padding-top:var(--sp-4);border-top:1px solid var(--surface-sunken)}.secondary-actions{display:flex;gap:var(--sp-2);flex-wrap:wrap}.ai-findings ul{list-style:none;display:flex;flex-direction:column;gap:var(--sp-2);margin:0;padding:0}.ai-finding{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);border:1px solid var(--border);border-radius:var(--radius-sm)}.ai-finding.severity-high{border-left:3px solid var(--danger)}.ai-finding.severity-low{border-left:3px solid #c99a2e}.ai-finding-head{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.ai-finding p{margin:0;font-size:13px}.ai-finding-actions{display:flex;gap:var(--sp-2);flex-wrap:wrap}.revisions ul{list-style:none;margin:0;padding:0}.revisions li{display:flex;flex-direction:column;gap:2px;padding:var(--sp-3) 0}.revisions li+li{border-top:1px solid var(--surface-sunken)}.mention-list{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin:var(--sp-2) 0}.chip{display:inline-flex;align-items:center;gap:var(--sp-1);padding:0 var(--sp-1) 0 var(--sp-3);background:var(--surface-sunken);border-radius:var(--radius-pill);font-size:12.5px;font-weight:500}.chip button{min-width:32px;min-height:32px;padding:0;background:none;border:none;border-radius:50%;color:var(--text-muted);font-size:14px}.chip button:hover{background:#14170f14;color:var(--text)}.month-header{display:flex;align-items:flex-end;gap:var(--sp-5);margin-bottom:var(--sp-5);flex-wrap:wrap}.month-header label{margin:0}.month-header input{width:auto;min-width:160px}.login{max-width:380px;margin:10vh auto;padding:var(--sp-6);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-raised)}.login h1{margin:0 0 var(--sp-5);font-size:18px}.login button{width:100%;margin-top:var(--sp-5)}.password-rules{list-style:none;display:flex;flex-wrap:wrap;gap:var(--sp-1) var(--sp-4);margin:var(--sp-2) 0 0;padding:0;font-size:12px}.password-rules li{display:flex;align-items:center;gap:var(--sp-1)}.rule-ok{color:var(--ok);font-weight:600}.rule-todo{color:var(--text-muted)}.login .hint{margin-bottom:var(--sp-5)}@media(pointer:coarse){.app-header nav a{min-height:var(--tap)}.type-toggle button{min-height:40px}}@media(max-width:640px){main{padding:var(--sp-5) var(--sp-4) var(--sp-7)}.app-header{gap:var(--sp-3);padding:var(--sp-2) var(--sp-4)}.header-user{width:100%;margin-left:0;justify-content:space-between}.card-owner{margin-left:0}.card-foot .button{width:100%}.timeline-label{min-width:0}.summary-warn button{width:100%;margin-left:0}.form-actions>button{width:100%}}kbd{display:inline-flex;align-items:center;justify-content:center;min-width:22px;padding:2px var(--sp-2);background:var(--surface-sunken);border:1px solid var(--border);border-bottom-width:2px;border-radius:var(--radius-sm);font-family:inherit;font-size:11.5px;font-weight:700;color:var(--text-muted);line-height:1.5}.kbd-hint{min-width:0;padding:1px var(--sp-1);background:none;border:none;color:#fff;font-size:11.5px;font-weight:400}.shortcut-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;padding:var(--sp-5);background:#11161d73;z-index:50}.shortcut-sheet{width:100%;max-width:420px;padding:var(--sp-6);background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-raised)}.shortcut-sheet h2{margin:0 0 var(--sp-4);font-size:17px}.shortcut-sheet dl{margin:0 0 var(--sp-5)}.shortcut-row{display:flex;align-items:center;gap:var(--sp-4);padding:var(--sp-2) 0}.shortcut-row+.shortcut-row{border-top:1px solid var(--surface-sunken)}.shortcut-row dt{flex-shrink:0;width:64px}.shortcut-row dd{margin:0;font-size:13px}.shortcut-sheet>button{width:100%}.detail-actions{display:flex;gap:var(--sp-2);margin-top:var(--sp-2);flex-wrap:wrap}.flow{display:flex;align-items:center;gap:var(--sp-1);list-style:none;margin:0;padding:0;flex-wrap:wrap}.flow-step{display:flex;align-items:center;gap:var(--sp-1);font-size:11.5px;color:var(--text-faint)}.flow-step+.flow-step:before{content:"";width:14px;height:1px;margin-right:var(--sp-1);background:var(--border-strong)}.flow-dot{width:7px;height:7px;border-radius:50%;border:1.5px solid var(--border-strong);background:var(--surface);flex-shrink:0}.flow-done .flow-dot{background:var(--ok);border-color:var(--ok)}.flow-current .flow-dot{background:var(--accent);border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}.flow-current .flow-label{color:var(--accent);font-weight:700}.flow-note{margin-left:var(--sp-1);padding:0 var(--sp-1);background:var(--surface-sunken);border-radius:var(--radius-sm);font-size:11.5px;font-weight:400;color:var(--text-muted)}.turn-banner{margin-bottom:var(--sp-6);padding:var(--sp-4) var(--sp-5);background:var(--accent-bg);border:1px solid #cfe0fb;border-radius:var(--radius)}.turn-banner p{margin:0;font-size:14px}.turn-banner strong{margin-right:var(--sp-2);font-size:15px}.turn-banner-idle{background:var(--surface-quiet);border-color:var(--border)}.turn-banner-idle strong{color:var(--text-muted)}@media(max-width:640px){.card{flex-direction:column;gap:var(--sp-3)}.card-side{align-items:stretch;width:100%}.card-owner{text-align:left}}.ready-check{padding:var(--sp-3) var(--sp-4);background:var(--ok-bg);border:1px solid var(--ok-border);border-radius:var(--radius-sm)}.ready-title{display:flex;align-items:center;gap:var(--sp-2);margin:0 0 var(--sp-2);color:var(--ok);font-size:13px;font-weight:700}.ready-check ul{display:flex;flex-direction:column;gap:var(--sp-1);margin:0;padding-left:var(--sp-5);font-size:13px}.ready-check li .muted{margin-left:var(--sp-2)}.ready-goal{margin:var(--sp-3) 0 0;padding-top:var(--sp-3);border-top:1px solid var(--ok-border);font-size:13px}.ready-goal strong{margin-right:var(--sp-2)}.completion{margin-top:var(--sp-3);padding:var(--sp-4) var(--sp-5);background:var(--ok-bg);border:1px solid var(--ok-border);border-radius:var(--radius)}.completion-title{margin:0 0 var(--sp-3);color:var(--ok);font-size:15px;font-weight:700}.completion-facts{display:flex;flex-direction:column;gap:var(--sp-2);margin:0 0 var(--sp-4)}.completion-facts>div{display:flex;gap:var(--sp-3);flex-wrap:wrap;font-size:13px}.completion-facts dt{flex-shrink:0;width:88px;color:var(--text-muted);font-weight:700}.completion-facts dd{margin:0}.completion-actions{display:flex;gap:var(--sp-2);flex-wrap:wrap}.form-section{padding:var(--sp-5);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.form-section>*+*{margin-top:var(--sp-5)}.form-section-title{display:flex;align-items:center;gap:var(--sp-3);margin:0;font-size:15px;font-weight:700}.form-step-no{display:flex;align-items:center;justify-content:center;width:22px;height:22px;background:var(--accent);border-radius:50%;color:#fff;font-size:12px;font-weight:700;flex-shrink:0}.form-details{padding:0}.form-details>summary{display:flex;align-items:center;gap:var(--sp-3);min-height:var(--tap);padding:var(--sp-4) var(--sp-5);cursor:pointer;list-style:none;border-radius:var(--radius)}.form-details>summary::-webkit-details-marker{display:none}.form-details>summary:hover{background:var(--surface-quiet)}.form-details>summary:after{content:"▾";margin-left:auto;color:var(--text-faint);transition:transform var(--dur-fast) var(--ease)}.form-details[open]>summary:after{transform:rotate(180deg)}.summary-preview{margin-left:var(--sp-2);color:var(--text-faint);font-size:12px;font-weight:400}.form-details[open] .summary-preview{display:none}.form-details-body{padding:0 var(--sp-5) var(--sp-5);border-top:1px solid var(--surface-sunken);padding-top:var(--sp-5)}.form-details-body>*+*{margin-top:var(--sp-5)}.paired-fields{display:flex;gap:var(--sp-4)}.paired-fields>label{flex:1 1 0;min-width:0;margin:0}@media(max-width:640px){.form-section,.form-details-body{padding:var(--sp-4)}.paired-fields{flex-direction:column;gap:var(--sp-5)}}.deadline-field input[type=date]{max-width:220px;cursor:pointer}.deadline-field .hint{margin-top:0;margin-bottom:var(--sp-2)}.deadline-field input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer;padding:var(--sp-1)}.slack-thread{margin-top:var(--sp-2)}.slack-thread-toggle{display:inline-flex;align-items:center;gap:var(--sp-2);min-height:var(--tap);padding:var(--sp-2) var(--sp-3);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-quiet);color:var(--text-muted);font-size:12.5px;font-weight:700;cursor:pointer;transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.slack-thread-toggle:hover{background:var(--surface-sunken);color:var(--text)}.slack-thread-body{display:flex;flex-direction:column;gap:var(--sp-3);margin-top:var(--sp-3);padding-left:var(--sp-3);border-left:3px solid var(--border)}.slack-message{display:flex;flex-direction:column;gap:var(--sp-2)}.slack-message-head{display:flex;align-items:center;gap:var(--sp-2)}.slack-message-who{font-size:11.5px;font-weight:700;color:var(--text-faint)}.slack-message-head .copy-button-wrap{margin-left:auto}.slack-message-text{margin:0;font-size:13px;line-height:1.7;white-space:pre-wrap}.slack-thread-link{font-size:12px}.slack-code{display:flex;flex-direction:column;gap:var(--sp-2)}.slack-code-head{display:flex;justify-content:flex-end}.month-summary{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);flex-wrap:wrap;padding:var(--sp-4) var(--sp-5);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.month-summary.is-ready{border-left:4px solid var(--ok)}.month-summary.is-blocked{border-left:4px solid var(--warn)}.month-summary-state{display:flex;flex-direction:column;gap:var(--sp-1)}.month-summary-state strong{font-size:17px}.month-summary.is-ready .month-summary-state strong{color:var(--ok)}.month-summary.is-blocked .month-summary-state strong{color:var(--warn)}.month-summary-detail{font-size:13px;color:var(--text-muted)}.month-actions{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.month-note{margin-top:var(--sp-2)}.month-section{margin-top:var(--sp-7)}.month-section>h3{margin-bottom:var(--sp-3)}.month-picker{margin:0}.table-scroll{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.data-table{width:100%;border-collapse:collapse;font-size:13px}.data-table th,.data-table td{padding:var(--sp-3) var(--sp-4);text-align:left;border-bottom:1px solid var(--border);vertical-align:middle}.data-table thead th{position:sticky;top:0;z-index:1;background:var(--surface-sunken);font-size:11.5px;font-weight:700;color:var(--text-muted);white-space:nowrap}.data-table tbody tr:last-child td{border-bottom:0}.data-table tbody tr:hover{background:var(--surface-quiet)}.data-table tfoot td{border-top:1px solid var(--border-strong);border-bottom:0;font-weight:700;background:var(--surface-quiet)}.cell-municipality{white-space:nowrap;font-weight:600}.cell-owner{white-space:nowrap;font-size:12px;color:var(--text-faint)}.col-num{text-align:right;white-space:nowrap}.num{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px;font-variant-numeric:tabular-nums}.num-empty{color:var(--text-faint)}@media(max-width:700px){.data-table{min-width:560px}.month-summary{align-items:flex-start}}
