@font-face{font-family:Figtree Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(/assets/figtree-latin-ext-wght-normal-DCwSJGxG.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Figtree Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(/assets/figtree-latin-wght-normal-D_ZTVpCC.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #F2F5F7;--surface: #FFFFFF;--surface-2: #F7F9FB;--surface-3: #F0F4F8;--accent: #0A6FE8;--accent-hover: #0857B8;--accent-light: #E7F0FD;--accent-subtle: #F4F8FE;--text-primary: #10171E;--text-secondary: #56646F;--text-muted: #93A1AD;--border: #E4EAEF;--border-light: #EDF1F5;--success: #2E9E6B;--success-bg: #E4F5EC;--success-text: #1B6244;--danger: #C4544B;--danger-bg: #FBEDEC;--danger-text: #8E332C;--danger-edge: #F0CFCC;--warning: #D9A65C;--warning-bg: #FBF2E5;--shadow-sm: 0 1px 2px rgba(16,23,30,.045);--shadow-md: 0 1px 2px rgba(16,23,30,.045), 0 10px 26px rgba(16,23,30,.055);--shadow-lg: 0 2px 6px rgba(16,23,30,.05), 0 18px 44px rgba(16,23,30,.08);--r-sm: 8px;--r-md: 12px;--r-lg: 18px;--r-xl: 24px;--r-full: 9999px;--topbar-h: 60px;--content-w: 1120px;--font: "Figtree Variable", "Figtree", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-family:var(--font);font-size:16px;line-height:1.55;font-weight:400;color:var(--text-primary);background-color:var(--bg);color-scheme:light;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background-color:var(--bg)}#root{width:100%;min-height:100vh}h1,h2,h3,h4,h5,h6{margin:0;font-weight:600;line-height:1.3;color:var(--text-primary)}p{margin:0}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.dashboard-layout{display:flex;flex-direction:column;min-height:100vh}.dashboard-main{flex:1;width:100%}.dashboard-content{width:100%;max-width:var(--content-w);margin:0 auto;padding:2.5rem}.topbar{height:var(--topbar-h);flex-shrink:0;background:var(--surface);border-bottom:1px solid #E9EEF2;display:flex;align-items:center;gap:1.75rem;padding:0 2.5rem;position:sticky;top:0;z-index:100}.topbar-brand{display:flex;align-items:center;flex-shrink:0}.brand-mark{display:inline-flex;align-items:center;font-size:var(--mark-size, 20px);font-weight:800;line-height:1;letter-spacing:.005em;color:var(--text-primary);-webkit-user-select:none;user-select:none;white-space:nowrap}.brand-mark-accent{color:var(--accent)}.brand-mark-badge{width:1.02em;height:1.02em;margin:0 .02em;flex:none;display:block}.brand-mark-ring{stroke:currentColor}.brand-mark-bars{fill:var(--accent)}.topbar-nav{display:flex;align-items:center;gap:4px;min-width:0;overflow-x:auto;scrollbar-width:none}.topbar-nav::-webkit-scrollbar{display:none}.topbar-item{display:inline-flex;align-items:center;gap:8px;background:transparent;border:none;border-radius:var(--r-sm);padding:7px 13px;color:var(--text-muted);font-family:var(--font);font-size:14px;font-weight:500;cursor:pointer;white-space:nowrap;transition:background .15s,color .15s}.topbar-item:hover{color:var(--text-primary);background:var(--surface-2)}.topbar-item.active{background:var(--surface-3);color:var(--text-primary);font-weight:600}.topbar-item svg{flex-shrink:0}.topbar-actions{margin-left:auto;display:flex;align-items:center;gap:8px;flex-shrink:0}.topbar-logout{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:transparent;border:none;border-radius:var(--r-sm);padding:7px 11px;color:var(--text-muted);font-family:var(--font);font-size:14px;font-weight:500;cursor:pointer;transition:background .15s,color .15s}.topbar-logout:hover{background:var(--danger-bg);color:var(--danger-text)}.topbar-logout-label{display:inline}@media (max-width: 768px){.topbar{padding:0 1rem;gap:.75rem}.dashboard-content{padding:1.5rem 1rem 2.5rem}.topbar-logout-label{display:none}.topbar .brand-mark{--mark-size: 16px}.topbar-item{padding:6px 10px;font-size:13px;gap:6px}}@media (max-width: 430px){.topbar .brand-mark>span{display:none}.topbar .brand-mark{--mark-size: 20px}}.page-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:2rem;flex-wrap:wrap;gap:12px}.page-title{font-size:24px;font-weight:600;color:var(--text-primary);letter-spacing:-.015em}.page-subtitle{font-size:14px;color:var(--text-muted);margin-top:4px;font-weight:400}.page-header-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.metric-card{background:var(--surface);border:none;border-radius:var(--r-lg);padding:20px 22px;box-shadow:var(--shadow-sm);position:relative;overflow:hidden;min-width:0;transition:box-shadow .2s}.metric-card:hover{box-shadow:var(--shadow-md)}.metric-label{font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--text-muted);margin-bottom:12px}.metric-value{font-size:32px;font-weight:500;color:var(--text-primary);line-height:1;letter-spacing:-.025em;font-variant-numeric:tabular-nums}.metric-value.sm{font-size:19px;font-weight:500;letter-spacing:-.01em}.metric-value.xs{font-size:14px;font-weight:400;color:var(--text-secondary);line-height:1.45;letter-spacing:0;overflow-wrap:anywhere}.metric-card-wide{grid-column:span 2}.metric-card-full{grid-column:1 / -1}@media (max-width: 520px){.metric-card-wide,.metric-card-full{grid-column:span 1}}.genre-bar{display:flex;height:12px;border-radius:var(--r-full);overflow:hidden;gap:2px;margin:4px 0 18px}.genre-bar-seg{display:block;height:100%;min-width:3px}.genre-legend{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:9px 24px}.genre-legend-item{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-secondary)}.genre-legend-dot{width:9px;height:9px;border-radius:2px;flex-shrink:0}.genre-legend-count{font-size:12px;color:var(--text-muted);font-variant-numeric:tabular-nums}.genre-empty{font-size:13px;color:var(--text-muted);padding:.35rem 0 .1rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;font-family:var(--font);font-size:14px;font-weight:600;line-height:1;padding:10px 17px;border-radius:var(--r-sm);border:1px solid transparent;cursor:pointer;transition:background .15s,border-color .15s,box-shadow .15s,opacity .15s;white-space:nowrap;text-decoration:none;letter-spacing:-.005em}.btn:disabled{opacity:.45;cursor:not-allowed}.btn svg{flex-shrink:0}.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn-primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.btn-secondary{background:var(--surface);color:var(--text-primary);border-color:var(--border);box-shadow:var(--shadow-sm)}.btn-secondary:hover:not(:disabled){background:var(--surface-2)}.btn-danger{background:transparent;color:var(--danger-text);border-color:var(--danger-edge)}.btn-danger:hover:not(:disabled){background:var(--danger-bg)}.btn-ghost{background:transparent;color:var(--text-secondary);border-color:transparent}.btn-ghost:hover:not(:disabled){background:var(--surface-2);color:var(--text-primary)}.field-group{display:flex;flex-direction:column;gap:6px;text-align:left}.field-label{font-size:13px;font-weight:500;color:var(--text-secondary)}.field-input{font-family:var(--font);font-size:14px;color:var(--text-primary);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);padding:11px 14px;outline:none;transition:border-color .15s,box-shadow .15s;width:100%;-moz-appearance:none;appearance:none;-webkit-appearance:none}.field-input::placeholder{color:var(--text-muted)}.field-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #0a6fe81f}.badge{display:inline-flex;align-items:center;font-size:11px;font-weight:600;letter-spacing:.03em;padding:3px 9px;border-radius:var(--r-full)}.badge-new{background:var(--success-bg);color:var(--success-text);text-transform:uppercase;font-size:10px;letter-spacing:.09em}.badge-genre{gap:6px;background:var(--surface-2);color:var(--text-secondary);border:1px solid var(--border-light);font-size:12px;font-weight:500;letter-spacing:0}.badge-genre:before{content:"";width:7px;height:7px;border-radius:2px;background:var(--genre-color, var(--text-muted));flex-shrink:0}.table-wrapper{background:var(--surface);border:none;border-radius:var(--r-lg);box-shadow:var(--shadow-sm);overflow:hidden}.data-table{width:100%;border-collapse:collapse;font-size:14px}.data-table thead tr{background:var(--surface-2);border-bottom:1px solid var(--border-light)}.data-table th{padding:12px 16px;text-align:left;font-size:11px;font-weight:600;color:var(--text-muted);letter-spacing:.14em;text-transform:uppercase;white-space:nowrap}.data-table td{padding:14px 16px;color:var(--text-primary);border-bottom:1px solid var(--border-light);vertical-align:middle}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr{transition:background .1s}.data-table tbody tr:hover{background:var(--surface-2)}.data-table tbody tr.row-new{background:var(--success-bg)}.data-table tbody tr.row-new:hover{background:#d8efe3}@media (max-width: 640px){.table-wrapper{background:transparent;box-shadow:none}.data-table thead{display:none}.data-table,.data-table tbody{display:block}.data-table tbody tr{display:block;background:var(--surface);border-radius:var(--r-lg);margin-bottom:10px;padding:14px 16px;box-shadow:var(--shadow-sm)}.data-table tbody tr:hover{background:var(--surface)}.data-table td{display:flex;justify-content:space-between;align-items:center;padding:5px 0;border-bottom:none;font-size:13px}.data-table td:before{content:attr(data-label);font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.12em;min-width:76px;flex-shrink:0}.data-table td.td-file{flex-direction:column;align-items:flex-start;gap:6px;padding-bottom:11px;margin-bottom:5px;border-bottom:1px solid var(--border-light)!important}.data-table td.td-file:before{display:none}}.play-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:var(--r-full);background:var(--accent-light);color:var(--accent);border:none;cursor:pointer;flex-shrink:0;transition:background .15s,color .15s;margin-right:8px}.play-btn:hover,.play-btn.playing{background:var(--accent);color:#fff}.pagination{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:14px 16px;border-top:1px solid var(--border-light);font-size:13px;color:var(--text-secondary);flex-wrap:wrap}.pagination select{font-family:var(--font);font-size:13px;color:var(--text-primary);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);padding:5px 9px;cursor:pointer;outline:none}.pagination select:focus{border-color:var(--accent)}.pagination-info{color:var(--text-muted);padding:0 6px;font-variant-numeric:tabular-nums}.pagination .btn{padding:7px 13px;font-size:13px}.actions-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:1.75rem;padding-top:1.5rem;border-top:1px solid var(--border)}.confirm-panel{display:flex;align-items:center;gap:10px;background:var(--danger-bg);border:1px solid var(--danger-edge);border-radius:var(--r-md);padding:11px 15px;font-size:13px;color:var(--danger-text);flex-wrap:wrap;width:100%}.status-msg{font-size:13px;color:var(--text-secondary);padding:7px 13px;background:var(--surface);border-radius:var(--r-sm);box-shadow:var(--shadow-sm)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#10171e52;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal{background:var(--surface);border-radius:var(--r-xl);width:100%;max-width:480px;box-shadow:var(--shadow-lg)}.modal-header{display:flex;align-items:center;gap:.85rem;padding:1.75rem 1.75rem 0}.modal-icon{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:var(--r-md);background:var(--accent-light);color:var(--accent);flex-shrink:0}.modal-title{font-size:19px;font-weight:600;color:var(--text-primary);margin:0;letter-spacing:-.015em}.modal-body{padding:1.15rem 1.75rem;display:flex;flex-direction:column;gap:.85rem}.modal-body p{font-size:14px;color:var(--text-secondary);line-height:1.7;margin:0}.modal-footer{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.75rem 1.75rem;border-top:1px solid var(--border-light)}.modal-checkbox-label{display:flex;align-items:center;gap:.5rem;font-size:13px;color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none}.modal-checkbox-label input[type=checkbox]{accent-color:var(--accent);width:15px;height:15px;cursor:pointer}.setup-banner{display:flex;align-items:center;gap:1rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:1.25rem 1.5rem;margin-bottom:1.75rem;box-shadow:var(--shadow-sm)}.setup-banner-icon{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--r-md);background:var(--accent-light);color:var(--accent);flex-shrink:0}.setup-banner-body{flex:1;min-width:0}.setup-banner-title{font-size:15px;font-weight:600;color:var(--text-primary);margin:0 0 3px}.setup-banner-desc{font-size:13px;color:var(--text-secondary);margin:0;line-height:1.55}.setup-banner-error{font-size:12px;color:var(--danger-text);margin:6px 0 0}@media (max-width: 600px){.setup-banner{flex-direction:column;align-items:flex-start;text-align:left}}.empty-state{text-align:center;padding:5rem 1rem;color:var(--text-muted)}.empty-state-icon{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:var(--r-full);background:var(--surface);color:var(--text-muted);box-shadow:var(--shadow-sm);margin-bottom:1.15rem}.empty-state p{font-size:14px;max-width:300px;margin:0 auto 1.75rem;line-height:1.65}.login-page{min-height:100vh;display:grid;place-items:center;background:var(--bg);padding:3rem 1.25rem}.login-inner{width:100%;max-width:360px;display:flex;flex-direction:column;align-items:center;gap:1.15rem;text-align:center}.login-brand-tagline{font-size:11px;font-weight:600;letter-spacing:.3em;text-indent:.3em;text-transform:uppercase;color:var(--text-muted);margin-top:-.35rem}.login-heading{margin-top:.75rem}.login-heading h2{font-size:22px;font-weight:600;color:var(--text-primary);letter-spacing:-.015em}.login-tagline{font-size:14px;color:var(--text-muted);margin-top:3px}.login-form-inner{width:100%;display:flex;flex-direction:column;gap:.9rem}.login-divider{display:flex;align-items:center;gap:10px;margin:.15rem 0}.login-divider:before,.login-divider:after{content:"";flex:1;height:1px;background:var(--border)}.login-divider span{font-size:11px;color:var(--text-muted);font-weight:600;letter-spacing:.16em;text-transform:uppercase}.login-footer{font-size:13px;color:var(--text-muted)}.login-footer a{color:var(--accent);font-weight:600}.login-error{font-size:13px;color:var(--danger-text);background:var(--danger-bg);border:1px solid var(--danger-edge);border-radius:var(--r-sm);padding:9px 13px;margin:0;text-align:left}.signup-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg);padding:3rem 1.25rem}.signup-card{width:100%;max-width:480px;background:var(--surface);border:none;border-radius:var(--r-xl);padding:2.5rem;box-shadow:var(--shadow-md)}.signup-card h2{font-size:22px;font-weight:600;color:var(--text-primary);margin-bottom:4px;letter-spacing:-.015em}.signup-subtitle{font-size:14px;color:var(--text-muted);margin-bottom:1.75rem}.form-stack{display:flex;flex-direction:column;gap:14px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.phone-row{display:grid;grid-template-columns:88px 1fr;gap:8px}@media (max-width: 480px){.form-row{grid-template-columns:1fr}.signup-card{padding:1.75rem}}.google-btn-wrapper{width:100%;display:flex;justify-content:center}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;transition-duration:.001ms!important}}.gsi-material-button{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;-webkit-appearance:none;background-color:#fff;background-image:none;border:1px solid #747775;-webkit-border-radius:8px;border-radius:8px;-webkit-box-sizing:border-box;box-sizing:border-box;color:#1f1f1f;cursor:pointer;font-family:var(--font);font-size:14px;height:42px;letter-spacing:.25px;outline:none;overflow:hidden;padding:0 16px;position:relative;text-align:center;-webkit-transition:background-color .218s,border-color .218s,box-shadow .218s;transition:background-color .218s,border-color .218s,box-shadow .218s;vertical-align:middle;white-space:nowrap;width:100%;max-width:100%;min-width:min-content}.gsi-material-button .gsi-material-button-icon{height:20px;margin-right:12px;min-width:20px;width:20px}.gsi-material-button .gsi-material-button-content-wrapper{-webkit-align-items:center;align-items:center;display:flex;-webkit-flex-direction:row;flex-direction:row;-webkit-flex-wrap:nowrap;flex-wrap:nowrap;height:100%;justify-content:center;position:relative;width:100%}.gsi-material-button .gsi-material-button-contents{-webkit-flex-grow:0;flex-grow:0;font-family:var(--font);font-weight:500;overflow:hidden;text-overflow:ellipsis;vertical-align:top}.gsi-material-button .gsi-material-button-state{-webkit-transition:opacity .218s;transition:opacity .218s;bottom:0;left:0;opacity:0;position:absolute;right:0;top:0}.gsi-material-button:disabled{cursor:default;background-color:#ffffff61;border-color:#1f1f1f1f}.gsi-material-button:disabled .gsi-material-button-contents{opacity:38%}.gsi-material-button:disabled .gsi-material-button-icon{opacity:38%}.gsi-material-button:not(:disabled):active .gsi-material-button-state,.gsi-material-button:not(:disabled):focus .gsi-material-button-state{background-color:#303030;opacity:12%}.gsi-material-button:not(:disabled):hover{-webkit-box-shadow:0 1px 2px 0 rgba(60,64,67,.3),0 1px 3px 1px rgba(60,64,67,.15);box-shadow:0 1px 2px #3c40434d,0 1px 3px 1px #3c404326}.gsi-material-button:not(:disabled):hover .gsi-material-button-state{background-color:#303030;opacity:8%}
