:root{--background: oklch(.985 0 0);--foreground: oklch(.145 0 0);--card: oklch(1 0 0);--card-foreground: oklch(.145 0 0);--muted: oklch(.96 .005 75);--muted-foreground: oklch(.556 0 0);--border: oklch(.922 0 0);--input: oklch(.922 0 0);--ring: oklch(.708 0 0);--brand: oklch(.705 .17 61);--brand-strong: oklch(.62 .16 55);--brand-foreground: oklch(.99 0 0);--brand-dim: oklch(.705 .17 61 / .12);--brand-glow: oklch(.705 .17 61 / .35);--success: oklch(.627 .17 149);--warning: oklch(.795 .16 86);--danger: oklch(.577 .245 27);--danger-bg: oklch(.955 .045 27);--info: oklch(.623 .19 259);--radius: .625rem;--radius-sm: calc(var(--radius) * .6);--radius-md: calc(var(--radius) * .8);--radius-lg: var(--radius);--radius-xl: calc(var(--radius) * 1.4);--shadow-overlay: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--shadow-pop: 0 24px 40px -12px rgb(0 0 0 / .35);--font-sans: "Geist", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: "Geist Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--sidebar-w: 250px;--topbar-h: 56px;--dur-fast: .14s;--dur: .2s}:root[data-theme=dark]{--background: oklch(.145 0 0);--foreground: oklch(.985 0 0);--card: oklch(.205 0 0);--card-foreground: oklch(.985 0 0);--muted: oklch(.24 .005 75);--muted-foreground: oklch(.708 0 0);--border: oklch(1 0 0 / 10%);--input: oklch(1 0 0 / 15%);--ring: oklch(.556 0 0);--brand: oklch(.78 .16 66);--brand-strong: oklch(.83 .15 70);--brand-foreground: oklch(.16 .02 60);--brand-dim: oklch(.78 .16 66 / .14);--brand-glow: oklch(.78 .16 66 / .3);--success: oklch(.727 .19 149);--warning: oklch(.828 .17 86);--danger: oklch(.7 .19 22);--danger-bg: oklch(.7 .19 22 / .16);--info: oklch(.707 .17 259);--shadow-overlay: 0 24px 40px -12px rgb(0 0 0 / .7);--shadow-pop: 0 24px 40px -12px rgb(0 0 0 / .8)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--background: oklch(.145 0 0);--foreground: oklch(.985 0 0);--card: oklch(.205 0 0);--card-foreground: oklch(.985 0 0);--muted: oklch(.24 .005 75);--muted-foreground: oklch(.708 0 0);--border: oklch(1 0 0 / 10%);--input: oklch(1 0 0 / 15%);--ring: oklch(.556 0 0);--brand: oklch(.78 .16 66);--brand-strong: oklch(.83 .15 70);--brand-foreground: oklch(.16 .02 60);--brand-dim: oklch(.78 .16 66 / .14);--brand-glow: oklch(.78 .16 66 / .3);--success: oklch(.727 .19 149);--warning: oklch(.828 .17 86);--danger: oklch(.7 .19 22);--danger-bg: oklch(.7 .19 22 / .16);--info: oklch(.727 .17 259);--shadow-overlay: 0 24px 40px -12px rgb(0 0 0 / .7);--shadow-pop: 0 24px 40px -12px rgb(0 0 0 / .8)}}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%}body{background:var(--background);color:var(--foreground);font:14px/1.55 var(--font-sans);letter-spacing:-.006em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}[hidden]{display:none!important}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--input);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--muted-foreground)}button{font-family:inherit;cursor:pointer}input,textarea,select{font-family:inherit}code{font-family:var(--font-mono);font-size:.86em;color:var(--muted-foreground);background:var(--muted);padding:1px 5px;border-radius:var(--radius-sm)}img,svg,audio,video{max-width:100%}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--ring);outline-offset:1px}.app-shell{display:grid;grid-template-columns:var(--sidebar-w) minmax(0,1fr);min-height:100vh;min-height:100dvh}.sidebar{border-right:1px solid var(--border);background:var(--card);display:flex;flex-direction:column;gap:2px;padding:1rem .75rem;position:sticky;top:0;height:100vh;height:100dvh;overflow-y:auto}.sidebar-header{display:flex;align-items:center;gap:.6rem;padding:.35rem .5rem 1rem;flex-wrap:wrap}.logo-icon{width:32px;height:32px;border-radius:var(--radius-md);background:linear-gradient(150deg,oklch(.82 .15 80),var(--brand));display:grid;place-items:center;color:#fff;box-shadow:0 2px 10px -3px var(--brand);flex:none}.logo-text{font-weight:650;font-size:15px;letter-spacing:-.02em}.logo-text b{color:var(--brand)}.sidebar nav{display:flex;flex-direction:column;gap:2px}.nav-btn{display:flex;align-items:center;gap:.6rem;width:100%;text-align:left;background:transparent;color:var(--muted-foreground);border:1px solid transparent;border-radius:var(--radius-md);padding:.55rem .8rem;font-size:13.5px;font-weight:500;transition:background var(--dur-fast),color var(--dur-fast),border-color var(--dur-fast);white-space:nowrap}.nav-btn svg{flex:none}.nav-btn:hover{color:var(--foreground);background:var(--muted)}.nav-btn.active{color:var(--foreground);background:var(--brand-dim);border-color:oklch(.705 .17 61 / .25);font-weight:600}.sidebar .spacer{flex:1}.sidebar .foot{padding:.6rem .8rem;font-size:11px;color:var(--muted-foreground);font-family:var(--font-mono);word-break:break-all}.main{display:flex;flex-direction:column;min-width:0}.topbar{min-height:var(--topbar-h);display:flex;align-items:center;gap:.6rem;padding:.55rem 1.4rem;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--card);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:5}.topbar .dot{width:9px;height:9px;border-radius:50%;background:var(--muted-foreground);flex:none}.topbar .dot.live{background:var(--success);box-shadow:0 0 8px #18a34999}.topbar .dot.err{background:var(--danger);box-shadow:0 0 8px oklch(.577 .245 27 / .6)}.topbar .dot.wait{background:var(--warning);box-shadow:0 0 8px #eab31280}.topbar .state{font-family:var(--font-mono);font-size:12px;color:var(--muted-foreground);letter-spacing:.02em;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1 1 12ch}.topbar .state b{color:var(--brand);font-weight:600}.topbar-actions{display:flex;gap:.4rem;flex-wrap:wrap;margin-left:auto}.topbar-actions .btn{padding:.4rem .75rem;font-size:12px}.content{padding:1.4rem;max-width:1160px;width:100%;margin:0 auto;overflow-x:clip}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.05rem 1.2rem;margin-bottom:1rem;transition:border-color var(--dur-fast)}.card:hover{border-color:var(--input)}.card h2{font-size:11px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;color:var(--muted-foreground);margin-bottom:.85rem}.grid{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr))}.stat{background:var(--muted);border:1px solid var(--border);border-radius:var(--radius-md);padding:.55rem .75rem;min-width:0}.stat:hover{border-color:var(--input)}.stat .k{font-size:10px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--muted-foreground)}.stat .v{font-size:clamp(1rem,2.5vw,1.3rem);font-weight:600;font-family:var(--font-mono);font-variant-numeric:tabular-nums;word-break:break-word}.stat .v.ok{color:var(--success)}.stat .v.risk{color:var(--danger)}.stat .v.warn{color:var(--warning)}.tbl-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}table{width:100%;border-collapse:collapse;font-size:13px}th{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted-foreground);text-align:left;padding:.45rem .55rem;border-bottom:1px solid var(--border);white-space:nowrap}td{padding:.5rem .55rem;border-bottom:1px solid var(--border);font-variant-numeric:tabular-nums}tr:last-child td{border-bottom:none}tbody tr:hover td{background:var(--muted)}.pill{display:inline-block;font-family:var(--font-mono);font-size:10px;padding:.15rem .55rem;border-radius:99px;border:1px solid;white-space:nowrap}.pill.idle{background:var(--muted);color:var(--muted-foreground);border-color:var(--border)}.pill.active{background:#18a3491a;color:var(--success);border-color:#18a3494d}.pill.cooldown{background:#eab3121f;color:oklch(.55 .14 86);border-color:#eab31259}.pill.dead{background:oklch(.577 .245 27 / .1);color:var(--danger);border-color:oklch(.577 .245 27 / .3)}label,.field-label{display:block;font-size:12px;font-weight:550;color:var(--muted-foreground);margin:.7rem 0 .3rem}input[type=text],input[type=number],input[type=password],select,textarea{width:100%;background:var(--card);border:1px solid var(--input);color:var(--foreground);padding:.5rem .7rem;font:inherit;font-size:13px;border-radius:var(--radius-md);transition:border-color var(--dur-fast)}textarea{min-height:5.5rem;resize:vertical;font-family:var(--font-mono);font-size:12px;line-height:1.5}input:focus,select:focus,textarea:focus{outline:2px solid var(--ring);outline-offset:-1px;border-color:transparent}.row{display:flex;gap:.9rem;flex-wrap:wrap}.row>div{flex:1 1 12rem;min-width:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:var(--radius-md);font-size:13px;font-weight:600;border:1px solid transparent;transition:background var(--dur-fast),box-shadow var(--dur-fast);padding:.5rem 1.05rem}.btn-primary{background:var(--brand);color:var(--brand-foreground)}.btn-primary:hover:not(:disabled){background:var(--brand-strong);box-shadow:0 1px 10px -3px var(--brand)}.btn-primary:active{transform:translateY(1px)}.btn-secondary{background:var(--muted);color:var(--foreground);border-color:var(--border)}.btn-secondary:hover:not(:disabled){border-color:var(--input)}.btn-ghost{background:transparent;color:var(--muted-foreground);border-color:var(--border)}.btn-ghost:hover:not(:disabled){color:var(--foreground);border-color:var(--input)}.btn-danger{background:var(--danger-bg);color:var(--danger);border-color:oklch(.577 .245 27 / .3)}.btn-danger:hover:not(:disabled){background:oklch(.577 .245 27 / .18)}button:disabled{opacity:.4;cursor:not-allowed}.log{font-family:var(--font-mono);font-size:11.5px;background:var(--background);border:1px solid var(--border);border-radius:var(--radius-md);padding:.75rem .95rem;height:22rem;overflow-y:auto;white-space:pre-wrap;word-break:break-word}.log .info{color:var(--muted-foreground)}.log .warn{color:oklch(.55 .14 86)}.log .error{color:var(--danger)}.log .ts{color:var(--muted-foreground);opacity:.6;margin-right:.55rem}.hint{font-size:12px;color:var(--muted-foreground);margin-top:.35rem}.ok-msg{color:var(--success);font-size:12px;word-break:break-word}.err-msg{color:var(--danger);font-size:12px;word-break:break-word}.flexend{display:flex;gap:.6rem;align-items:center;margin-top:1rem;flex-wrap:wrap}.queue-items{display:flex;flex-direction:column;gap:.4rem}.queue-item{display:flex;gap:.7rem;align-items:center;background:var(--muted);border:1px solid var(--border);border-radius:var(--radius-md);padding:.45rem .75rem;font-size:12.5px;min-width:0}.queue-item:hover{border-color:var(--input)}.queue-item .u{color:var(--brand);font-family:var(--font-mono);font-size:11px;flex:none}.queue-item .t{flex:1;min-width:0;color:var(--muted-foreground);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--foreground)}.queue-item button{flex:none}.modal-scrim{position:fixed;inset:0;background:#00000073;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:100;padding:1rem}.modal{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-overlay);max-width:420px;width:100%;padding:1.15rem 1.25rem;animation:modalIn .18s ease}.modal h3{font-size:15px;font-weight:650;letter-spacing:-.01em;margin-bottom:.65rem}.modal p{font-size:13px;color:var(--muted-foreground);word-break:break-word}.modal .modal-actions{display:flex;gap:.5rem;margin-top:1rem;flex-wrap:wrap;justify-content:flex-end}.modal input{margin-top:.4rem}@keyframes modalIn{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}.auth-screen{min-height:100vh;display:grid;place-items:center;padding:1.5rem;padding-top:max(1.5rem,env(safe-area-inset-top));padding-bottom:max(1.5rem,env(safe-area-inset-bottom))}.auth-card{width:100%;max-width:350px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-overlay);padding:1.7rem 1.6rem;display:flex;flex-direction:column;gap:.75rem}.auth-card h1{font-size:1.2rem;font-weight:650;letter-spacing:-.02em;display:flex;align-items:center;gap:.55rem}.auth-card .mark{width:28px;height:28px;border-radius:var(--radius-md);display:inline-grid;place-items:center;background:linear-gradient(150deg,oklch(.82 .15 80),var(--brand));color:#fff;box-shadow:0 2px 10px -3px var(--brand)}.auth-card .sub{color:var(--muted-foreground);font-size:.87rem;margin:-.35rem 0 .5rem}.auth-card label{font-size:.8rem;font-weight:550;color:var(--muted-foreground)}.auth-btn{margin-top:.4rem;padding:.62rem 1rem;border:0;border-radius:var(--radius-md);background:var(--brand);color:var(--brand-foreground);font:600 .92rem var(--font-sans);box-shadow:0 1px 10px -3px var(--brand);transition:background var(--dur-fast)}.auth-btn:hover:not(:disabled){background:var(--brand-strong)}.auth-err{background:var(--danger-bg);color:var(--danger);border-radius:var(--radius-md);padding:.5rem .7rem;font-size:.85rem}@media(max-width:640px){.auth-card input{font-size:16px}}.toasts{position:fixed;bottom:max(1rem,env(safe-area-inset-bottom));left:50%;transform:translate(-50%);display:flex;flex-direction:column-reverse;gap:.5rem;z-index:200;width:min(420px,calc(100vw - 2rem))}.toast{background:var(--card);border:1px solid var(--border);border-left:3px solid var(--info);border-radius:var(--radius-md);box-shadow:var(--shadow-overlay);padding:.6rem .9rem;font-size:13px;word-break:break-word;animation:toastIn .18s ease}.toast.ok{border-left-color:var(--success)}.toast.err{border-left-color:var(--danger)}@keyframes toastIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}@media(max-width:860px){.app-shell{grid-template-columns:1fr}.sidebar{position:static;height:auto;flex-direction:row;flex-wrap:wrap;align-items:center;padding:.5rem .6rem;gap:.25rem}.sidebar-header{padding:.2rem .5rem}.sidebar nav{flex-direction:row;flex-wrap:wrap}.nav-btn{width:auto;padding:.45rem .7rem}.sidebar .spacer,.sidebar .foot{display:none}.content{padding:.85rem}.card{padding:.85rem .9rem}.topbar{padding:.5rem .8rem}.topbar-actions .btn{padding:.35rem .6rem;font-size:11.5px}.log{height:16rem}.row>div{flex:1 1 100%}input[type=text],input[type=number],input[type=password],select,textarea{font-size:16px}}@media(pointer:coarse){.nav-btn,.topbar-actions .btn{min-height:44px}.tbl-wrap .btn,.queue-item .btn{min-height:44px;min-width:56px}}@supports (padding: max(0px)){@media(max-width:860px){.sidebar{padding-left:max(.6rem,env(safe-area-inset-left));padding-right:max(.6rem,env(safe-area-inset-right))}.topbar{padding-left:max(.8rem,env(safe-area-inset-left));padding-right:max(.8rem,env(safe-area-inset-right))}}}
