:root{--bg: #09090b;--bg-raised: #101014;--bg-hover: #18181d;--border: #232329;--border-strong: #2e2e35;--text: #ececef;--text-2: #a1a1aa;--text-3: #62626b;--ok: #4ade80;--warn: #fbbf24;--err: #f87171;--run: #fbbf24;--radius: 10px;--font: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif}*{box-sizing:border-box;margin:0}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:13px;line-height:1.45;-webkit-font-smoothing:antialiased;letter-spacing:-.01em;overflow:hidden}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#2a2a31;border-radius:4px}::-webkit-scrollbar-track{background:transparent}::selection{background:#e4e4e72e}button,input,select,textarea{font-family:inherit;font-size:inherit}input,textarea,select{background:var(--bg-raised);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:7px 10px;outline:none;transition:border-color .12s;-webkit-appearance:none;-moz-appearance:none;appearance:none}input:focus,textarea:focus,select:focus{border-color:var(--border-strong)}input::placeholder,textarea::placeholder{color:var(--text-3)}select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%2362626b' fill='none' stroke-width='1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;padding-right:26px;cursor:pointer}button{background:var(--bg-raised);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:6px 12px;cursor:pointer;transition:background .12s,border-color .12s;font-weight:500;white-space:nowrap}button:hover{background:var(--bg-hover);border-color:var(--border-strong)}button:disabled{opacity:.45;cursor:default}button.ghost{background:transparent;border-color:transparent;color:var(--text-2)}button.ghost:hover{background:var(--bg-hover);color:var(--text)}button.ghost.full{width:100%;margin-top:8px}button.danger{color:var(--err)}button.danger:hover{border-color:#f8717159;background:#f871710f}button.mini{font-size:11.5px;padding:3px 9px}.app{display:flex;flex-direction:column;height:100vh}.navbar{display:flex;align-items:center;gap:16px;padding:0 16px;height:48px;flex-shrink:0;border-bottom:1px solid var(--border);background:#09090bd9}.logo{font-weight:600;font-size:13.5px;letter-spacing:-.02em}.views{display:flex;gap:2px;flex:1}.views button{background:transparent;border:none;color:var(--text-3);padding:6px 11px;border-radius:7px;font-weight:500}.views button:hover,.views button.active{color:var(--text);background:var(--bg-hover)}.clock{font-size:12px;color:var(--text-3);font-variant-numeric:tabular-nums}.main{display:grid;grid-template-columns:268px 1fr 320px;flex:1;min-height:0}.left,.right{display:flex;flex-direction:column;gap:10px;padding:12px;overflow-y:auto;min-width:0;overflow-x:hidden}.scene{position:relative;min-width:0;border-left:1px solid var(--border);border-right:1px solid var(--border);overflow:hidden}.panel.grow{display:flex;flex-direction:column;min-height:0;flex:1}.panel.grow .task-list,.panel.grow .activity{flex:1}.panel{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius);padding:14px}.panel-title{display:flex;justify-content:space-between;align-items:center;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-2);margin-bottom:10px}.badge{font-size:10px;font-weight:500;color:var(--text-3);border:1px solid var(--border);padding:1px 6px;border-radius:5px;letter-spacing:0}.stat{display:flex;justify-content:space-between;padding:4px 0;font-variant-numeric:tabular-nums;font-size:12.5px}.stat span{color:var(--text-2)}.stat b{font-weight:500}.bar{height:3px;background:#1c1c22;border-radius:2px;overflow:hidden;margin:3px 0 8px}.bar>div{height:100%;background:var(--text-2);border-radius:2px;transition:width .4s ease}.member-wrap{border-bottom:1px solid #1a1a20}.member-wrap:last-of-type{border-bottom:none}.member{display:flex;align-items:center;gap:10px;padding:7px 0;cursor:pointer}.dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.dot.pulse{animation:pulse 2.4s ease infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.45}}.member-info{flex:1;min-width:0}.member-info b{font-weight:500;font-size:13px}.member-info small{display:block;color:var(--text-3);font-size:11.5px}.member-stats{display:flex;gap:4px}.chip{font-style:normal;font-size:10px;color:var(--text-2);border:1px solid var(--border);border-radius:5px;padding:1px 5px;font-variant-numeric:tabular-nums}.chip.run{color:var(--run);border-color:#fbbf2440}.member-detail{font-size:11.5px;color:var(--text-3);padding:2px 0 10px 17px;display:flex;flex-direction:column;gap:6px}.member-detail code,.modal-meta code{background:var(--bg-hover);padding:1px 5px;border-radius:4px;font-size:11px;font-family:ui-monospace,monospace}.row-actions{display:flex;gap:6px;flex-wrap:wrap}.row-actions button{font-size:11.5px;padding:3px 9px}.task-form{display:flex;gap:6px}.task-form.col{flex-direction:column}.task-form.row{flex-direction:row}.task-form.row>*{min-width:0;flex:1}.task-form.row>button{flex:0 0 auto}.task-form textarea{resize:vertical}.filters{display:flex;gap:2px;margin:10px 0 8px;background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:2px}.filters button{flex:1;background:transparent;border:none;color:var(--text-3);font-size:11px;padding:4px;border-radius:6px}.filters button:hover{color:var(--text-2)}.filters button.active{color:var(--text);background:var(--bg-hover)}.filters small{opacity:.55;margin-left:2px}.task-list{display:flex;flex-direction:column;gap:6px;overflow-y:auto;min-height:0}.task{border:1px solid var(--border);border-radius:8px;padding:9px 11px;cursor:pointer;transition:background .12s,border-color .12s;background:var(--bg)}.task:hover{background:var(--bg-hover);border-color:var(--border-strong)}.task.running{border-color:#fbbf2447}.task.done{opacity:.75}.task.failed{border-color:#f8717140}.task.cancelled{opacity:.5}.task-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.task-title{font-weight:500;font-size:12.5px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-meta{display:flex;gap:5px;align-items:center;flex-shrink:0}.task-sub{font-size:11px;color:var(--text-3);margin-top:3px;font-variant-numeric:tabular-nums}.prio{font-style:normal;font-size:9.5px;font-weight:600;border-radius:4px;padding:1px 5px;letter-spacing:.02em}.prio.p1{color:var(--err);background:#f871711a}.prio.p2{color:var(--text-3);background:var(--bg-hover)}.prio.p3{color:var(--text-3);background:transparent;border:1px solid var(--border)}.spinner{width:9px;height:9px;border:1.5px solid rgba(251,191,36,.25);border-top-color:var(--run);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.empty{color:var(--text-3);font-size:12px;text-align:center;padding:18px 0}.activity{display:flex;flex-direction:column;overflow-y:auto;min-height:0}.act{display:flex;gap:9px;align-items:baseline;padding:5px 0;border-bottom:1px solid #1a1a20;font-size:12px;color:var(--text-2);animation:fadeUp .2s ease}.act:last-child{border-bottom:none}.act-icon{flex-shrink:0;width:14px;text-align:center;color:var(--text-3);font-size:10px}.act b{color:var(--text);font-weight:500}.act.kind-fail{color:var(--err)}.act.kind-done{color:var(--ok)}.act.kind-retry{color:var(--warn)}@keyframes fadeUp{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}.project{display:flex;align-items:center;gap:10px;padding:6px 0;border-bottom:1px solid #1a1a20}.project .bar{flex:1;margin:4px 0}.project small{color:var(--text-3);font-size:11px}.project code{font-size:11px;font-family:ui-monospace,monospace}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#0009;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:24px;animation:fadeUp .15s ease}.modal{background:var(--bg-raised);border:1px solid var(--border-strong);border-radius:14px;padding:18px;width:min(640px,100%);max-height:82vh;overflow-y:auto;box-shadow:0 24px 64px #00000080}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.modal-head b{font-weight:600}.modal-meta{font-size:12px;color:var(--text-3);margin-bottom:10px}.modal-label{font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);margin:14px 0 5px;font-weight:600}.modal-pre{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:10px 12px;font-size:12px;font-family:ui-monospace,SF Mono,monospace;white-space:pre-wrap;word-break:break-word;max-height:220px;overflow-y:auto;margin:0}.modal-pre.log{color:var(--text-2)}.modal-pre.result{color:var(--ok)}.modal-pre.err-pre{color:var(--err)}.board-wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:12px;height:calc(100vh - 48px);overflow-y:auto}.board-wrap.team-wrap,.board-wrap.metrics-wrap{grid-template-columns:1fr 1fr;align-content:start}.settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:10px;padding:12px;overflow-y:auto;height:calc(100vh - 48px);align-content:start}.board-col{display:flex;flex-direction:column;gap:6px;min-width:0}.board-col .task{flex-shrink:0}.board-head{text-transform:uppercase;letter-spacing:.06em;font-size:10.5px;font-weight:600;color:var(--text-3);padding:2px 4px 8px}.board-head small{font-weight:400}.settings-form{display:flex;flex-direction:column;gap:8px}.settings-form .check{display:flex;gap:8px;align-items:center;font-size:12.5px;color:var(--text-2);cursor:pointer}.settings-form .check input{accent-color:var(--text)}.settings-form .ok{color:var(--ok);font-size:12px}.seg{display:flex;gap:2px;background:var(--bg);border:1px solid var(--border);border-radius:7px;padding:2px}.seg button{background:transparent;border:none;color:var(--text-3);font-size:10.5px;padding:2px 9px;border-radius:5px}.seg button.active{color:var(--text);background:var(--bg-hover)}.chart{width:100%;height:auto;background:var(--bg);border-radius:8px;border:1px solid var(--border)}.login-wrap{height:100vh;display:flex;align-items:center;justify-content:center}.login-card{width:320px;padding:32px 28px;background:var(--bg-raised);border:1px solid var(--border);border-radius:16px;display:flex;flex-direction:column;gap:12px}.login-card h1{margin:0 0 8px;font-size:16px;font-weight:600;letter-spacing:-.03em;text-align:center}.login-card input{padding:9px 12px}.login-card button{padding:9px;background:var(--text);color:var(--bg);border:none;font-weight:600}.login-card button:hover{background:#fff}.err{color:var(--err);font-size:12px;text-align:center}.scene-controls{position:absolute;bottom:14px;left:50%;transform:translate(-50%);display:flex;gap:2px;background:#101014e6;border:1px solid var(--border);border-radius:9px;padding:3px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:10}.scene-controls button{background:transparent;border:none;color:var(--text-3);font-size:12px;padding:5px 11px;border-radius:6px}.scene-controls button:hover{color:var(--text)}.scene-controls button.active{color:var(--text);background:var(--bg-hover)}
