body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#0a0a0b;color:#fff;font-family:Inter,sans-serif;margin:0}.builder-root{background:#0f172a;color:#f1f5f9;display:flex;flex-direction:column;font-family:Inter,system-ui,sans-serif;height:100vh}.builder-loading{align-items:center;color:#64748b;display:flex;font-size:1.2rem;height:100vh;justify-content:center}.builder-toolbar{align-items:center;background:#1e293b;border-bottom:1px solid #ffffff14;display:flex;flex-shrink:0;height:56px;justify-content:space-between;padding:12px 20px}.builder-title{color:#f1f5f9;font-size:1.1rem;font-weight:700}.toolbar-actions{display:flex;gap:8px}.builder-body{display:flex;flex:1 1;overflow:hidden}.widget-palette{background:#1e293b;border-right:1px solid #ffffff14;display:flex;flex-direction:column;flex-shrink:0;gap:6px;overflow-y:auto;padding:16px 12px;width:200px}.palette-title{color:#475569;font-size:.7rem;font-weight:700;letter-spacing:.1em;margin-bottom:8px;padding-left:4px;text-transform:uppercase}.palette-item{align-items:center;background:#0000;border:1px solid #ffffff0f;border-radius:8px;color:#cbd5e1;cursor:pointer;display:flex;font-size:.85rem;gap:8px;padding:8px 12px;text-align:left;transition:background .15s,border-color .15s}.palette-item:hover{background:#6366f11f;border-color:#6366f166;color:#f1f5f9}.palette-icon{font-size:1.1em}.builder-canvas{background:#0f172a;flex:1 1;overflow:auto;padding:20px}.canvas-grid{grid-gap:12px;display:grid;gap:12px;grid-auto-rows:120px;grid-template-columns:repeat(12,1fr);min-height:600px;position:relative}.canvas-empty{align-items:center;border:2px dashed #1e293b;border-radius:16px;color:#334155;display:flex;font-size:1rem;grid-column:1/-1;grid-row:1/4;justify-content:center}.canvas-widget{min-height:0}.canvas-widget-inner{background:#ffffff0a;border:1px solid #ffffff14;border-radius:12px;cursor:default;display:flex;flex-direction:column;gap:6px;height:100%;padding:12px 14px;transition:border-color .15s}.canvas-widget-inner:hover{border-color:#6366f166}.canvas-widget-header{align-items:center;display:flex;justify-content:space-between}.canvas-widget-type{color:#6366f1;font-size:.7rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.canvas-widget-actions{display:flex;gap:4px;opacity:0;transition:opacity .15s}.canvas-widget-inner:hover .canvas-widget-actions{opacity:1}.canvas-widget-actions button{background:none;border:none;border-radius:4px;color:#64748b;cursor:pointer;font-size:.9rem;padding:2px 4px;transition:background .1s}.canvas-widget-actions button:hover{background:#ffffff14}.canvas-widget-title{color:#e2e8f0;font-size:.9rem;font-weight:600}.canvas-widget-source,.canvas-widget-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.canvas-widget-source{color:#475569;font-size:.75rem}.btn-primary{background:#6366f1;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:.875rem;font-weight:600;padding:8px 16px;transition:background .15s}.btn-primary:hover:not(:disabled){background:#4f46e5}.btn-primary:disabled{cursor:not-allowed;opacity:.5}.btn-secondary{background:#ffffff0f;border:1px solid #ffffff1f;border-radius:8px;color:#cbd5e1;cursor:pointer;font-size:.875rem;font-weight:500;padding:8px 16px;transition:background .15s}.btn-secondary:hover{background:#ffffff1a}.btn-icon{background:none;border:none;border-radius:4px;color:#64748b;cursor:pointer;font-size:1.1rem;padding:4px}.btn-icon:hover{background:#ffffff14;color:#f1f5f9}.modal-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009;display:flex;inset:0;justify-content:center;position:fixed;z-index:100}.config-panel,.tv-panel{background:#1e293b;border:1px solid #ffffff1a;border-radius:16px;display:flex;flex-direction:column;max-height:80vh;overflow:hidden;width:480px}.config-header{align-items:center;border-bottom:1px solid #ffffff14;display:flex;flex-shrink:0;justify-content:space-between;padding:16px 20px}.config-header h3{color:#f1f5f9;font-size:1rem;font-weight:700}.config-body{flex:1 1;gap:14px;overflow-y:auto;padding:20px}.config-body,.config-body label{display:flex;flex-direction:column}.config-body label{color:#64748b;font-size:.8rem;font-weight:600;gap:6px;letter-spacing:.05em;text-transform:uppercase}.config-body input,.config-body select{background:#ffffff0f;border:1px solid #ffffff1a;border-radius:8px;color:#f1f5f9;font-size:.9rem;outline:none;padding:8px 12px;transition:border-color .15s}.config-body input:focus,.config-body select:focus{border-color:#6366f1}.config-body select option{background:#1e293b}.config-footer{border-top:1px solid #ffffff14;display:flex;flex-shrink:0;gap:8px;justify-content:flex-end;padding:16px 20px}.tv-url-section{flex-direction:column}.tv-url-section,.url-row{display:flex;gap:8px}.url-row input{flex:1 1}.hint{color:#475569;font-size:.78rem;font-weight:400;letter-spacing:0;text-transform:none}.pairing-section{display:flex;flex-direction:column;gap:10px}.pairing-section label{color:#64748b;font-size:.8rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.pairing-code-display{background:#6366f11a;border:1px solid #6366f14d;border-radius:12px;padding:16px;text-align:center}.pairing-code-display .code{font-feature-settings:"tnum";color:#6366f1;font-size:2.5rem;font-variant-numeric:tabular-nums;font-weight:800;letter-spacing:.3em}.pairing-code-display p{color:#64748b;font-size:.8rem;margin-top:8px}hr{border:none;border-top:1px solid #ffffff14}.tv-list{display:flex;flex-direction:column;gap:6px}.tv-list-item{align-items:center;background:#ffffff0a;border-radius:8px;color:#cbd5e1;display:flex;font-size:.9rem;gap:10px;padding:8px 12px}.status-dot{border-radius:50%;flex-shrink:0;height:8px;width:8px}.status-dot.online{background:#10b981}.status-dot.offline{background:#475569}.status-dot.paused{background:#f59e0b}.tv-status{color:#475569;font-size:.75rem;margin-left:auto;text-transform:capitalize}*{box-sizing:border-box;margin:0;padding:0}body{background:#0f172a;font-family:Inter,system-ui,sans-serif;overflow:hidden}.tv-root{flex-direction:column;gap:12px;padding:16px}.tv-error,.tv-loading,.tv-root{display:flex;height:100vh;width:100vw}.tv-error,.tv-loading{align-items:center;background:#0f172a;color:#94a3b8;font-size:2rem;justify-content:center}.tv-header{align-items:center;background:#ffffff0a;border-radius:12px;display:flex;flex-shrink:0;gap:16px;height:56px;padding:8px 16px}.tv-logo{height:32px;object-fit:contain}.tv-dashboard-name{color:#f1f5f9;flex:1 1;font-size:1.25rem;font-weight:700}.tv-clock{font-feature-settings:"tnum";color:#cbd5e1;font-size:1.5rem;font-variant-numeric:tabular-nums;font-weight:600}.tv-stale-badge{background:#7c3aed22;border:1px solid #f59e0b44;border-radius:999px;color:#f59e0b}.tv-fresh-badge,.tv-stale-badge{font-size:.85rem;padding:4px 10px}.tv-fresh-badge{color:#10b981}.tv-grid{grid-gap:12px;display:grid;flex:1 1;gap:12px;grid-auto-rows:1fr;grid-template-columns:repeat(12,1fr);overflow:hidden}.tv-grid-item{min-height:0;min-width:0}.tv-widget{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#ffffff0f;border:1px solid #ffffff14;border-radius:16px;display:flex;flex-direction:column;height:100%;overflow:hidden;padding:20px 24px;transition:border-color .3s;width:100%}.tv-widget:hover{border-color:#6366f166}.widget-title{flex-shrink:0;font-weight:600;margin-bottom:12px}.widget-label,.widget-title{color:#94a3b8;font-size:1rem;letter-spacing:.06em;text-transform:uppercase}.widget-label{font-weight:500;margin-bottom:8px}.kpi-widget{align-items:center;justify-content:center;text-align:center}.widget-value{font-feature-settings:"tnum";color:#fff;font-size:clamp(2.5rem,6vw,5rem);font-variant-numeric:tabular-nums;font-weight:800;line-height:1}.leaderboard-rows{display:flex;flex:1 1;flex-direction:column;gap:6px;overflow:hidden}.leaderboard-row{grid-gap:10px;align-items:center;display:grid;font-size:clamp(.85rem,1.4vw,1.1rem);gap:10px;grid-template-columns:28px 1fr 120px 80px}.rank{color:#475569;font-size:.85em;font-weight:700;text-align:right}.name{color:#e2e8f0;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bar-wrap{background:#ffffff0f;border-radius:999px;height:8px;overflow:hidden}.bar-fill{border-radius:999px;height:100%;transition:width .6s ease}.val{font-feature-settings:"tnum";color:#f1f5f9;font-variant-numeric:tabular-nums;font-weight:700;text-align:right}.chart-widget{gap:0}.table-widget table{border-collapse:collapse;font-size:clamp(.75rem,1.2vw,.95rem);width:100%}.table-widget th{border-bottom:1px solid #ffffff14;color:#64748b;font-size:.8em;font-weight:600;letter-spacing:.04em;padding:6px 8px;text-align:left;text-transform:uppercase}.table-widget td{border-bottom:1px solid #ffffff0a;color:#cbd5e1;padding:6px 8px}.table-widget tr:nth-child(2n) td{background:#ffffff05}.goal-widget{gap:12px;justify-content:center}.goal-numbers{font-feature-settings:"tnum";font-size:clamp(1.5rem,3vw,2.5rem);font-variant-numeric:tabular-nums;font-weight:800}.goal-numbers .current{color:#f1f5f9}.goal-numbers .sep{color:#475569;margin:0 4px}.goal-numbers .target{color:#64748b;font-size:.75em}.goal-bar-track{background:#ffffff14;border-radius:999px;height:14px;overflow:hidden}.goal-bar-fill{border-radius:999px;height:100%;transition:width .8s ease}.goal-pct{color:#94a3b8;font-size:1.1rem;font-weight:700}.loading-widget{align-items:center;justify-content:center}.loading-pulse{animation:pulse 1.5s ease-in-out infinite;color:#334155;font-size:1rem}@keyframes pulse{0%,to{opacity:.3}50%{opacity:1}}
/*# sourceMappingURL=main.c4ad7962.css.map*/