
:root{
  --bg:#0b1120; --surface:#111a2e; --surface2:#0d1424; --border:#1e293b; --border2:#27364d;
  --text:#e6edf6; --muted:#93a4bd; --primary:#3b82f6; --primary-d:#2563eb;
  --accent:#7dd3fc; --success:#4ade80; --warn:#fbbf24; --danger:#f87171;
  --radius:10px; --maxw:1080px;
  --font:system-ui,-apple-system,'Malgun Gothic','Apple SD Gothic Neo',sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:15px;line-height:1.5}
a{color:var(--accent);text-decoration:none}
b,strong{color:#fff}
h1,h2,h3{margin:.2rem 0}

/* header / nav */
.app-header{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:1rem;flex-wrap:wrap;
  padding:.7rem 1.1rem;background:rgba(11,17,32,.86);backdrop-filter:blur(8px);border-bottom:1px solid var(--border)}
.brand{font-size:1.05rem;color:var(--text);font-weight:500}
.brand b{color:var(--accent)}
.nav{display:flex;gap:.2rem;flex-wrap:wrap;margin-left:auto}
.nav-link{padding:.35rem .7rem;border-radius:8px;color:var(--muted);font-size:.9rem;font-weight:500}
.nav-link:hover{background:var(--surface);color:var(--text)}
.nav-link.active{background:var(--primary-d);color:#fff}

/* layout */
.container{max-width:var(--maxw);margin:0 auto;padding:1.2rem 1.1rem 4rem}
.container.wide{max-width:1280px}
.cols{display:grid;grid-template-columns:330px 1fr;gap:1rem;align-items:start}
@media(max-width:760px){.cols{grid-template-columns:1fr}}
.row{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.6rem}
.row-2{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}

/* card */
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.1rem;margin-bottom:1rem}
.card-title{font-size:1rem;font-weight:600;margin:0 0 .8rem;color:#fff}
.section-title{font-size:.95rem;font-weight:600;color:#93c5fd;border-left:3px solid var(--primary-d);
  padding-left:.5rem;margin:1.8rem 0 .8rem}

/* form */
label{display:block;font-size:.76rem;color:var(--muted);margin:.5rem 0 .25rem;font-weight:500}
input,select,textarea{width:100%;padding:.55rem .65rem;background:var(--surface2);border:1px solid var(--border2);
  border-radius:8px;color:var(--text);font-size:.92rem;font-family:inherit;transition:border-color .12s,box-shadow .12s}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(59,130,246,.22)}
textarea{min-height:66px;resize:vertical}

/* button */
.btn{display:inline-flex;align-items:center;gap:.4rem;padding:.55rem 1rem;border:1px solid transparent;border-radius:8px;
  background:var(--primary-d);color:#fff;font-size:.92rem;font-weight:600;cursor:pointer;font-family:inherit;
  transition:filter .12s}
.btn:hover{filter:brightness(1.12)}
.btn:active{filter:brightness(.95)}
.btn:disabled{opacity:.5;cursor:not-allowed;filter:none}
.btn-ghost{background:transparent;border-color:var(--border2);color:var(--text)}
.btn-ghost:hover{background:var(--surface)}
.btn-sm{padding:.3rem .62rem;font-size:.8rem}
.btn-block{width:100%;justify-content:center}

/* badge / tag */
.badge{display:inline-block;font-size:.72rem;padding:.13rem .55rem;border-radius:999px;background:var(--surface2);
  border:1px solid var(--border2);color:var(--muted)}
.badge.ok{color:var(--success);border-color:#166534}
.badge.warn{color:var(--warn);border-color:#854d0e}
.badge.info{color:var(--accent);border-color:#1e4e8c;background:#0c2a4d}

/* table */
.table{width:100%;border-collapse:collapse;font-size:.86rem}
.table th,.table td{padding:.45rem .55rem;border-bottom:1px solid var(--border);text-align:left}
.table th{color:var(--muted);font-weight:600;font-size:.78rem}
.table td.num,.table th.num{text-align:right}

/* list / timeline */
.list-item{padding:.6rem .7rem;border:1px solid var(--border);border-radius:9px;margin-bottom:.5rem;cursor:pointer;
  background:var(--surface2);transition:border-color .12s,background .12s}
.list-item:hover{border-color:var(--primary)}
.list-item.active{border-color:var(--primary);background:#16213a}
.note{border:1px solid var(--border);border-radius:9px;padding:.65rem .75rem;margin-bottom:.55rem;background:var(--surface2)}
.note.closed{opacity:.5}
.note-head{display:flex;gap:.45rem;align-items:center;flex-wrap:wrap}
.note-body{color:#cbd5e1;font-size:.86rem;margin-top:.35rem;white-space:pre-wrap}
.note-time{color:#64748b;font-size:.72rem;margin-left:auto}

/* misc */
.muted{color:var(--muted)}
.small{font-size:.82rem}
.total{font-size:1.4rem;font-weight:700;color:var(--success);text-align:right;margin-top:.6rem}
.demo-banner{background:#3a2a06;color:#fcd34d;border:1px solid #854d0e;border-radius:8px;padding:.55rem .8rem;
  font-size:.82rem;margin-bottom:1rem}
.empty{color:var(--muted);font-size:.88rem;padding:1rem;text-align:center}

/* kind dots / verdict */
.k-requirement{color:var(--warn)}.k-issue{color:var(--danger)}.k-call{color:var(--success)}
.k-decision{color:#a78bfa}.k-memo{color:var(--muted)}
.v{font-size:.72rem;padding:.1rem .45rem;border-radius:6px;border:1px solid var(--border2)}
.v-feasible{color:#86efac;border-color:#166534}.v-conditional{color:var(--warn);border-color:#854d0e}
.v-not_feasible{color:#fca5a5;border-color:#7f1d1d}

/* toasts */
.toasts{position:fixed;top:1rem;right:1rem;z-index:50;display:flex;flex-direction:column;gap:.5rem;max-width:90vw}
.toast{padding:.6rem .9rem;border-radius:9px;font-size:.86rem;background:var(--surface);border:1px solid var(--border2);
  color:var(--text);box-shadow:0 6px 20px rgba(0,0,0,.45);animation:slidein .2s;transition:opacity .3s}
.toast.ok{border-color:#166534}
.toast.err{border-color:#7f1d1d;color:#fecaca}
@keyframes slidein{from{transform:translateX(20px);opacity:0}to{transform:none;opacity:1}}
