@import "https://fonts.googleapis.com/css2?family=Sora:wght@400;500;600;700&family=Inter:wght@400;500;600&family=JetBrains+Mono:wght@400;500&display=swap";
.app-scope{--ground-0:#f4f7f5;--ground-1:#fff;--ground-2:#fff;--ground-3:#edf3f0;--hairline:#0c261d1a;--hairline-strong:#0c261d2b;--text-1:#0e1f19;--text-2:#54655d;--text-3:#8a968f;--brand-100:#0c7d5b;--brand-300:#0e9e75;--brand-500:#17c793;--brand-700:#0e9e75;--brand-900:#0a6e54;--safe:#1fa65b;--safe-100:#0d7a3e;--warn:#b9770c;--danger:#d2453d;--danger-100:#b23a33;--grad-brand:linear-gradient(135deg,#5feec0,#25cf99 46%,#12b98a);--glow-brand:0 8px 22px -10px #17c7938c;--shadow-card:0 1px 2px #0c261d0a, 0 8px 24px -16px #0c261d29;--font-display:"Sora",system-ui,sans-serif;--font-body:"Inter",system-ui,sans-serif;--font-mono:"JetBrains Mono",ui-monospace,monospace}.app-scope .app{background:var(--ground-0);height:100vh;color:var(--text-1);font-family:var(--font-body);font-size:14px;display:flex;overflow:hidden}.app-scope .app *{box-sizing:border-box}.app-scope.app-loading{background:var(--ground-0);height:100vh;color:var(--brand-700);font-family:var(--font-body);justify-content:center;align-items:center;display:flex}.app-scope .sidebar{background:var(--ground-1);border-right:1px solid var(--hairline);flex-direction:column;flex:none;width:250px;padding:20px 14px;display:flex}.app-scope .side-brand{align-items:center;gap:11px;padding:6px 8px 22px;display:flex}.app-scope .side-mark{border:1px solid var(--hairline-strong);width:36px;height:36px;box-shadow:var(--glow-brand);background:linear-gradient(150deg,#e9fbf3,#fff);border-radius:11px;place-items:center;display:grid}.app-scope .side-name{font-family:var(--font-display);letter-spacing:-.01em;font-size:18px;font-weight:700}.app-scope .side-nav{flex-direction:column;gap:3px;display:flex}.app-scope .side-item{color:var(--text-2);cursor:pointer;border-radius:10px;align-items:center;gap:11px;padding:9px 12px;font-size:13.5px;font-weight:500;text-decoration:none;display:flex}.app-scope .side-item:hover{color:var(--text-1);background:#17c79314}.app-scope .side-item.active{color:var(--text-1);background:#17c7931f}.app-scope .side-item.active svg{color:var(--brand-700)}.app-scope .side-item svg{color:currentColor;flex:none}.app-scope .side-badge{background:var(--warn);color:#fff;border-radius:999px;margin-left:auto;padding:1px 7px;font-size:11px;font-weight:700}.app-scope .side-div{background:var(--hairline);height:1px;margin:14px 8px}.app-scope .side-label{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--text-3);padding:2px 12px 8px;font-size:10.5px}.app-scope .side-user{border:1px solid var(--hairline);border-radius:12px;align-items:center;gap:10px;margin-top:auto;padding:10px;display:flex}.app-scope .side-avatar{background:linear-gradient(140deg,var(--brand-700),var(--brand-900));color:#eafbf4;border-radius:999px;flex:none;place-items:center;width:32px;height:32px;font-size:13px;font-weight:700;display:grid}.app-scope .side-logout{color:var(--text-3);cursor:pointer;background:0 0;border:none;place-items:center;margin-left:auto;padding:4px;display:grid}.app-scope .side-logout:hover{color:var(--danger)}.app-scope .app-main{flex-direction:column;flex:1;min-width:0;display:flex}.app-scope .topbar{border-bottom:1px solid var(--hairline);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffb8;flex:none;justify-content:space-between;align-items:center;height:66px;padding:0 30px;display:flex}.app-scope .crumb{color:var(--text-3);font-size:13px}.app-scope .crumb b{color:var(--text-1);font-weight:600}.app-scope .topbar-right{color:var(--text-2);align-items:center;gap:14px;font-size:12.5px;display:flex}.app-scope .usage-chip{border:1px solid var(--hairline-strong);border-radius:11px;align-items:center;gap:8px;padding:7px 13px;display:flex}.app-scope .app-content{flex:1;padding:30px;overflow:auto}.app-scope .app-content.narrow{max-width:900px}.app-scope .card{background:var(--ground-2);border:1px solid var(--hairline);box-shadow:var(--shadow-card);border-radius:16px}.app-scope .page-title{font-family:var(--font-display);letter-spacing:-.02em;margin:0;font-size:24px;font-weight:600}.app-scope .page-sub{color:var(--text-2);margin:6px 0 0;font-size:14px}.app-scope .sec-title{font-family:var(--font-display);margin:0;font-size:16px;font-weight:600}.app-scope .btn{font-family:var(--font-body);cursor:pointer;border:1px solid #0000;border-radius:11px;justify-content:center;align-items:center;gap:8px;padding:10px 18px;font-size:13.5px;font-weight:600;text-decoration:none;transition:transform .12s,box-shadow .2s,background .2s,border-color .2s,color .2s;display:inline-flex}.app-scope .btn:disabled{opacity:.5;cursor:default}.app-scope .btn:focus-visible{outline:2px solid var(--brand-500);outline-offset:2px}.app-scope .btn-primary{background:var(--grad-brand);color:#06231b;box-shadow:var(--glow-brand)}.app-scope .btn-primary:hover:not(:disabled){background:var(--grad-brand);filter:brightness(1.02);transform:translateY(-1px);box-shadow:0 12px 28px -12px #17c793a6}.app-scope .btn-secondary{color:var(--text-1);border-color:var(--hairline-strong);background:#f6faf8}.app-scope .btn-secondary:hover:not(:disabled){border-color:var(--brand-500);color:var(--brand-700);background:#eef7f3}.app-scope .btn-ghost{color:var(--text-2);background:0 0}.app-scope .btn-ghost:hover:not(:disabled){color:var(--text-1);background:#0c261d0d}.app-scope .btn-danger{color:var(--danger);background:#d2453d17;border-color:#d2453d52}.app-scope .btn-danger:hover:not(:disabled){color:var(--danger);background:#d2453d29}.app-scope .btn-sm{border-radius:9px;padding:7px 13px;font-size:12.5px}.app-scope .btn-block{width:100%}.app-scope .badge{text-transform:none;letter-spacing:0;border:1px solid;border-radius:999px;align-items:center;gap:6px;padding:4px 11px;font-size:11.5px;font-weight:600;display:inline-flex}.app-scope .badge.connected{color:var(--safe-100);background:#1fa65b1a;border-color:#1fa65b59}.app-scope .badge.pending{color:var(--warn);background:#b9770c1a;border-color:#b9770c59}.app-scope .badge.error,.app-scope .badge.disconnected{color:var(--danger-100);background:#d2453d17;border-color:#d2453d59}.app-scope .badge.paused{color:var(--text-2);border-color:var(--hairline-strong);background:#0c261d0a}.app-scope .dot{border-radius:999px;flex:none;width:8px;height:8px}.app-scope .dot.on{background:var(--safe);box-shadow:0 0 8px #1fa65b99}.app-scope .dot.off{background:var(--text-3)}.app-scope .stat-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;display:grid}.app-scope .stat{padding:20px}.app-scope .stat .cap{color:var(--text-2);align-items:center;gap:8px;font-size:12.5px;display:flex}.app-scope .stat .val{font-family:var(--font-display);letter-spacing:-.02em;margin-top:8px;font-size:32px;font-weight:700}.app-scope .stat .sub{color:var(--text-3);margin-top:2px;font-size:12px}.app-scope .stat.warn{border-color:#b9770c52}.app-scope .banner{border:1px solid var(--hairline);border-radius:14px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:14px 18px;font-size:14px;display:flex}.app-scope .banner.ok{background:#1fa65b12;border-color:#1fa65b42}.app-scope .banner.warn{background:#b9770c14;border-color:#b9770c4d}.app-scope .banner .link{color:var(--brand-700);cursor:pointer;white-space:nowrap;background:0 0;border:none;font-size:13.5px;font-weight:600}.app-scope .store-row{justify-content:space-between;align-items:center;gap:14px;padding:14px 4px;display:flex}.app-scope .store-row+.store-row{border-top:1px solid var(--hairline)}.app-scope .store-name{font-size:14px;font-weight:600}.app-scope .store-meta{color:var(--text-3);font-size:11.5px;font-family:var(--font-mono);margin-top:2px}.app-scope .switch{cursor:pointer;border:none;border-radius:999px;flex:none;width:40px;height:23px;position:relative}.app-scope .switch.on{background:var(--brand-700)}.app-scope .switch.off{background:#cbd6d1}.app-scope .switch i{background:#fff;border-radius:999px;width:18px;height:18px;transition:left .15s;position:absolute;top:2.5px;box-shadow:0 1px 2px #0c261d40}.app-scope .switch.on i{left:19px}.app-scope .switch.off i{left:2.5px}.app-scope .edit-input{background:var(--ground-1);border:1px solid var(--brand-500);color:var(--text-1);font-family:var(--font-body);border-radius:9px;width:220px;padding:8px 11px;font-size:13.5px}.app-scope .terminal{border:1px solid var(--hairline);background:#f7faf9;border-radius:16px;overflow:hidden}.app-scope .terminal-head{border-bottom:1px solid var(--hairline);font-family:var(--font-mono);letter-spacing:.06em;color:var(--text-2);justify-content:space-between;align-items:center;padding:12px 18px;font-size:11.5px;display:flex}.app-scope .terminal-body{height:340px;font-family:var(--font-mono);padding:16px 18px;font-size:12.5px;line-height:1.9;overflow:auto}.app-scope .log-line{align-items:baseline;gap:10px;display:flex}.app-scope .log-time{color:var(--text-3)}.app-scope .log-store{color:var(--brand-700);font-weight:600}.app-scope .log-ok{color:var(--text-1)}.app-scope .log-fail{color:var(--danger)}.app-scope .log-skip{color:var(--text-3)}.app-scope .log-pending{color:#7c5ce0}.app-scope .empty{border:1px dashed var(--hairline-strong);text-align:center;color:var(--text-3);border-radius:14px;padding:26px;font-size:13.5px}.app-scope .select{background:var(--ground-1);border:1px solid var(--hairline-strong);color:var(--text-1);font-family:var(--font-body);border-radius:10px;padding:8px 12px;font-size:13px}.app-scope .err{color:var(--danger-100);background:#d2453d14;border:1px solid #d2453d59;border-radius:12px;padding:12px 16px;font-size:13.5px}.app-scope .note{color:var(--text-2);background:#b9770c12;border:1px solid #b9770c38;border-radius:10px;align-items:center;gap:9px;padding:11px 14px;font-size:12.5px;display:flex}@media (max-width:820px){.app-scope .sidebar{display:none}.app-scope .stat-grid{grid-template-columns:repeat(2,1fr)}}
