:root{--navy:#150a31;--navy-2:#1c1048;--pj-primary:#0f3d8c;--bg0:#f8fafc;--bg1:#fff;--ink:#0b1b33;--muted:#5d6f8b;--line:#e3eaf3;--line-2:#cfdae8;--accent:#7158f7;--accent-dim:#5a45d4;--ok:#12a150;--warn:#b86e08;--danger:#c4232c;--radius:14px;--shadow:0 1px 2px #08172b0f, 0 8px 24px #08172b12;--font:"Segoe UI", -apple-system, BlinkMacSystemFont, Inter, Roboto, Helvetica, Arial, sans-serif;--mono:ui-monospace, "Cascadia Mono", "Segoe UI Mono", monospace}*{box-sizing:border-box}html,body,#root{min-height:100%}body{font-family:var(--font);color:var(--ink);background:#f5f8fc;margin:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.app-shell{max-width:1100px;margin:0 auto;padding:28px 20px 64px}.topbar{background:linear-gradient(135deg, var(--navy) 0%, var(--navy-2) 58%, var(--pj-primary) 140%);color:#fff}.topbar-inner{justify-content:space-between;align-items:center;gap:16px;max-width:1100px;margin:0 auto;padding:16px 20px;display:flex}.brand{align-items:center;gap:14px;line-height:1;display:flex}.logo{width:auto;height:36px;display:block}.brand-product{color:#c3d4e8;letter-spacing:-.01em;border-left:1px solid #ffffff47;padding-left:14px;font-size:.95rem;font-weight:700}.nav{flex-wrap:wrap;gap:8px;display:flex}.nav a,.nav button.linkish{color:#d6e3f2;cursor:pointer;background:#ffffff0f;border:1px solid #fff3;border-radius:999px;padding:8px 12px}.nav a.active,.nav a:hover,.nav button.linkish:hover{background:var(--accent);color:#fff;border-color:#0000}.panel{border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);background:#fff;margin-bottom:18px;padding:20px}.panel h2{margin:0 0 6px;font-size:1.15rem}.panel p.lead{color:var(--muted);margin:0 0 16px;font-size:.95rem}.grid-2{grid-template-columns:1fr 1fr;gap:14px;display:grid}@media (width<=820px){.grid-2{grid-template-columns:1fr}}label.field{color:var(--muted);flex-direction:column;gap:6px;font-size:.88rem;display:flex}label.field input,label.field select,label.field textarea{border:1px solid var(--line-2);color:var(--ink);background:#fff;border-radius:10px;padding:10px 12px}label.field textarea{resize:vertical;min-height:88px}.options-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;display:grid}.toggle{border:1px solid var(--line);color:var(--ink);cursor:pointer;background:#fff;border-radius:10px;align-items:center;gap:10px;padding:10px 12px;display:flex}.toggle input{accent-color:var(--accent)}.btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:10px;padding:10px 14px;font-weight:600}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.secondary{color:var(--ink);border:1px solid var(--line-2);background:#fff}.btn.danger{color:var(--danger);background:0 0;border:1px solid #e06b6b66}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.error{color:var(--danger);margin-top:10px;font-size:.92rem}.success{color:var(--ok);font-size:.92rem}.login-wrap{background:linear-gradient(135deg, var(--navy) 0%, var(--navy-2) 48%, var(--pj-primary) 135%);color:#fff;place-items:center;min-height:100vh;padding:24px;display:grid}.login-wrap .muted{color:#c3d4e8}.login-stack{flex-direction:column;align-items:center;gap:18px;width:min(420px,100%);display:flex}.login-stack .logo{height:48px}.login-card{width:100%;color:var(--ink);border:1px solid var(--line);background:#fff;border-radius:18px;padding:28px;box-shadow:0 4px 10px #08172b17,0 22px 55px #08172b24}.login-card h1{letter-spacing:-.02em;margin:0 0 8px;font-size:1.6rem}.login-card p{color:var(--muted);margin:0 0 22px}.login-card form{flex-direction:column;gap:12px;display:flex}.table{border-collapse:collapse;width:100%;font-size:.92rem}.table th,.table td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:10px 8px}.table th{color:var(--muted);font-weight:500}.table input{border:1px solid var(--line-2);width:100%;min-width:140px;color:var(--ink);background:#fff;border-radius:10px;padding:8px 10px}.th-sort{color:inherit;font:inherit;cursor:pointer;text-align:left;background:0 0;border:none;padding:0;font-weight:500}.th-sort:hover{color:var(--ink)}.table tr.row-active td{background:#7158f714}.btn.btn-sm{border-radius:8px;padding:6px 10px;font-size:.8rem}.badge{border:1px solid var(--line);font-size:.78rem;font-family:var(--mono);border-radius:999px;padding:2px 8px;display:inline-block}.badge.ok{color:var(--ok);border-color:#12a15066}.badge.warn{color:var(--warn);border-color:#e0a45c66}.badge.err{color:var(--danger);border-color:#e06b6b66}.transcript-box{white-space:pre-wrap;background:var(--bg0);border:1px solid var(--line);border-radius:12px;max-height:480px;padding:14px;font-size:.95rem;line-height:1.55;overflow:auto}.mono{font-family:var(--mono);font-size:.85rem}.muted{color:var(--muted)}.utterance{margin-bottom:12px}.utterance .who{color:var(--accent-dim);font-weight:600}.utterance .time{color:var(--muted);font-family:var(--mono);margin-right:8px;font-size:.8rem}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;display:flex}.page-head h1{letter-spacing:-.02em;margin:0;font-size:1.5rem}.page-head .sub{color:var(--muted);margin:4px 0 0;font-size:.95rem}.crumb{color:var(--muted);margin-bottom:6px;font-size:.88rem;display:inline-block}.crumb:hover{color:var(--accent-dim)}.user-chip{color:#c3d4e8;align-self:center;margin-right:4px;font-size:.85rem}.panel h3{margin:18px 0 8px;font-size:.98rem}.panel-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.spread{justify-content:space-between}.grid-3{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;display:grid}.card{border:1px solid var(--line);background:#fff;border-radius:12px;flex-direction:column;gap:8px;padding:16px;display:flex}a.card:hover{border-color:var(--accent);box-shadow:var(--shadow)}.card h3{margin:0;font-size:1.02rem}.card .meta{color:var(--muted);font-size:.85rem}.stat{border:1px solid var(--line);background:#fff;border-radius:12px;padding:14px 16px}.stat .num{letter-spacing:-.02em;font-size:1.7rem;font-weight:700}.stat .lbl{color:var(--muted);font-size:.85rem}.stats{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin-bottom:18px;display:grid}.badge{font-family:var(--font);white-space:nowrap}.badge.info{color:var(--accent-dim);border-color:#7158f766}.badge.neutral{color:var(--muted)}.notice{border:1px solid var(--line);background:var(--bg0);border-radius:10px;margin-bottom:12px;padding:10px 12px;font-size:.92rem}.notice.ok{background:#12a15012;border-color:#12a15059}.notice.warn{background:#b86e0812;border-color:#b86e0859}.notice.err{background:#c4232c0f;border-color:#c4232c59}.notice ul{margin:6px 0 0;padding-left:18px}.tabs{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.tabs button{border:1px solid var(--line-2);color:var(--muted);cursor:pointer;background:#fff;border-radius:999px;padding:7px 12px;font-size:.88rem}.tabs button.active{background:var(--accent);border-color:var(--accent);color:#fff}.stack{flex-direction:column;gap:12px;display:flex}.item{border-bottom:1px solid var(--line);align-items:flex-start;gap:10px;padding:10px 0;display:flex}.item:last-child{border-bottom:none}.item input[type=checkbox]{accent-color:var(--accent);flex:none;width:16px;height:16px;margin-top:4px}.item .body{flex:1;min-width:0}.item .title{font-weight:600}.item .desc{color:var(--muted);margin-top:2px;font-size:.88rem}.item.off .body{opacity:.45;text-decoration:line-through}.stages{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.stage{border:1px solid var(--line-2);background:var(--bg0);border-radius:8px;padding:5px 9px;font-size:.85rem}.stage small{color:var(--muted);margin-left:6px}.stage.create{background:#12a1500f;border-color:#12a15073}.stage.rename{background:#b86e080f;border-color:#b86e0873}.step{border-bottom:1px solid var(--line);align-items:flex-start;gap:10px;padding:9px 0;display:flex}.step:last-child{border-bottom:none}.step .dot{background:var(--line-2);border-radius:50%;flex:none;width:10px;height:10px;margin-top:6px}.step.st-done .dot{background:var(--ok)}.step.st-error .dot{background:var(--danger)}.step.st-running .dot{background:var(--accent);animation:1s ease-in-out infinite pulse}.step.st-manual .dot{background:var(--warn)}@keyframes pulse{50%{opacity:.3}}.step .body{flex:1;min-width:0}.step .note{color:var(--muted);font-size:.86rem}.step .err{color:var(--danger);font-size:.86rem}.step .warn{color:var(--warn);font-size:.86rem}.tree{font-size:.9rem;line-height:1.5}.tree ul{border-left:1px dashed var(--line-2);margin:0;padding-left:18px;list-style:none}.tree>ul{border-left:none;padding-left:0}.tree li{padding:3px 0}.tree .kind{text-transform:uppercase;letter-spacing:.04em;color:var(--accent-dim);border:1px solid #7158f759;border-radius:6px;margin-right:6px;padding:0 6px;font-size:.72rem;display:inline-block}.tree .txt{white-space:pre-wrap}.doc{white-space:pre-wrap;background:var(--bg0);border:1px solid var(--line);max-height:420px;font-size:.88rem;line-height:1.5;font-family:var(--mono);border-radius:12px;padding:14px;overflow:auto}details.fold{border:1px solid var(--line);border-radius:12px;margin-top:10px;padding:10px 14px}details.fold>summary{cursor:pointer;font-weight:600}details.fold[open]>summary{margin-bottom:10px}.secret-box{font-family:var(--mono);background:var(--bg0);border:1px dashed var(--accent);border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;display:flex}.empty{color:var(--muted);text-align:center;padding:26px 10px}.spinner{border:2px solid var(--line-2);border-top-color:var(--accent);vertical-align:-3px;border-radius:50%;width:16px;height:16px;margin-right:8px;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.table-wrap{overflow-x:auto}.table select{border:1px solid var(--line-2);color:var(--ink);background:#fff;border-radius:8px;padding:6px 8px}.btn.ghost{color:var(--accent-dim);background:0 0;border:1px solid #0000;padding-left:6px;padding-right:6px}.btn.ghost:hover{border-color:var(--line-2)}.sticky-actions{z-index:5;border-color:var(--accent);position:sticky;bottom:12px}
