:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#080808;--card:#111;--accent:#ff6b00;--text:#fff;--text-sec:#999;--border:#222;--danger:#ef4444;--success:#22c55e;--warning:#f59e0b}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.app-shell{justify-content:center;align-items:center;min-height:100vh;padding:16px;display:flex}.card{background:var(--card);border:1px solid var(--border);border-radius:16px;flex-direction:column;gap:12px;width:100%;max-width:380px;padding:32px 24px;display:flex}.card h1{margin:0 0 4px;font-size:22px;font-weight:900}.muted{color:var(--text-sec);margin:0;font-size:14px}.btn{border:1px solid var(--border);color:var(--text);cursor:pointer;background:0 0;border-radius:12px;padding:12px 16px;font-size:15px;font-weight:700}.btn:disabled{opacity:.5;cursor:default}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-link{color:var(--text-sec);border:none;align-self:flex-start;padding:4px 0;text-decoration:underline}.code-input{text-align:center;letter-spacing:8px;border:1px solid var(--border);background:var(--bg);width:100%;color:var(--text);border-radius:12px;padding:12px;font-size:24px}.error-banner{background:color-mix(in srgb, var(--danger) 15%, transparent);border:1px solid color-mix(in srgb, var(--danger) 40%, transparent);color:var(--danger);border-radius:10px;padding:10px 12px;font-size:14px}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;margin:0 auto;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.trace-log{border-top:1px solid var(--border);max-height:40vh;color:var(--text-sec);z-index:1000;background:#000000d9;padding:8px 12px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11px;line-height:1.6;position:fixed;bottom:0;left:0;right:0;overflow-y:auto}.trace-time{color:var(--accent)}.trace-line{white-space:pre-wrap;word-break:break-word}.granted-shell{min-height:100vh}.granted-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;padding:16px 24px;display:flex}.granted-header h1{margin:0;font-size:18px}.granted-header-right{align-items:center;gap:12px;display:flex}.services-screen{width:100%;max-width:720px;margin:0 auto;padding:24px 16px 64px}.services-screen h2{margin:24px 0 12px;font-size:16px}.service-row{background:var(--card);border:1px solid var(--border);border-radius:12px;justify-content:space-between;align-items:center;gap:16px;margin-bottom:8px;padding:14px 16px;display:flex}.service-info{flex-direction:column;gap:2px;min-width:0;display:flex}.service-info span{font-size:13px}.service-actions{flex-shrink:0;gap:8px;display:flex}.stats-screen{width:100%;max-width:720px;margin:0 auto;padding:24px 16px 64px}.stats-date{margin:-8px 0 16px}.kpi-grid{grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:24px;display:grid}.kpi-card{background:var(--card);border:1px solid var(--border);border-radius:16px;flex-direction:column;gap:2px;padding:16px;display:flex}.kpi-icon{margin-bottom:4px;font-size:24px}.kpi-value{font-size:26px;font-weight:900}.kpi-label{color:var(--text-sec);font-size:13px}.kpi-card-clickable{cursor:pointer;-webkit-user-select:none;user-select:none}.kpi-card-clickable:hover{border-color:var(--accent)}.drilldown-panel{margin-top:-12px}.drilldown-row{border-top:1px solid var(--border);align-items:center;gap:10px;padding:10px 0;display:flex}.drilldown-row:first-of-type{border-top:none;padding-top:8px}.drilldown-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.drilldown-time{flex-shrink:0;font-size:13px}.drilldown-status{color:var(--text-sec);white-space:nowrap;flex-shrink:0;font-size:13px;font-weight:700}.stats-card{background:var(--card);border:1px solid var(--border);border-radius:16px;margin-bottom:16px;padding:16px}.stats-card h3{margin:0 0 2px;font-size:15px;font-weight:800}.week-chart{align-items:flex-end;gap:8px;height:160px;margin-top:12px;display:flex}.week-bar-col{flex-direction:column;flex:1;align-items:center;height:100%;display:flex}.week-bar-value{color:var(--text-sec);margin-bottom:4px;font-size:11px}.week-bar-track{flex:1;align-items:flex-end;width:100%;display:flex}.week-bar-fill{background:var(--accent);border-radius:4px 4px 0 0;width:100%;min-height:2px}.week-bar-label{color:var(--text-sec);margin-top:6px;font-size:11px}.status-grid{justify-content:space-around;margin-top:12px;display:flex}.status-item{flex-direction:column;align-items:center;gap:2px;display:flex}.status-value{font-size:22px;font-weight:900}.status-label{color:var(--text-sec);font-size:12px}.breakdown-row{align-items:center;gap:10px;margin-top:10px;display:flex}.breakdown-label-row{flex-shrink:0;align-items:center;gap:6px;width:90px;display:flex}.breakdown-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.breakdown-label{color:var(--text-sec);font-size:13px}.breakdown-count{color:var(--text-sec);font-size:11px}.breakdown-bar-bg{background:var(--border);border-radius:4px;flex:1;height:8px;overflow:hidden}.breakdown-bar-fill{border-radius:4px;height:100%}.breakdown-pct{text-align:right;width:35px;font-size:12px;font-weight:700}.top-service-row{align-items:center;gap:10px;margin-top:10px;display:flex}.top-service-rank{color:var(--accent);flex-shrink:0;width:28px;font-size:16px;font-weight:900}.top-service-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.rating-badge{background:color-mix(in srgb, var(--warning) 20%, transparent);border:1px solid color-mix(in srgb, var(--warning) 40%, transparent);color:var(--warning);border-radius:999px;flex-shrink:0;padding:4px 8px;font-size:12px;font-weight:700}.rating-badge-inactive{background:color-mix(in srgb, var(--danger) 20%, transparent);border-color:color-mix(in srgb, var(--danger) 40%, transparent);color:var(--danger)}.tab-bar{gap:8px;display:flex}.tab-btn{border:1px solid var(--border);color:var(--text-sec);cursor:pointer;background:0 0;border-radius:10px;padding:8px 14px;font-size:14px;font-weight:700}.tab-btn-active{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent)}
