:root{color-scheme:dark;--bg:#080a0e;--panel:#121720;--panel2:#1a202b;--panel3:#0d1117;--line:#30394a;--line2:#232b38;--text:#f4f7fb;--muted:#a3adba;--accent:#c8ff3d;--accent2:#91b9ff;--danger:#ff7782;--warn:#ffd568;--ok:#65d796;font-family:-apple-system,BlinkMacSystemFont,"Noto Sans JP",sans-serif}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text)}button,input,select,textarea{font:inherit}.boot{padding:40px}.shell{min-height:100dvh}.top{position:sticky;top:0;z-index:8;display:flex;align-items:center;gap:10px;padding:calc(10px + env(safe-area-inset-top)) 14px 10px;background:rgba(8,10,14,.96);border-bottom:1px solid var(--line);backdrop-filter:blur(18px)}.brand{min-width:0}.brand h1{font-size:18px;margin:0}.brand small{display:block;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.spacer{flex:1}.page{max-width:1320px;margin:auto;padding:14px 14px calc(32px + env(safe-area-inset-bottom))}.card{border:1px solid var(--line);border-radius:18px;background:var(--panel);padding:15px;margin-bottom:12px}.card h2,.card h3{margin:0 0 10px}.grid{display:grid;gap:10px}.stats{grid-template-columns:repeat(8,minmax(0,1fr))}.stat{border:1px solid var(--line);border-radius:15px;background:var(--panel2);padding:12px;min-width:0}.stat span{display:block;color:var(--muted);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stat strong{display:block;font-size:24px;margin-top:5px}.stat small{color:var(--muted)}.toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.toolbar>*{min-height:44px}.input,select,textarea{border:1px solid var(--line);border-radius:12px;background:var(--panel3);color:var(--text);padding:10px 12px;min-width:0}.input:focus,select:focus,textarea:focus{outline:2px solid color-mix(in srgb,var(--accent) 70%,transparent);outline-offset:1px}.button{border:1px solid var(--line);border-radius:12px;background:var(--panel2);color:var(--text);padding:9px 13px;font-weight:750;min-height:42px}.button:hover{border-color:#56647b}.button.primary{background:var(--accent);color:#111700;border-color:transparent}.button.danger{color:#ffc1c6;border-color:#7a3540}.button.active{color:var(--accent);border-color:var(--accent)}.tabs{display:flex;gap:7px;overflow:auto;margin:0 0 12px;padding-bottom:2px;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tabs .button{white-space:nowrap}.scope{min-width:210px;max-width:330px}.app-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.app-card{border:1px solid var(--line);background:var(--panel2);border-radius:16px;padding:14px;display:grid;gap:10px}.app-card header{display:flex;gap:10px;align-items:flex-start}.app-card h3{margin:0}.app-card .meta{display:flex;gap:6px;flex-wrap:wrap}.app-card dl{display:grid;grid-template-columns:1fr auto;gap:6px;margin:0}.app-card dt{color:var(--muted)}.app-card dd{margin:0;font-weight:750}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:14px;background:var(--panel)}table{width:100%;border-collapse:collapse;min-width:880px}th,td{padding:10px;border-bottom:1px solid var(--line2);text-align:left;vertical-align:top}th{color:var(--muted);font-size:12px;background:var(--panel2);position:sticky;top:0;z-index:1}.muted{color:var(--muted)}.badge{display:inline-flex;align-items:center;gap:5px;padding:4px 8px;border-radius:999px;background:var(--panel2);font-size:11px;border:1px solid var(--line)}.badge.ok{color:var(--ok)}.badge.warn{color:var(--warn)}.badge.danger{color:#ffc1c6}.badge.info{color:var(--accent2)}.login{max-width:500px;margin:10vh auto;padding:20px}.login h1{margin-top:0}.login form{display:grid;gap:10px}.notice{padding:12px;border:1px solid var(--line);border-radius:12px;color:var(--muted);line-height:1.55}.error{color:#ffc1c6}.empty{padding:30px;text-align:center;color:var(--muted)}.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,.55fr);gap:12px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.form-grid label,.stack label{display:grid;gap:5px;color:var(--muted)}.stack{display:grid;gap:10px}.wide{grid-column:1/-1}dialog{width:min(680px,calc(100vw - 18px));max-height:calc(100dvh - 20px);overflow:auto;border:1px solid var(--line);border-radius:18px;background:var(--panel);color:var(--text);padding:0}dialog::backdrop{background:rgba(0,0,0,.74)}.dialog{padding:16px}.dialog form{display:grid;gap:10px}.dialog footer{display:flex;justify-content:flex-end;gap:8px;margin-top:12px;flex-wrap:wrap}.kpi-bar{display:flex;gap:10px;flex-wrap:wrap}.kpi{padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--panel3)}code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9em;overflow-wrap:anywhere}#toast{position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));z-index:50;display:grid;gap:8px}.toast{background:#202938;border:1px solid #4e5e76;border-radius:12px;padding:11px 14px;box-shadow:0 10px 30px #0008;max-width:min(420px,calc(100vw - 24px))}.app-switch-mobile{display:none}
@media(max-width:980px){.stats{grid-template-columns:repeat(3,minmax(0,1fr))}.app-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.split{grid-template-columns:1fr}}
@media(max-width:720px){.top{flex-wrap:wrap}.top .scope{order:3;flex:1 1 100%;max-width:none}.top .role{display:none}.page{padding-inline:9px}.stats{grid-template-columns:1fr 1fr}.app-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.table-wrap{border-radius:12px}.button.icon-label span{display:none}}
@media(max-width:380px){.stats{grid-template-columns:1fr}.top .version{display:none}}

.roadmap-filters{margin-top:12px}.roadmap-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.roadmap-card{display:grid;gap:10px;border:1px solid var(--line);border-radius:16px;background:var(--panel2);padding:14px;min-width:0}.roadmap-card.is-blocking{border-color:#7a3540;box-shadow:inset 3px 0 0 var(--danger)}.roadmap-card header h3{margin:7px 0 2px;font-size:16px;line-height:1.4}.roadmap-card p{margin:0;line-height:1.55}.roadmap-card footer{display:flex;gap:10px;align-items:center;justify-content:space-between;border-top:1px solid var(--line2);padding-top:10px}.roadmap-badges,.dependency-list{display:flex;gap:6px;flex-wrap:wrap}.roadmap-card details{border:1px solid var(--line2);border-radius:10px;padding:8px 10px;background:var(--panel3)}.roadmap-card summary{cursor:pointer;font-weight:750}.roadmap-card ul{margin:8px 0 0;padding-left:20px}.badge.priority.p0{color:#ffc1c6;border-color:#7a3540}.badge.priority.p1{color:var(--warn)}.badge.priority.p2{color:var(--accent2)}.toggle{display:flex;align-items:center;gap:7px;color:var(--muted);min-height:44px}.roadmap-group>.toolbar{margin-bottom:10px}
@media(max-width:980px){.roadmap-grid{grid-template-columns:1fr}.stats{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:720px){.roadmap-card footer{align-items:flex-start}.roadmap-filters>*{flex:1 1 calc(50% - 8px)}}
