:root{--bg:#050505;--panel:#0d0d0d;--elev:#141414;--ink:#f2f2ef;--muted:#8f8f88;--line:#ffffff14;--accent:#5f8;--accent-dim:#55ff881f;--warn:#ffc14d;--danger:#ff5c5c;--ok:#5f8;--font:"Outfit", sans-serif;--display:"Syne", sans-serif;--radius:14px;--max:1120px}*,:before,:after{box-sizing:border-box}html,body{min-height:100%;margin:0}body{font-family:var(--font);background:radial-gradient(ellipse at top left, #55ff881f, transparent 42%), var(--bg);color:var(--ink);line-height:1.5}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}#app{min-height:100vh}.shell{max-width:var(--max);margin:0 auto;padding:0 1.2rem 3rem}.topbar{border-bottom:1px solid var(--line);z-index:20;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#050505d9;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;padding:1rem 0;display:flex;position:sticky;top:0}.brand{font-family:var(--display);letter-spacing:-.02em;align-items:baseline;gap:.15rem;font-weight:800;display:flex}.brand span{color:var(--accent)}.topbar-actions{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.topbar nav{flex-wrap:wrap;gap:.4rem;display:flex}.topbar nav a,.chip-link{color:var(--muted);border-radius:999px;padding:.4rem .75rem;font-size:.92rem}.topbar nav a.is-active,.topbar nav a:hover{color:var(--ink);background:var(--accent-dim)}.btn{background:var(--accent);color:#04140a;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:.4rem;min-height:40px;padding:.55rem 1rem;font-weight:600;display:inline-flex}.btn:hover{filter:brightness(1.05)}.btn-ghost{border-color:var(--line);color:var(--ink);background:0 0}.btn-danger{background:var(--danger);color:#1a0505}.btn-sm{min-height:32px;padding:.35rem .75rem;font-size:.88rem}.btn:disabled{opacity:.5;cursor:not-allowed}.auth-card{background:var(--panel);border:1px solid var(--line);border-radius:20px;max-width:420px;margin:8vh auto;padding:2rem}.auth-card h1{font-family:var(--display);letter-spacing:-.02em;margin:0 0 .4rem;font-size:1.8rem}.auth-card p{color:var(--muted);margin:0 0 1.4rem}.field{flex-direction:column;gap:.35rem;margin-bottom:.9rem;display:flex}.field label{color:var(--muted);font-size:.85rem}.field input,.field select,.field textarea{background:var(--elev);border:1px solid var(--line);border-radius:12px;outline:none;padding:.7rem .85rem}.field input:focus,.field select:focus,.field textarea:focus{border-color:#55ff8873}.field textarea{resize:vertical;min-height:90px}.check{color:var(--muted);align-items:center;gap:.5rem;margin-bottom:1rem;display:flex}.error{color:#ffb0b0;background:#ff5c5c1f;border:1px solid #ff5c5c4d;border-radius:12px;margin-bottom:1rem;padding:.7rem .9rem;font-size:.92rem}.ok-banner{background:var(--accent-dim);color:var(--accent);border:1px solid #55ff884d;border-radius:12px;margin-bottom:1rem;padding:.7rem .9rem}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1.4rem;display:flex}.page-head h1{font-family:var(--display);margin:0;font-size:clamp(1.6rem,4vw,2.2rem)}.page-head p{color:var(--muted);margin:.35rem 0 0}.grid-2{grid-template-columns:1.2fr .8fr;gap:1rem;display:grid}.grid-3{grid-template-columns:repeat(3,1fr);gap:1rem;display:grid}@media (width<=900px){.grid-2,.grid-3{grid-template-columns:1fr}}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:1.1rem}.card h2,.card h3{font-family:var(--display);margin:0 0 .7rem}.muted{color:var(--muted)}.stack{flex-direction:column;gap:.7rem;display:flex}.badge{letter-spacing:.04em;text-transform:uppercase;background:var(--accent-dim);color:var(--accent);border-radius:999px;align-items:center;padding:.2rem .55rem;font-size:.75rem;font-weight:700;display:inline-flex}.badge.warn{color:var(--warn);background:#ffc14d26}.badge.danger{color:var(--danger);background:#ff5c5c26}.badge.neutral{color:var(--muted);background:#ffffff0f}.approval{background:#ffc14d0f;border:1px solid #ffc14d40;border-radius:12px;justify-content:space-between;align-items:flex-start;gap:1rem;padding:.9rem;display:flex}.approval-actions{flex-shrink:0;gap:.4rem;display:flex}.roadmap{flex-direction:column;gap:1rem;padding-bottom:.5rem;display:flex;overflow-x:auto}.lane{border:1px solid var(--line);border-radius:var(--radius);background:#ffffff05;padding:.8rem}.lane-label{letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-bottom:.7rem;font-size:.78rem;font-weight:700}.lane-track{flex-wrap:wrap;gap:.6rem;min-height:72px;display:flex;position:relative}.item-chip{border:1px solid var(--line);background:var(--elev);cursor:pointer;border-radius:12px;flex:1;min-width:180px;max-width:280px;padding:.85rem;transition:transform .15s,border-color .15s}.item-chip:hover{border-color:#5f86;transform:translateY(-2px)}.item-chip h4{margin:0 0 .35rem;font-size:1rem}.item-chip p{color:var(--muted);margin:0;font-size:.88rem}.item-meta{color:var(--muted);flex-wrap:wrap;gap:.4rem;margin-top:.55rem;font-size:.75rem;display:flex}.flowchart{flex-direction:column;align-items:center;gap:0;padding:.5rem 0 1rem;display:flex}.flow-terminal{letter-spacing:.12em;text-transform:uppercase;border-radius:999px;padding:.45rem 1.2rem;font-size:.78rem;font-weight:700}.flow-start{background:var(--accent);color:#04140a}.flow-end{color:var(--accent);background:var(--accent-dim);border:1px solid #55ff8873}.flow-connector{justify-content:center;width:100%;height:28px;display:flex}.flow-connector span{background:linear-gradient(#55ff888c,#55ff8826);width:2px;height:100%;display:block;position:relative}.flow-connector span:after{content:"";border-bottom:2px solid #55ff888c;border-right:2px solid #55ff888c;width:8px;height:8px;position:absolute;bottom:-1px;left:50%;transform:translate(-50%)rotate(45deg)}.flow-stage{width:100%;max-width:720px}.flow-fork-label{text-align:center;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:.45rem;font-size:.72rem;font-weight:700}.flow-stage-nodes{flex-wrap:wrap;justify-content:center;gap:.75rem;display:flex}.flow-stage-nodes.is-parallel{background:#55ff8808;border:1px dashed #55ff8847;border-radius:18px;padding:.85rem}.flow-node{text-align:left;border:1px solid var(--line);background:var(--elev);cursor:pointer;border-radius:14px;flex:220px;min-width:min(100%,240px);max-width:320px;padding:.95rem 1rem;transition:transform .15s,border-color .15s,box-shadow .15s}.flow-node:hover{border-color:#55ff8873;transform:translateY(-2px);box-shadow:0 10px 28px #00000040}.flow-node.status-active{border-color:#55ff8859}.flow-node.status-blocked{border-color:#ff5c5c59}.flow-node.status-done{opacity:.78}.flow-node-top{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.45rem;display:flex}.flow-lane{color:var(--accent);font-size:.72rem;font-weight:600}.flow-node h4{font-family:var(--display);margin:0 0 .35rem;font-size:1.05rem}.flow-node p{color:var(--muted);margin:0;font-size:.88rem}.todo-mark{width:1.1rem;color:var(--accent);justify-content:center;font-weight:700;display:inline-flex}.drawer-backdrop{z-index:40;background:#0000008c;position:fixed;inset:0}.drawer{border-left:1px solid var(--line);z-index:50;background:#0a0a0a;width:min(440px,100%);height:100%;padding:1.2rem;animation:.22s slideIn;position:fixed;top:0;right:0;overflow:auto}@keyframes slideIn{0%{opacity:.6;transform:translate(24px)}to{opacity:1;transform:none}}.drawer header{justify-content:space-between;align-items:start;gap:1rem;margin-bottom:1rem;display:flex}.drawer h2{font-family:var(--display);margin:0;font-size:1.35rem}.todo-list{margin:0;padding:0;list-style:none}.todo-list li{border-bottom:1px solid var(--line);align-items:center;gap:.6rem;padding:.55rem 0;display:flex}.todo-list li.done span{color:var(--muted);text-decoration:line-through}.todo-add{gap:.5rem;margin-top:.8rem;display:flex}.todo-add input{background:var(--elev);border:1px solid var(--line);border-radius:10px;flex:1;padding:.55rem .7rem}.project-list{gap:.8rem;display:grid}.project-link{border-radius:var(--radius);border:1px solid var(--line);background:var(--panel);padding:1.1rem 1.2rem;transition:border-color .15s,transform .15s;display:block}.project-link:hover{border-color:#55ff8859;transform:translateY(-2px)}.project-link h3{font-family:var(--display);margin:0 0 .3rem}.project-link p{color:var(--muted);margin:0}.table{border-collapse:collapse;width:100%;font-size:.92rem}.table th,.table td{text-align:left;border-bottom:1px solid var(--line);padding:.65rem .4rem}.table th{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.8rem;font-weight:600}.form-row{grid-template-columns:1fr 1fr;gap:.7rem;display:grid}@media (width<=640px){.form-row{grid-template-columns:1fr}}.empty{color:var(--muted);padding:1rem 0}.loading{color:var(--muted);text-align:center;padding:2rem 0}
