:root{--bg: #f4f6f8;--panel: #ffffff;--line: #e2e6ea;--ink: #1f2733;--muted: #6b7683;--accent: #2563eb;--accent-ink: #fff;--st-waiting_input: #9aa5b1;--st-waiting_external: #7c3aed;--st-processing: #2563eb;--st-awaiting_verification: #d97706;--st-needs_rework: #dc2626;--st-done: #16a34a}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--ink);background:var(--bg);font-size:14px}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.topbar{display:flex;align-items:center;gap:16px;padding:10px 20px;background:var(--panel);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}.topbar .brand{font-weight:700;font-size:16px}.topbar .spacer{flex:1}.topbar .actor{display:flex;align-items:center;gap:8px}.topbar .actor input{padding:6px 10px;border:1px solid var(--line);border-radius:6px;min-width:200px}.shell{display:flex;align-items:stretch;min-height:calc(100vh - 53px)}.page{flex:1;min-width:0;padding:20px}.crumbs{color:var(--muted);margin-bottom:12px}.sidebar{flex:0 0 200px;background:var(--panel);border-right:1px solid var(--line);padding:8px;transition:flex-basis .15s ease}.sidebar.collapsed{flex-basis:56px}.sb-head{display:flex;justify-content:flex-end}.sidebar.collapsed .sb-head{justify-content:center}.sb-toggle{width:30px;height:30px;padding:0;line-height:1;border-radius:8px;color:var(--muted)}.sb-nav{display:flex;flex-direction:column;gap:4px;margin-top:8px}.sb-item{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:8px;color:var(--ink);white-space:nowrap;overflow:hidden}.sb-item:hover{background:#eef1f4;text-decoration:none}.sb-item.active{background:#e7effe;color:var(--accent);font-weight:600}.sb-icon{flex:0 0 20px;width:20px;text-align:center;font-size:16px}.sidebar.collapsed .sb-label{display:none}.sidebar.collapsed .sb-item{justify-content:center;gap:0;padding:9px 0}button{font:inherit;cursor:pointer;border:1px solid var(--line);background:#fff;padding:7px 12px;border-radius:6px;color:var(--ink)}button:hover{border-color:#c7ced6}button.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}button.primary:hover{background:#1d4fd8}button:disabled{opacity:.5;cursor:not-allowed}input,select{font:inherit;padding:7px 10px;border:1px solid var(--line);border-radius:6px;background:#fff}label.field{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}label.field>span{font-weight:600}.row{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end}.warn{color:#b45309;background:#fffbeb;border:1px solid #fde68a;padding:8px 10px;border-radius:6px}.err{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;padding:8px 10px;border-radius:6px}.okbox{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0;padding:8px 10px;border-radius:6px}.muted{color:var(--muted)}.card-box{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:16px}.plist{display:grid;gap:10px;max-width:720px}.pitem{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;background:var(--panel);border:1px solid var(--line);border-radius:10px}.pitem:hover{border-color:var(--accent)}.counter{display:inline-flex;gap:6px;align-items:center;font-weight:600;background:var(--panel);border:1px solid var(--line);border-radius:20px;padding:6px 14px;margin-bottom:14px}.board{display:flex;gap:12px;overflow-x:auto;padding-bottom:12px;align-items:flex-start}.column{flex:0 0 220px;background:#eef1f4;border-radius:10px;padding:8px;min-height:120px}.column h3{font-size:12px;margin:4px 6px 10px;color:var(--muted);text-transform:uppercase;letter-spacing:.3px}.column .num{color:#aab3bd;font-weight:700;margin-right:4px}.bcard{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:10px;margin-bottom:8px;cursor:pointer;display:block;width:100%;text-align:left}.bcard:hover{border-color:var(--accent)}.bcard .title{font-weight:600;margin-bottom:6px}.bcard .meta{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:12px}.dot{width:8px;height:8px;border-radius:50%;display:inline-block}.dot.alert{background:var(--st-needs_rework)}.progress{font-variant-numeric:tabular-nums}.chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.chip{border:1px solid var(--line);border-radius:8px;padding:8px 12px;background:#fff;cursor:pointer;display:flex;flex-direction:column;gap:4px;min-width:130px}.chip.sel{outline:2px solid var(--accent)}.chip .cname{font-weight:600}.chip .cstate{font-size:12px;display:inline-flex;align-items:center;gap:5px}.chip .cstate:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--sc);display:inline-block}.badge{display:inline-flex;align-items:center;gap:5px;font-size:12px;padding:2px 8px;border-radius:12px;color:#fff}.panel{display:grid;grid-template-columns:1fr;gap:16px}.io{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.io .box{background:#f8fafc;border:1px solid var(--line);border-radius:8px;padding:10px}.io .box h4{margin:0 0 6px;font-size:11px;color:var(--muted);text-transform:uppercase}.osv-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:8px}table.osv{border-collapse:collapse;width:100%;font-size:13px}table.osv th,table.osv td{border-bottom:1px solid var(--line);padding:5px 8px;text-align:right;white-space:nowrap}table.osv th{background:#f1f5f9;position:sticky;top:0;font-size:11px;color:var(--muted)}table.osv td.acc,table.osv td.nm,table.osv th.acc,table.osv th.nm{text-align:left}table.osv tr.sub td.acc{padding-left:26px;color:var(--muted)}table.osv tr.total td{font-weight:700;background:#f8fafc;border-top:2px solid #cbd5e1}table.osv tr.parent{cursor:pointer}table.osv tr.parent td.acc:before{content:"▸ ";color:#94a3b8}table.osv tr.parent.open td.acc:before{content:"▾ "}.journal{display:grid;gap:6px}.jrow{display:grid;grid-template-columns:150px 1fr auto;gap:10px;padding:6px 0;border-bottom:1px solid var(--line);font-size:13px}.jrow .who{color:var(--muted)}.jrow .when{color:var(--muted);font-variant-numeric:tabular-nums}.drop{border:2px dashed #cbd5e1;border-radius:10px;padding:24px;text-align:center;color:var(--muted);background:#f8fafc}
