:root{--navy:#172d3c;--navy2:#243f50;--teal:#167f78;--teal2:#e6f5f2;--ink:#17242d;--muted:#63727c;--line:#dce4e7;--bg:#f4f7f7;--white:#fff;--danger:#a74343;--warn:#9a6719;--shadow:0 8px 28px #14303e14}*{box-sizing:border-box}html,body{background:var(--bg);min-height:100%;color:var(--ink);margin:0;font-family:Inter,Noto Sans JP,system-ui,sans-serif;font-size:15px}button,input,textarea,select{font:inherit}button{cursor:pointer}a{color:inherit}.shell{min-height:100vh}.topbar{background:var(--navy);color:#fff;z-index:20;align-items:center;gap:32px;height:64px;padding:0 32px;display:flex;position:sticky;top:0}.brand{letter-spacing:.08em;font-size:20px;font-weight:800;text-decoration:none}.brand small{color:#a8c4cc;margin-left:9px;font-size:10px;font-weight:500}.nav{gap:6px;display:flex}.nav a{color:#d9e7ea;border-radius:7px;padding:9px 13px;text-decoration:none}.nav a:hover,.nav a:focus{background:var(--navy2)}.top-actions{color:#bed0d5;align-items:center;gap:12px;margin-left:auto;display:flex}.logout{color:#fff;background:0 0;border:1px solid #6e8790;border-radius:7px;padding:7px 11px}.container{max-width:1280px;margin:auto;padding:32px}.page-head,.row,.spread{align-items:center;gap:12px;display:flex}.page-head,.spread{justify-content:space-between}.page-head{margin-bottom:24px}.page-head h1{margin:0;font-size:27px}.eyebrow{color:var(--teal);letter-spacing:.12em;text-transform:uppercase;font-size:12px;font-weight:700}.muted{color:var(--muted)}.small{font-size:12px}.grid{gap:18px;display:grid}.metrics{grid-template-columns:repeat(4,1fr);margin-bottom:20px}.metric,.card{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:12px}.metric{padding:18px}.metric strong{margin-top:4px;font-size:27px;display:block}.card{padding:22px}.card h2,.card h3{margin:0 0 16px}.btn{background:var(--teal);color:#fff;border:0;border-radius:8px;padding:10px 16px;font-weight:700}.btn:hover{filter:brightness(.94)}.btn.secondary{color:var(--navy);background:#fff;border:1px solid #b8c7cc}.btn.ghost{color:var(--teal);background:0 0;padding:7px}.btn.danger{background:var(--danger)}.btn:disabled{opacity:.48;cursor:not-allowed}.filters{grid-template-columns:1.5fr repeat(4,1fr);gap:10px;margin-bottom:18px;display:grid}.field{flex-direction:column;gap:6px;display:flex}.field label,.label{color:#53656e;font-size:12px;font-weight:700}.input,.field input,.field textarea,.field select{width:100%;color:var(--ink);background:#fff;border:1px solid #cbd7da;border-radius:8px;padding:10px 11px}.field textarea{resize:vertical;min-height:110px}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--teal);outline:3px solid #167f7829}.table-wrap{border:1px solid var(--line);background:#fff;border-radius:12px;overflow:auto}.table{border-collapse:collapse;width:100%;min-width:850px}.table th{color:var(--muted);text-align:left;background:#f8fafa;padding:12px 14px;font-size:12px}.table td{border-top:1px solid #e7edef;padding:15px 14px}.table tr:hover td{background:#fbfdfd}.title-link{color:var(--navy);font-weight:700;text-decoration:none}.score{color:var(--teal);font-size:18px;font-weight:800}.badge{color:#43565f;background:#edf2f3;border-radius:999px;align-items:center;padding:5px 9px;font-size:12px;font-weight:700;display:inline-flex}.badge.teal{background:var(--teal2);color:#10645f}.badge.warn{color:#805516;background:#fff3d9}.badge.danger{color:#923c3c;background:#fde9e7}.modal-backdrop{z-index:50;background:#081c2794;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal{background:#fff;border-radius:14px;width:min(720px,100%);max-height:92vh;padding:25px;overflow:auto;box-shadow:0 24px 70px #00000040}.modal h2{margin-top:0}.form-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.span2{grid-column:1/-1}.error,.notice{border-radius:8px;margin:12px 0;padding:11px 13px}.error{color:#8e3636;background:#fdebea;border:1px solid #f2cbc8}.notice{color:#145f5a;background:#e9f6f3;border:1px solid #c8e8e3}.spinner{border:3px solid #d5e7e5;border-top-color:var(--teal);border-radius:50%;width:22px;height:22px;animation:.8s linear infinite spin}.center{flex-direction:column;justify-content:center;align-items:center;gap:12px;min-height:60vh;display:flex}.empty{text-align:center;color:var(--muted);padding:50px 20px}.detail-grid{grid-template-columns:minmax(0,1.55fr) minmax(320px,.8fr);align-items:start}.stack{flex-direction:column;gap:18px;display:flex}.raw{white-space:pre-wrap;background:#f7f9f9;border-radius:8px;max-height:380px;padding:15px;overflow:auto}.axis{border-top:1px solid var(--line);grid-template-columns:120px 55px 1fr;gap:10px;padding:10px 0;display:grid}.tabs{border-bottom:1px solid var(--line);gap:3px;margin-bottom:20px;display:flex}.tab{color:var(--muted);background:0 0;border:0;border-bottom:3px solid #0000;padding:11px 17px;font-weight:700}.tab.active{color:var(--teal);border-color:var(--teal)}.proposal textarea{min-height:300px}.answer{border-left:3px solid #b7dcd8;margin:15px 0;padding-left:13px}.timeline{border-left:2px solid #cfdddf;margin-left:7px;padding-left:20px}.event{margin-bottom:20px;position:relative}.event:before{content:"";background:var(--teal);border-radius:50%;width:10px;height:10px;position:absolute;top:5px;left:-26px}.login{grid-template-columns:1.15fr .85fr;min-height:100vh;display:grid}.login-hero{color:#fff;background:linear-gradient(145deg,#142d3c,#205466);flex-direction:column;justify-content:center;padding:10vw;display:flex}.login-hero h1{margin:12px 0;font-size:54px}.login-hero p{color:#c9dde2;font-size:18px;line-height:1.8}.login-panel{align-items:center;padding:9vw;display:flex}.login-card{width:100%;max-width:410px}.login-card h2{font-size:28px}.fact{border:1px solid var(--line);border-radius:8px;margin:9px 0;padding:13px}.check{align-items:flex-start;gap:8px;display:flex}.check input{margin-top:3px}.pill-list{flex-wrap:wrap;gap:6px;display:flex}.stale{border-left:4px solid var(--warn);background:#fff9ea;padding:11px 14px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width:800px){.topbar{padding:0 16px}.brand small,.top-actions span{display:none}.container{padding:20px 14px}.metrics{grid-template-columns:1fr 1fr}.filters,.detail-grid,.form-grid{grid-template-columns:1fr}.span2{grid-column:auto}.login{grid-template-columns:1fr}.login-hero{min-height:42vh;padding:50px 28px}.login-hero h1{font-size:42px}.login-panel{padding:35px 25px}.axis{grid-template-columns:1fr}.page-head{align-items:flex-start}.nav{margin-left:auto}.top-actions{margin-left:0}}
