:root{--bg:#0b1120;--surface:#111a2e;--surface-2:#17223a;--surface-3:#1f2c47;--border:#26324a;--border-strong:#3a4865;--fg:#f1f5f9;--fg-2:#cbd5e1;--muted:#8b9ab3;--accent:#22c55e;--accent-fg:#052e16;--accent-soft:#22c55e24;--info:#60a5fa;--info-soft:#60a5fa24;--warn:#f59e0b;--warn-soft:#f59e0b24;--danger:#f87171;--danger-soft:#f8717124;--ring:#93c5fd;--shadow:0 8px 30px #00000059;--radius:10px;--radius-sm:7px;--font:"Vazirmatn", system-ui, sans-serif;--mono:"JetBrains Mono", ui-monospace, Menlo, monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=light]{--bg:#f4f6fa;--surface:#fff;--surface-2:#f1f4f9;--surface-3:#e6ebf3;--border:#dde3ec;--border-strong:#c3ccd9;--fg:#0f172a;--fg-2:#334155;--muted:#5b6b82;--accent:#15803d;--accent-fg:#fff;--accent-soft:#15803d1a;--info:#1d4ed8;--info-soft:#1d4ed814;--warn:#b45309;--warn-soft:#b453091a;--danger:#b91c1c;--danger-soft:#b91c1c14;--ring:#2563eb;--shadow:0 8px 30px #0f172a1f;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--fg);font:15px/1.6 var(--font);-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.mono{font-family:var(--mono);direction:ltr;unicode-bidi:isolate;font-size:.86em}.muted{color:var(--muted)}.icon{stroke:currentColor;fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:18px;height:18px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.topbar{z-index:20;background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);position:sticky;top:0}.topbar-inner{flex-wrap:wrap;align-items:center;gap:14px;max-width:1500px;margin:0 auto;padding:12px 24px;display:flex}.brand{align-items:center;gap:10px;margin-inline-end:8px;font-size:17px;font-weight:700;display:flex}.brand-mark{background:var(--accent);width:30px;height:30px;color:var(--accent-fg);border-radius:8px;place-items:center;display:grid}.tabs{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);gap:2px;padding:3px;display:flex}.tab{border-radius:var(--radius-sm);cursor:pointer;color:var(--muted);background:0 0;border:0;align-items:center;gap:6px;min-height:36px;padding:6px 14px;transition:background .15s,color .15s;display:flex}.tab:hover{color:var(--fg)}.tab[aria-selected=true]{background:var(--surface-3);color:var(--fg);font-weight:600}.count{background:var(--surface-3);min-width:20px;color:var(--fg-2);text-align:center;border-radius:99px;padding:0 6px;font-size:12px}.tab[aria-selected=true] .count{background:var(--accent);color:var(--accent-fg)}.search{position:relative}.search .icon{inset-inline-start:10px;color:var(--muted);pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.search input{width:240px;padding-inline-start:36px}.input,input[type=text],input[type=url],input[type=search],select,textarea{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);min-height:38px;padding:7px 10px;transition:border-color .15s}input:hover,select:hover,textarea:hover{border-color:var(--border-strong)}textarea{resize:vertical;width:100%;min-height:70px}.btn{border:1px solid var(--border);background:var(--surface);border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;align-items:center;gap:6px;min-height:38px;padding:6px 12px;transition:background .15s,border-color .15s,transform .1s;display:inline-flex}.btn:hover{background:var(--surface-2);border-color:var(--border-strong)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary:hover{filter:brightness(1.08)}.btn.danger{color:var(--danger)}.btn.danger:hover{background:var(--danger-soft)}.btn.icon-only{justify-content:center;width:38px;padding:0}.check{cursor:pointer;color:var(--fg-2);-webkit-user-select:none;user-select:none;align-items:center;gap:6px;font-size:14px;display:inline-flex}.check input{width:16px;height:16px;accent-color:var(--accent)}main{max-width:1500px;margin:0 auto;padding:20px 24px 60px}.stats{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:22px;display:grid}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);text-align:start;cursor:pointer;flex-direction:column;gap:2px;padding:12px 14px;transition:border-color .15s;display:flex}.stat:hover{border-color:var(--border-strong)}.stat b{font-size:24px;font-weight:700;line-height:1.2}.stat span{color:var(--muted);font-size:13px}.stat.warn b{color:var(--warn)}.stat.danger b{color:var(--danger)}.stat.ok b{color:var(--accent)}.stat.info b{color:var(--info)}.group{margin-bottom:26px}.group-head{align-items:baseline;gap:10px;margin:0 0 10px;display:flex}.group-head h2{margin:0;font-size:16px}.grid{grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:12px;display:grid}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:10px;min-width:0;padding:14px;transition:border-color .15s,box-shadow .15s;display:flex}.card:hover{border-color:var(--border-strong);box-shadow:var(--shadow)}.card-head{align-items:flex-start;gap:8px;display:flex}.card-title{text-align:start;cursor:pointer;background:0 0;border:0;flex:1;min-width:0;padding:0}.card-title strong{text-overflow:ellipsis;white-space:nowrap;font-size:15.5px;display:block;overflow:hidden}.card-title strong:hover{color:var(--accent)}.card-title small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;display:block;overflow:hidden}.chips{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.chip{background:var(--surface-3);color:var(--fg-2);white-space:nowrap;border-radius:99px;align-items:center;gap:4px;padding:1px 8px;font-size:12px;line-height:1.7;display:inline-flex}.chip .icon{width:13px;height:13px}.chip.ok{background:var(--accent-soft);color:var(--accent)}.chip.warn{background:var(--warn-soft);color:var(--warn)}.chip.danger{background:var(--danger-soft);color:var(--danger)}.chip.info{background:var(--info-soft);color:var(--info)}.commit{color:var(--fg-2);align-items:baseline;gap:8px;min-width:0;font-size:13px;display:flex}.commit .subj{text-overflow:ellipsis;white-space:nowrap;direction:auto;text-align:start;unicode-bidi:plaintext;flex:1;overflow:hidden}.card-foot{border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:6px;margin-top:auto;padding-top:10px;display:flex}.run-select{max-width:160px;min-height:32px;padding:3px 8px;font-size:13px}.dot{background:var(--muted);border-radius:50%;flex:none;width:8px;height:8px;display:inline-block}.dot.ok{background:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.dot.bad{background:var(--danger);box-shadow:0 0 0 3px var(--danger-soft)}.dot.run{background:var(--info);animation:1.6s infinite pulse}@keyframes pulse{50%{opacity:.35}}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;display:flex}.kanban{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:14px;display:grid}.col{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-height:200px;padding:12px}.col.drop{border-color:var(--accent);background:var(--accent-soft)}.col h3{align-items:center;gap:8px;margin:0 0 10px;font-size:14px;display:flex}.task{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:grab;margin-bottom:8px;padding:10px;transition:border-color .15s}.task:hover{border-color:var(--border-strong)}.task.dragging{opacity:.5}.task-title{word-break:break-word;margin-bottom:6px;font-weight:500}.task.done .task-title{color:var(--muted);text-decoration:line-through}.task-actions{justify-content:flex-end;gap:4px;margin-top:8px;display:flex}.prio-high{border-inline-start:3px solid var(--danger)}.prio-mid{border-inline-start:3px solid var(--warn)}.prio-low{border-inline-start:3px solid var(--border-strong)}.empty{color:var(--muted);text-align:center;padding:26px 10px;font-size:14px}.table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);position:relative;overflow:auto}table{border-collapse:collapse;width:100%;font-size:14px}th,td{text-align:start;border-bottom:1px solid var(--border);white-space:nowrap;padding:10px 14px}th{color:var(--muted);background:var(--surface-2);font-size:13px;font-weight:500}tr:last-child td{border-bottom:0}.procs{grid-template-columns:360px minmax(0,1fr);align-items:start;gap:14px;display:grid}.proc{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;text-align:start;width:100%;margin-bottom:8px;padding:10px 12px;transition:border-color .15s;display:block}.proc:hover{border-color:var(--border-strong)}.proc[aria-current=true]{border-color:var(--accent)}.logbox{color:#d1d9e6;border:1px solid var(--border);border-radius:var(--radius);height:68vh;font:12.5px/1.55 var(--mono);text-align:left;white-space:pre-wrap;word-break:break-all;direction:ltr;background:#05080f;margin:0;padding:12px 14px;overflow:auto}dialog{color:var(--fg);background:0 0;border:0;max-width:none;max-height:none;padding:0}dialog::backdrop{background:#0206178c}.drawer{background:var(--surface);border-inline-start:1px solid var(--border);width:min(640px,100vw);height:100vh;box-shadow:var(--shadow);margin:0;position:fixed;inset:0 0 0 auto;overflow:auto}dialog.drawer[open]{animation:.2s ease-out slide}@keyframes slide{0%{opacity:0;transform:translate(30px)}}.drawer-head{background:var(--surface);border-bottom:1px solid var(--border);z-index:1;align-items:flex-start;gap:10px;padding:16px 20px;display:flex;position:sticky;top:0}.drawer-head h2{margin:0;font-size:18px}.drawer-body{flex-direction:column;gap:22px;padding:18px 20px 40px;display:flex}.section h3{color:var(--fg-2);align-items:center;gap:8px;margin:0 0 10px;font-size:14px;display:flex}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.row>input[type=text],.row>input[type=url]{flex:1;min-width:140px}.list-item{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);align-items:center;gap:10px;margin-bottom:6px;padding:8px 10px;display:flex}.list-item .grow{text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.modal{background:var(--surface);border:1px solid var(--border);width:min(520px,100vw - 32px);height:fit-content;box-shadow:var(--shadow);border-radius:14px;margin:auto;position:fixed;inset:0}.modal form{flex-direction:column;gap:12px;padding:20px;display:flex}.field{flex-direction:column;gap:4px;display:flex}.field label{color:var(--fg-2);font-size:13px;font-weight:500}.field .hint{color:var(--muted);font-size:12px}.field .err{color:var(--danger);min-height:0;font-size:12px}.field-row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.modal-actions{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.toast{bottom:20px;z-index:100;background:var(--surface-3);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow);max-width:420px;padding:10px 16px;animation:.2s slide;position:fixed;inset-inline-start:20px}.toast.err{border-color:var(--danger)}.loading{color:var(--muted);text-align:center;padding:40px}@media (max-width:900px){.kanban,.procs{grid-template-columns:1fr}.topbar-inner,main{padding-inline:16px}.search input{width:100%}.search{flex:100%;order:10}.grid{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.app{grid-template-columns:260px minmax(0,1fr);min-height:100vh;display:grid}.side{background:var(--surface);border-inline-end:1px solid var(--border);flex-direction:column;gap:6px;height:100vh;padding:16px 12px;display:flex;position:sticky;top:0;overflow:auto}.side .brand{padding:4px 8px 14px}.nav-item{border-radius:var(--radius-sm);cursor:pointer;text-align:start;width:100%;color:var(--fg-2);background:0 0;border:0;align-items:center;gap:10px;min-height:42px;padding:9px 10px;transition:background .15s;display:flex}.nav-item:hover{background:var(--surface-2);color:var(--fg)}.nav-item[aria-current=true]{background:var(--surface-3);color:var(--fg);font-weight:600}.nav-item .grow{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.side-label{color:var(--muted);padding:12px 10px 4px;font-size:12px}.swatch{border-radius:3px;flex:none;width:10px;height:10px}.score-pill{text-align:center;border-radius:99px;min-width:30px;padding:0 7px;font-size:12px;font-weight:700}.s-good{background:var(--accent-soft);color:var(--accent)}.s-mid{background:var(--warn-soft);color:var(--warn)}.s-bad{background:var(--danger-soft);color:var(--danger)}.s-none{background:var(--surface-3);color:var(--muted)}.content{min-width:0}.page-head{border-bottom:1px solid var(--border);background:color-mix(in srgb, var(--bg) 90%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:5;flex-wrap:wrap;align-items:center;gap:14px;padding:18px 28px;display:flex;position:sticky;top:0}.page-head h1{margin:0;font-size:20px}.content main{max-width:1400px;padding:20px 28px 60px}.ptabs{gap:2px;display:flex;overflow-x:auto}.ptab{border-radius:var(--radius-sm);cursor:pointer;color:var(--muted);white-space:nowrap;background:0 0;border:0;min-height:38px;padding:8px 14px}.ptab:hover{color:var(--fg);background:var(--surface-2)}.ptab[aria-selected=true]{color:var(--fg);background:var(--surface-3);font-weight:600}.ov-grid{grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:14px;display:grid}.ov-card{background:var(--surface);border:1px solid var(--border);cursor:pointer;text-align:start;border-radius:14px;flex-direction:column;gap:14px;padding:16px;transition:border-color .15s,box-shadow .15s;display:flex}.ov-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow)}.ov-top{align-items:center;gap:14px;display:flex}.ring{--v:0;--c:var(--accent);background:conic-gradient(var(--c) calc(var(--v) * 1%), var(--surface-3) 0);border-radius:50%;flex:none;place-items:center;width:64px;height:64px;display:grid}.ring span{background:var(--surface);border-radius:50%;place-items:center;width:50px;height:50px;font-size:17px;font-weight:700;display:grid}.ring.big{width:104px;height:104px}.ring.big span{width:84px;height:84px;font-size:28px}.kv{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.kv div{background:var(--surface-2);border-radius:var(--radius-sm);padding:8px 10px}.kv b{font-size:17px;display:block}.kv span{color:var(--muted);font-size:12px}.delta-up{color:var(--accent);font-size:12px}.delta-down{color:var(--danger);font-size:12px}.panel{background:var(--surface);border:1px solid var(--border);border-radius:14px;min-width:0;padding:16px}.panel h3{align-items:center;gap:8px;margin:0 0 12px;font-size:15px;display:flex}.panel h3 .spacer{flex:1}.dash{grid-template-columns:repeat(12,minmax(0,1fr));gap:14px;display:grid}.c3{grid-column:span 3}.c4{grid-column:span 4}.c6{grid-column:span 6}.c8{grid-column:span 8}.c12{grid-column:span 12}.chart{width:100%;height:180px;display:block}.chart text{fill:var(--muted);font-size:10px;font-family:var(--font)}.chart .grid line{stroke:var(--border)}.legend{color:var(--muted);gap:14px;margin-top:6px;font-size:12px;display:flex}.legend i{vertical-align:middle;border-radius:2px;width:10px;height:3px;margin-inline-end:4px;display:inline-block}.uptime-bar{align-items:stretch;gap:2px;height:28px;display:flex}.uptime-bar i{background:var(--accent);opacity:.85;border-radius:2px;flex:1}.uptime-bar i.bad{background:var(--danger)}.uptime-bar i.none{background:var(--surface-3)}.sev{white-space:nowrap;border-radius:99px;padding:1px 8px;font-size:12px;font-weight:600}.sev.critical{background:var(--danger-soft);color:var(--danger)}.sev.warning{background:var(--warn-soft);color:var(--warn)}.sev.info{background:var(--info-soft);color:var(--info)}.issue-group{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);margin-bottom:10px;overflow:hidden}.issue-group summary{cursor:pointer;align-items:center;gap:10px;padding:12px 14px;list-style:none;display:flex}.issue-group summary::-webkit-details-marker{display:none}.issue-group summary:hover{background:var(--surface-2)}.issue-group .fix{color:var(--muted);padding:0 14px 10px;font-size:13px}.issue-row{border-top:1px solid var(--border);align-items:center;gap:10px;padding:7px 14px;font-size:13px;display:flex}.issue-row .u{text-align:left;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-family:var(--mono);direction:ltr;flex:1;font-size:12px;overflow:hidden}.issue-row a{color:inherit}th.sort{cursor:pointer;-webkit-user-select:none;user-select:none}th.sort:hover{color:var(--fg)}td.url{text-align:left;text-overflow:ellipsis;max-width:420px;font-family:var(--mono);direction:ltr;font-size:12px;overflow:hidden}td.num{font-variant-numeric:tabular-nums}.bad-txt{color:var(--danger)}.warn-txt{color:var(--warn)}.ok-txt{color:var(--accent)}.img-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;display:grid}.img-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.img-card img{background:var(--surface-3);aspect-ratio:16/10;object-fit:contain;width:100%;display:block}.img-card .row{padding:8px 10px}.cmp td{white-space:normal;vertical-align:top}.cmp th:first-child,.cmp td:first-child{width:160px;color:var(--muted)}.progress{background:var(--surface-3);border-radius:99px;height:4px;overflow:hidden}.progress i{background:var(--accent);height:100%;transition:width .3s;display:block}.job-box{color:var(--muted);border:1px solid var(--border);border-radius:var(--radius-sm);margin-top:auto;padding:10px;font-size:12px}.form-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.form-grid .full{grid-column:1/-1}.empty-state{text-align:center;color:var(--muted);padding:60px 20px}.empty-state h2{color:var(--fg)}.steps{text-align:start;max-width:640px;margin:0 auto;line-height:2}.steps code{font-family:var(--mono);background:var(--surface-3);direction:ltr;unicode-bidi:isolate;border-radius:5px;padding:1px 6px}@media (max-width:1000px){.app{grid-template-columns:1fr}.side{flex-flow:wrap;height:auto;position:static}.c3,.c4,.c6,.c8{grid-column:span 12}.form-grid{grid-template-columns:1fr}.page-head,.content main{padding-inline:16px}}.ptabs{scrollbar-width:none}.ptabs::-webkit-scrollbar{display:none}:root{--bg:#0d121d;--surface:#141a28;--surface-2:#1a2132;--surface-3:#242d42;--border:#252e42;--border-strong:#3a4560;--fg:#eef1f7;--fg-2:#c3cbdb;--muted:#919db3;--primary:#4f46e5;--primary-fg:#fff;--primary-line:#818cf8;--primary-soft:#818cf824;--ring:#a5b4fc;--radius:10px}:root[data-theme=light]{--bg:#f5f6fa;--surface:#fff;--surface-2:#f3f5f9;--surface-3:#e8ebf2;--border:#e1e5ed;--border-strong:#c7cedb;--fg:#151b2b;--fg-2:#3a4458;--muted:#5d687c;--primary:#4338ca;--primary-line:#4f46e5;--primary-soft:#4f46e517;--ring:#4338ca}body{font-variant-numeric:tabular-nums;font-size:14px;line-height:1.65}a{color:inherit;text-decoration:none}.panel a:not(.btn):not(.proj),.steps a,.page-note a{color:var(--primary-line)}.panel a:not(.btn):not(.proj):hover,.steps a:hover{text-decoration:underline}.ltr{text-align:left;direction:ltr}.spacer{flex:1}h1,h2,h3,h4{font-weight:600}.brand-mark{background:var(--primary);color:var(--primary-fg);border-radius:7px;width:26px;height:26px}.brand-mark .icon{width:15px;height:15px}.brand{padding:2px 8px 12px;font-size:15px}.btn{background:var(--surface);min-height:34px;padding:4px 12px;font-size:13.5px}.btn.sm{min-height:28px;padding:2px 9px;font-size:12.5px}.btn.icon-only{width:34px}.btn.sm.icon-only{width:28px}.btn .icon{width:15px;height:15px}.btn.primary{background:var(--primary);border-color:var(--primary);color:var(--primary-fg);font-weight:500}.btn.danger-solid{color:#fff;background:#dc2626;border-color:#dc2626}.btn.link{color:var(--primary-line);background:0 0;border-color:#0000}.btn.link:hover{background:var(--primary-soft)}.btn:active{transform:none}input[type=text],input[type=url],input[type=search],select,textarea{min-height:34px;padding:5px 10px;font-size:13.5px}input:focus,select:focus,textarea:focus{border-color:var(--primary-line)}input[type=checkbox]{accent-color:var(--primary)}.app{grid-template-columns:236px minmax(0,1fr)}.side{background:var(--surface);gap:2px;padding:14px 10px}.nav-item{min-height:34px;padding:6px 9px;font-size:13.5px}.nav-item .icon{width:16px;height:16px}.nav-item[aria-current=page]{background:var(--primary-soft);color:var(--fg);font-weight:600}.nav-item[aria-current=false]{background:0 0}.side-label{justify-content:space-between;align-items:center;padding:14px 9px 4px;font-size:12px;display:flex}.icon-btn{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;place-items:center;width:24px;height:24px;display:grid}.icon-btn:hover{background:var(--surface-2);color:var(--fg)}.icon-btn .icon{width:14px;height:14px}.search-btn{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);width:100%;min-height:34px;color:var(--muted);cursor:pointer;align-items:center;gap:8px;margin-bottom:8px;padding:5px 9px;font-size:13px;display:flex}.search-btn:hover{border-color:var(--border-strong)}.search-btn .icon{width:15px;height:15px}.search-btn .grow{text-align:start;flex:1}kbd{font:11px var(--mono);border:1px solid var(--border-strong);direction:ltr;border-radius:4px;padding:0 4px}.side-foot{flex-direction:column;gap:2px;margin-top:auto;padding-top:10px;display:flex}.job-box{background:var(--surface-2);border:0;margin:0 0 6px}.job-box:empty{display:none}.score-pill{min-width:26px;padding:0 6px;font-size:11.5px}.dot.warn{background:var(--warn)}.dot.info{background:var(--primary-line)}.swatch.lg{width:12px;height:12px}.page-head{gap:10px;padding:14px 28px 0}.head-title{align-items:center;gap:10px;min-width:0;padding-bottom:12px;display:flex}.head-title h1{font-size:18px}.head-title a,.head-title .muted{font-size:12.5px}.page-head>.btn,.page-head>.chip{margin-bottom:12px}.ptabs{flex-basis:100%;gap:4px;margin-bottom:-1px}.ptab{border-bottom:2px solid #0000;border-radius:0;align-items:center;gap:6px;min-height:0;padding:7px 10px 9px;font-size:13.5px;display:inline-flex;background:0 0!important}.ptab .icon{width:15px;height:15px}.ptab[aria-current=page]{color:var(--fg);border-bottom-color:var(--primary-line);font-weight:600}.content main{padding:20px 28px 60px}.seg{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);flex-wrap:wrap;gap:2px;margin-bottom:14px;padding:2px;display:inline-flex}.seg a,.seg button{cursor:pointer;color:var(--muted);background:0 0;border:0;border-radius:5px;align-items:center;gap:6px;min-height:28px;padding:3px 12px;font-size:13px;display:inline-flex}.seg a:hover,.seg button:hover{color:var(--fg)}.seg [aria-current=page]{background:var(--surface);color:var(--fg);font-weight:600;box-shadow:0 1px 2px #0003}.seg.sm{margin:0}.seg.sm button{min-height:24px;padding:1px 8px;font-size:12px;font-weight:400}.page-note{color:var(--muted);margin-bottom:12px;font-size:13px}.kpis{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:14px;display:grid}.kpis.six{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.kpi{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:2px;min-height:86px;padding:12px 14px;display:flex}.kpi-l{color:var(--muted);font-size:12.5px}.kpi b{font-size:23px;font-weight:600;line-height:1.35}.kpi-x{color:var(--muted);font-size:12px}.kpi.good b{color:var(--accent)}.kpi.warn b{color:var(--warn)}.kpi.bad b{color:var(--danger)}.panel{border-radius:var(--radius);padding:14px 16px}.panel h3{color:var(--fg);margin-bottom:12px;font-size:13.5px}.panel h3 .icon{width:16px;height:16px;color:var(--muted)}.panel h4{margin:14px 0 6px;font-size:13px}.panel.flush{padding:14px 0 0}.panel.flush h3{padding:0 16px}.panel.narrow{max-width:780px;margin-bottom:14px}.head-note{font-size:12.5px;font-weight:400}.dash{gap:12px}.todo{margin:0;padding:0;list-style:none}.todo li{border-top:1px solid var(--border);align-items:center;gap:12px;padding:9px 0;display:flex}.todo li:first-child{border-top:0;padding-top:0}.todo .grow{flex:1;min-width:0}.todo .muted{font-size:12.5px}.todo.compact li{flex-wrap:wrap;gap:6px}.todo.compact .grow{flex-basis:100%}.plain-list{margin:0;padding:0;list-style:none}.plain-list li{border-top:1px solid var(--border);align-items:center;gap:10px;padding:7px 0;display:flex}.plain-list li:first-child{border-top:0}.plain-list .grow{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.banner{border-radius:var(--radius);border:1px solid;align-items:center;gap:10px;margin-bottom:12px;padding:9px 14px;display:flex}.banner.warn{background:var(--warn-soft);border-color:color-mix(in srgb, var(--warn) 40%, transparent)}.banner.warn>.icon{color:var(--warn)}.banner .grow{flex:1}.banner.info{background:var(--accent-soft,var(--panel));border-color:color-mix(in srgb, var(--accent) 40%, transparent)}.spinner{border:2px solid color-mix(in srgb, var(--accent) 30%, transparent);border-top-color:var(--accent);border-radius:50%;flex:none;width:14px;height:14px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner{animation:none}}.empty-inline{text-align:center;color:var(--muted);padding:30px 12px}.empty-inline p{margin:0 0 10px}.empty-state{padding:56px 20px}.empty-state h2{margin:0 0 6px;font-size:16px}.empty-state p{margin:0 0 14px}.ch{grid-template-columns:auto minmax(0,1fr) auto;column-gap:8px;display:grid}.ch-y{color:var(--muted);text-align:right;flex-direction:column;justify-content:space-between;min-width:24px;font-size:11px;display:flex}.ch-plot{position:relative}.ch-plot svg{width:100%;height:100%;display:block;overflow:visible}.ch-grid line{stroke:var(--border)}.ch-line{background:var(--border-strong);pointer-events:none;width:1px;position:absolute;top:0;bottom:0}.ch-line[hidden],.ch-tip[hidden]{display:none}.ch-tip{z-index:3;pointer-events:none;background:var(--surface-3);border:1px solid var(--border-strong);white-space:nowrap;box-shadow:var(--shadow);text-align:right;border-radius:7px;padding:6px 10px;font-size:12px;position:absolute;top:4px}.ch-tip i{border-radius:2px;width:8px;height:8px;margin-inline-end:5px;display:inline-block}.ch-x{height:20px;color:var(--muted);grid-column:2;font-size:11px;position:relative}.ch-x span{white-space:nowrap;position:absolute;top:4px;transform:translate(-50%)}.ch-x span:first-child{transform:none}.uptime-bar{height:22px}.table-wrap{border-radius:var(--radius)}.table-wrap.plain{border-radius:0 0 var(--radius) var(--radius);background:0 0;border:0}table{font-size:13px}th,td{padding:8px 12px}th{z-index:1;font-size:12px;position:sticky;top:0}td.num{white-space:nowrap}.rows tbody tr{cursor:pointer}.rows tbody tr:hover,.fixes tbody tr:hover{background:var(--surface-2)}.proj{align-items:center;gap:9px;display:flex}.proj>span:last-child{flex-direction:column;line-height:1.4;display:flex}.proj .mono{font-size:11.5px}.fixes td{vertical-align:top}.fixes .url{text-overflow:ellipsis;white-space:nowrap;max-width:230px;font-size:12px;font-family:var(--mono);text-align:left;direction:ltr;overflow:hidden}.fixes .clip{white-space:normal;-webkit-line-clamp:2;border:0;-webkit-box-orient:vertical;max-width:240px;display:-webkit-box;overflow:hidden}.fixes .prop{white-space:normal;min-width:280px}.fixes textarea{min-height:34px;font-size:13px}.fixes .hint{color:var(--muted);margin-top:3px;font-size:11.5px}.check-col{width:34px;padding-inline-end:0}.nowrap{flex-wrap:nowrap}.type-cards{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.type-card{border:1px solid var(--border);background:var(--surface);border-radius:var(--radius-sm);cursor:pointer;color:var(--fg-2);align-items:baseline;gap:7px;padding:6px 12px;font-size:13px;display:flex}.type-card b{color:var(--fg);font-size:15px;font-weight:600}.type-card:hover{border-color:var(--border-strong)}.type-card[aria-pressed=true]{border-color:var(--primary-line);background:var(--primary-soft)}.bulk{z-index:4;background:var(--surface-3);border:1px solid var(--border-strong);border-radius:var(--radius-sm);box-shadow:var(--shadow);align-items:center;gap:8px;margin-bottom:8px;padding:7px 12px;display:flex;position:sticky;top:8px}.bulk[hidden]{display:none}.bulk strong{margin-inline-end:auto;font-size:13px}.more{text-align:center;padding:12px}.issue-group{border-radius:var(--radius-sm);margin-bottom:8px}.issue-group summary{padding:9px 14px}.sk{background:linear-gradient(90deg, var(--surface) 25%, var(--surface-2) 50%, var(--surface) 75%);background-size:200% 100%;animation:1.3s linear infinite shimmer}@keyframes shimmer{to{background-position:-200% 0}}.copy-row{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);align-items:center;gap:10px;padding:8px 12px;display:flex}.copy-row code{text-overflow:ellipsis;flex:1;min-width:0;font-size:12.5px;overflow:hidden}.steps{max-width:none;margin:12px 0;padding-inline-start:20px;line-height:1.9}details.sub{margin-top:12px}details.sub summary{cursor:pointer;color:var(--muted);margin-bottom:8px;font-size:13px}.field-label{margin-bottom:4px;font-size:13px;display:block}.modal.wide{width:min(680px,100vw - 32px);max-height:calc(100vh - 48px);overflow:auto}.modal-pad{padding:20px}.palette{top:14vh;width:min(560px,100vw - 32px);margin:0 auto;position:fixed;inset-inline:0}.pal{background:var(--surface);border:1px solid var(--border-strong);box-shadow:var(--shadow);border-radius:12px;overflow:hidden}.pal input{border:0;border-bottom:1px solid var(--border);background:0 0;border-radius:0;outline:0;width:100%;padding:12px 14px;font-size:15px}.pal ul{max-height:340px;margin:0;padding:6px;list-style:none;overflow:auto}.pal li{cursor:pointer;border-radius:7px;justify-content:space-between;gap:12px;padding:8px 10px;display:flex}.pal li[aria-selected=true]{background:var(--primary-soft)}@media (max-width:1000px){.app{grid-template-columns:1fr}.side-foot{flex-flow:wrap;margin-top:0}.page-head,.content main{padding-inline:16px}.fixes .prop{min-width:200px}}[hidden],body:not(.is-admin) .admin-only{display:none!important}body:not(.is-admin) [data-act=write]{display:none}.ro [data-act=run],.ro [data-act=fix],.ro [data-act=bulk],.ro [data-act=igplan],.ro [data-act=content],.ro [data-act=content-del],.ro [data-act=content-image],.ro [data-act=issue],.ro [data-act=kw-del],.ro [data-act=img-del],.ro [data-act=write],.ro #kw-add,.ro #art-form,.ro #cmp-form,.ro #img-form,.ro .check-col{display:none!important}.ro .fix-text{pointer-events:none;resize:none;background:0 0;border-color:#0000}.small{font-size:12px}.err{color:var(--danger);min-height:0;font-size:13px}.err:empty{display:none}.app.no-side{grid-template-columns:1fr}.app.no-side .side,.app.no-side .page-head,.page-head:empty{display:none}#auth{place-items:center;min-height:100vh;padding:16px;display:grid}.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;flex-direction:column;gap:14px;width:min(380px,100%);padding:26px;display:flex}.auth-card h1{margin:0;font-size:19px}.auth-card p{margin:0}.auth-card .brand{padding:0}.auth-card input{width:100%}.auth-card .btn{justify-content:center;min-height:40px}input[type=password]{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);min-height:34px;padding:5px 10px}.auth-card input[type=text],.auth-card input[type=password]{background:var(--surface-2);min-height:40px}.picker{max-width:980px;margin:0 auto;padding:8px 0 40px}.picker-top{align-items:center;gap:10px;margin-bottom:44px;display:flex}.picker-top .brand{padding:0}.picker h1{margin:0 0 18px;font-size:24px}.pick-grid{grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:12px;display:grid}.pick{background:var(--surface);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:14px;min-height:124px;padding:18px;transition:border-color .15s,box-shadow .15s;display:flex;position:relative;overflow:hidden}a.pick:hover{border-color:var(--border-strong);box-shadow:var(--shadow)}.pick-bar{width:4px;position:absolute;inset-block:0;inset-inline-start:0}.pick-head{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.pick strong{font-size:16px}.pick .mono{font-size:12px}.pick-meta{flex-wrap:wrap;gap:6px;margin-top:auto;display:flex}.pick.add{color:var(--muted);cursor:pointer;border-style:dashed;flex-direction:row;justify-content:center;align-items:center;gap:8px;font-size:14px}.pick.add:hover{color:var(--fg);border-color:var(--border-strong)}.picker-links{gap:6px;margin-top:16px;display:flex}.me{border-top:1px solid var(--border);align-items:center;gap:6px;margin-top:6px;padding:8px 9px 2px;display:flex}.me .grow{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.add-row{border-top:1px solid var(--border);margin-top:12px;padding-top:12px}.add-row select:first-child{flex:1;min-width:180px}td.wrap{white-space:normal}td.wrap .chip{margin:2px 0}tr.off td{opacity:.6}fieldset{border:1px solid var(--border);border-radius:var(--radius-sm);margin:0;padding:8px 12px}fieldset[disabled]{opacity:.45}legend{color:var(--muted);padding:0 6px;font-size:12.5px}.pick-line{justify-content:space-between;padding:3px 0}.pick-line .grow{flex:1}.modal h2{margin:0;font-size:16px}#confirm form{flex-direction:column;gap:14px;padding:20px;display:flex}.no-writer [data-act=write]{display:none!important}.auth-card code{background:var(--surface-2);word-break:break-all;border-radius:6px;padding:8px 10px;font-size:12px}.ro .edit-only{display:none!important}.struck{color:var(--muted);text-decoration:line-through}.task-row{border-top:1px solid var(--border)}.task-row:first-of-type{border-top:0}.task-row summary{cursor:pointer;align-items:center;gap:8px;padding:9px 0;list-style:none;display:flex}.task-row summary::-webkit-details-marker{display:none}.task-row .grow{flex:1;min-width:0}.task-body{flex-direction:column;gap:8px;padding:4px 0 12px;display:flex}.comment{background:var(--surface-2);border-radius:var(--radius-sm);padding:7px 10px}.result-form{border-top:1px solid var(--border);flex-direction:column;gap:8px;margin-top:12px;padding-top:10px;font-size:13px;display:flex}.result-form h4{margin:0}.result-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.result-form input{width:100%}.my-tasks{background:var(--surface);border:1px solid var(--border);border-radius:12px;margin-top:26px;padding:14px 16px}.my-tasks h2{margin:0 0 8px;font-size:14px}.menu-btn{display:none}@media (max-width:900px){.menu-btn{top:12px;z-index:40;display:inline-flex;position:fixed;inset-inline-end:12px}.app.no-side .menu-btn{display:none}.app{display:block}.side{z-index:30;width:min(280px,84vw);height:100vh;box-shadow:var(--shadow);flex-flow:column;transition:transform .2s;position:fixed;inset-block:0;inset-inline-start:0;transform:translate(100%)}.side.open{transform:none}.side-foot{flex-direction:column;margin-top:auto}.page-head{padding:12px 56px 0 16px;position:static}.content main{padding:14px 12px 40px}.kpis,.kpis.six{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.kpi{min-height:76px;padding:10px}.kpi b{font-size:18px}.dash{flex-direction:column;display:flex}.ptabs{flex-wrap:nowrap;overflow-x:auto}.ptab{white-space:nowrap}.todo li{flex-wrap:wrap}.todo .grow{flex-basis:100%}.result-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.picker-top{flex-wrap:wrap;margin-bottom:24px}.picker h1{font-size:19px}.pick-grid{grid-template-columns:1fr}th,td{padding:7px 8px}.fixes .prop{min-width:180px}.btn{min-height:38px}}@media (max-width:900px) and (prefers-reduced-motion:reduce){.side{transition:none}}.sched input[type=text]{width:58px}.sched .nowrap-cell{white-space:nowrap}.sched .nowrap-cell select{margin-inline-start:4px}.sched td{vertical-align:middle}.check.day{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:4px 10px}.issue-title{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.issue-help{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:2px 14px 12px;display:grid}.ih-block{background:var(--surface-2);border-radius:var(--radius-sm);padding:10px 12px;font-size:13px;line-height:1.8}.ih-block h4{color:var(--fg-2);margin:0 0 3px;font-size:12.5px}.ih-block p{margin:0}.ih-block ol{margin:0 0 6px;padding-inline-start:18px}.ih-fix{border-inline-start:3px solid var(--primary-line);grid-column:1/-1}.issue-urls{padding:0 14px 6px}.issue-row{flex-wrap:wrap}.issue-row .issue-detail{flex:260px;min-width:0}@media (max-width:900px){.issue-help{grid-template-columns:1fr}}.fix-help{background:var(--surface-2);border-inline-start:3px solid var(--primary-line);border-radius:var(--radius-sm);margin-bottom:12px;padding:9px 12px;font-size:13px;line-height:1.8}.count-note{color:var(--muted);font-size:11.5px;display:block}.fixes .row.nowrap{flex-direction:column;align-items:stretch;gap:4px}.fixes .row.nowrap .btn{white-space:nowrap;justify-content:center}.task-why{white-space:normal;margin-top:4px}details[open]>summary .task-why{display:none}.setup-steps{padding:0 16px 12px}.setup-steps li{align-items:flex-start;gap:10px;padding:8px 0;display:flex}.setup-steps li.is-done a{color:var(--muted,inherit);text-decoration:line-through}.setup-steps .dot{flex:none;margin-top:7px}.channel-row{flex-wrap:wrap;align-items:center;gap:10px;padding:5px 0;display:flex}.sub-tabs{flex-wrap:wrap;margin-bottom:14px}.sub-tabs .tab{white-space:nowrap;min-height:36px}.digest-grid{grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr));gap:14px;margin-bottom:14px;display:grid}.digest-num{margin:4px 0;font-size:28px;font-weight:700}.digest-actions{margin:0;padding-inline-start:20px;line-height:2}.sub-part:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.funnel-more-box{text-align:center;padding:12px 16px}.channel-name{flex:0 0 150px}#price-form{grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr))}#price-form .field{min-width:0}#price-form select,#price-form input{width:100%;min-width:0;max-width:100%}.channel-bar{background:var(--border);border-radius:99px;flex:1;min-width:80px;height:8px;overflow:hidden}.channel-bar>span{background:var(--accent);height:100%;display:block}.cro-item{border-top:1px solid var(--border);padding:10px 16px}.cro-item>summary{cursor:pointer;flex-wrap:wrap;align-items:center;gap:10px;min-height:32px;display:flex}.cro-compare{grid-template-columns:1fr 1fr;gap:16px;margin:10px 0;display:grid}.cro-compare p{white-space:normal;line-height:1.8}@media (max-width:720px){.cro-compare{grid-template-columns:1fr}}
