:root{--nav-w: 192px;--brand: #1a56db;--brand-bg: #eff6ff;--brand-text: #1e40af;--color-background-primary: #fff;--color-background-secondary: #f8fafc;--color-background-tertiary: #f1f5f9;--color-background-success: #ecfdf5;--color-background-warning: #fffbeb;--color-background-danger: #fef2f2;--color-border-secondary: #cbd5e1;--color-border-tertiary: #e2e8f0;--color-text-primary: #0f172a;--color-text-secondary: #64748b;--color-text-tertiary: #94a3b8;--color-text-success: #047857;--color-text-warning: #b45309;--color-text-danger: #b91c1c;--border-radius-md: 6px;--border-radius-lg: 8px;--font-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace;font-family:var(--font-sans)}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;padding:16px;background:var(--color-background-tertiary);color:var(--color-text-primary)}a{color:inherit;text-decoration:none}.app-shell{display:grid;grid-template-columns:var(--nav-w) 1fr;height:calc(100vh - 32px);overflow:hidden;background:var(--color-background-tertiary);border:.5px solid var(--color-border-tertiary);border-radius:var(--border-radius-lg);box-shadow:0 20px 50px #0f172a14}.app-nav{display:flex;flex-direction:column;gap:1px;overflow-y:auto;background:#111827;border-right:.5px solid rgba(255,255,255,.08);color:#cbd5e1}.brand{display:flex;align-items:center;gap:9px;margin-bottom:4px;padding:14px 14px 12px;border-bottom:.5px solid rgba(255,255,255,.08)}.brand-mark{display:grid;place-items:center;width:30px;height:30px;flex-shrink:0;border-radius:var(--border-radius-md);background:var(--brand);color:#fff;font-size:11px;font-weight:600}.brand-name{color:#f8fafc;font-size:14px;font-weight:500;line-height:1.2}.brand-subtitle{color:#9ca3af;font-size:10px}.nav-items{display:flex;flex-direction:column;gap:1px}.nav-group{display:contents}.nav-group-label{padding:10px 14px 2px;color:#6b7280;font-size:9px;letter-spacing:.08em;text-transform:uppercase}.nav-item{position:relative;display:flex;align-items:center;gap:9px;min-height:31px;padding:7px 14px;color:#cbd5e1;font-size:12px;line-height:1.15;transition:background .1s ease,color .1s ease}.nav-item:hover{background:#ffffff14;color:#fff}.nav-item.active{background:#1a56db38;color:#bfdbfe;font-weight:500}.nav-item svg{flex-shrink:0}.nav-pill{margin-left:auto;padding:1px 6px;border-radius:10px;background:var(--color-background-danger);color:var(--color-text-danger);font-size:9px;font-weight:500}.app-main{min-width:0;overflow:auto}.page{display:flex;flex:1;flex-direction:column;gap:14px;min-height:100%;padding:14px 18px}.page-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:0}.page-title{margin:0;color:var(--color-text-primary);font-size:16px;font-weight:500;line-height:1.25;letter-spacing:0}.page-subtitle{margin:1px 0 0;color:var(--color-text-secondary);font-size:11px}.grid{display:grid;gap:12px}.grid-2{grid-template-columns:1fr 280px;align-items:start}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.two-col{display:grid;grid-template-columns:1fr 280px;gap:12px;align-items:start}.three-col{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.stack{display:flex;flex-direction:column;gap:12px}.toolbar{display:flex;gap:6px;flex-wrap:wrap}.toolbar .rm{display:inline-flex;align-items:center;gap:5px}.avatar{display:flex;align-items:center;justify-content:center;width:30px;height:30px;flex-shrink:0;border-radius:50%;background:var(--brand-bg);color:var(--brand-text);font-size:10px;font-weight:500}.stat-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.stat{background:var(--color-background-primary);border:.5px solid var(--color-border-tertiary);border-radius:var(--border-radius-md);padding:12px}.slbl{display:flex;align-items:center;gap:5px;margin-bottom:4px;color:var(--color-text-secondary);font-size:10px}.sval{color:var(--color-text-primary);font-size:20px;font-weight:500}.sdlt{margin-top:3px;font-size:10px}.up{color:var(--color-text-success)}.dn{color:var(--color-text-danger)}.nt{color:var(--color-text-secondary)}.card{overflow:hidden;background:var(--color-background-primary);border:.5px solid var(--color-border-tertiary);border-radius:var(--border-radius-lg)}.card-head{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:.5px solid var(--color-border-tertiary)}.card-title{margin:0;color:var(--color-text-primary);font-size:12px;font-weight:500}.card>strong,.card>p{display:block;padding:0 14px}.card>strong{padding-top:12px;color:var(--color-text-primary);font-size:20px;font-weight:500}.card>p:last-child{padding-bottom:12px}.card-foot{padding:0 14px 10px}.card-pad{padding:14px}.row{display:flex;align-items:center;gap:10px;padding:9px 14px;border-bottom:.5px solid var(--color-border-tertiary)}.row:last-child,.row:last-of-type{border-bottom:0}.row:hover{background:var(--color-background-secondary)}.event-list-item{border-bottom:.5px solid var(--color-border-tertiary)}.event-list-item:last-child{border-bottom:0}.event-list-item .row{border-bottom:0}.event-list-meta{display:flex;flex-wrap:wrap;gap:6px 12px;padding:0 14px 10px 31px;color:var(--color-text-secondary);font-size:10px}.dot{width:7px;height:7px;flex-shrink:0;border-radius:50%}.dw{background:#7f77dd}.db{background:#ef9f27}.dc{background:#1d9e75}.dp{background:#d85a30}.df{background:#8b5cf6}.dl{background:#0ea5e9}.dr{background:#f43f5e}.rn{display:block;overflow:hidden;color:var(--color-text-primary);font-size:12px;font-weight:500;text-overflow:ellipsis;white-space:nowrap}.rm,.muted{color:var(--color-text-secondary);font-size:10px}.button{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:31px;padding:6px 12px;border:.5px solid var(--color-border-secondary);border-radius:var(--border-radius-md);background:var(--color-background-primary);color:var(--color-text-primary);font:inherit;font-size:12px;cursor:pointer}.button:hover{background:var(--color-background-secondary)}.button.primary{border-color:transparent;background:var(--brand);color:#fff;font-weight:500}.button.primary:hover{background:#1e40af}.button.compact{min-height:25px;padding:4px 9px;font-size:10px}.button.full-width{width:100%}.badge{display:inline-flex;align-items:center;padding:2px 7px;border-radius:10px;font-size:9px;font-weight:500;white-space:nowrap}.badge.success{background:var(--color-background-success);color:var(--color-text-success)}.badge.warning{background:var(--color-background-warning);color:var(--color-text-warning)}.badge.danger{background:var(--color-background-danger);color:var(--color-text-danger)}.badge.info{background:var(--brand-bg);color:var(--brand-text)}.b-green,.song-tag.b-green{background:var(--color-background-success);color:var(--color-text-success)}.b-amber,.song-tag.b-amber{background:var(--color-background-warning);color:var(--color-text-warning)}.b-blue,.song-tag.b-blue{background:var(--brand-bg);color:var(--brand-text)}.b-gray,.song-tag.b-gray{background:var(--color-background-secondary);color:var(--color-text-secondary)}.b-red,.song-tag.b-red{background:var(--color-background-danger);color:var(--color-text-danger)}.alert-list{display:flex;flex-direction:column;gap:7px;padding:10px}.alert-item{display:flex;gap:9px;align-items:flex-start;padding:9px 11px;background:var(--color-background-primary);border:.5px solid var(--color-border-tertiary);border-radius:var(--border-radius-md)}.linked-row,.linked-alert{color:inherit}.linked-alert:hover{background:var(--color-background-secondary)}.dashboard-notice{display:flex;align-items:center;gap:7px;padding:8px 10px;border:.5px solid var(--color-border-secondary);border-radius:var(--border-radius-md);background:var(--color-background-warning);color:var(--color-text-warning);font-size:11px}.empty-state{display:flex;flex-direction:column;gap:6px;align-items:flex-start;padding:18px 14px;background:var(--color-background-secondary)}.readiness-summary{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:12px 14px 8px}.readiness-list{padding:0 14px 10px}.a-ico{display:flex;align-items:center;justify-content:center;width:26px;height:26px;flex-shrink:0;border-radius:var(--border-radius-md)}.a-w{background:var(--color-background-warning);color:var(--color-text-warning)}.a-d{background:var(--color-background-danger);color:var(--color-text-danger)}.a-i{background:var(--brand-bg);color:var(--brand-text)}.atitle{color:var(--color-text-primary);font-size:11px;font-weight:500}.adesc{margin-top:1px;color:var(--color-text-secondary);font-size:10px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}.field{position:relative;display:flex;flex-direction:column;gap:4px}.flbl{color:var(--color-text-secondary);font-size:11px}.fval{color:var(--color-text-primary);font-size:13px}.finput{width:100%;padding:7px 10px;border:.5px solid var(--color-border-secondary);border-radius:var(--border-radius-md);background:var(--color-background-primary);color:var(--color-text-primary);font:inherit;font-size:12px}.field-hint{color:var(--color-text-secondary);font-size:10px;line-height:1.35}.autocomplete-panel{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:40;overflow:hidden;border:.5px solid var(--color-border-secondary);border-radius:var(--border-radius-md);background:var(--color-background-primary);box-shadow:0 12px 36px #0f172a1f}.autocomplete-option{display:flex;width:100%;flex-direction:column;gap:2px;padding:8px 10px;border:0;border-bottom:.5px solid var(--color-border-tertiary);background:transparent;color:var(--color-text-primary);font:inherit;font-size:12px;text-align:left;cursor:pointer}.autocomplete-option:last-child{border-bottom:0}.autocomplete-option:hover{background:var(--color-background-secondary)}.autocomplete-option small,.autocomplete-status{color:var(--color-text-secondary);font-size:10px}.autocomplete-status{padding:8px 10px}.divider{height:.5px;background:var(--color-border-tertiary)}.sec-lbl{margin-bottom:8px;color:var(--color-text-secondary);font-size:10px;font-weight:500;letter-spacing:.07em;text-transform:uppercase}.q-section{margin-bottom:12px}.q-section-title{margin-bottom:8px;padding-bottom:6px;border-bottom:.5px solid var(--color-border-tertiary);color:var(--color-text-secondary);font-size:11px;font-weight:500;letter-spacing:.06em;text-transform:uppercase}.q-item{margin-bottom:10px}.q-label{margin-bottom:4px;color:var(--color-text-primary);font-size:12px}.q-ans{padding:7px 10px;border-radius:var(--border-radius-md);background:var(--color-background-secondary);color:var(--color-text-secondary);font-size:12px}.check-list-item{display:flex;align-items:center;gap:9px;padding:7px 0;border-bottom:.5px solid var(--color-border-tertiary);font-size:12px}.check-list-item:last-child{border-bottom:0}.ci-done{color:var(--color-text-success)}.ci-warn{color:var(--color-text-warning)}.ci-todo{color:var(--color-text-tertiary)}.progress-track,.progress-track-gray{height:4px;margin-top:6px;overflow:hidden;border-radius:2px}.progress-track{background:#ffffff4d}.progress-track-gray{background:var(--color-background-secondary)}.progress-fill{height:100%;border-radius:2px;background:#fff}.progress-fill-brand{height:100%;border-radius:2px;background:var(--brand)}.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;min-width:0}.calendar-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:12px;align-items:start}.calendar-card{min-width:0;overflow:hidden}.cal-weekdays{margin-bottom:6px}.calendar-month{gap:5px}.cal-empty{min-height:78px;min-width:0}.cal-dl{padding:3px 0;color:var(--color-text-tertiary);font-size:9px;text-align:center}.cal-d{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0;min-height:30px;padding:6px;border-radius:var(--border-radius-md);color:var(--color-text-secondary);font-size:11px;text-align:left}.cal-d:hover{background:var(--color-background-secondary)}.cal-today{background:var(--brand);color:#fff;font-weight:500}.cal-cell{min-height:78px;border:.5px solid transparent;background:var(--color-background-primary);overflow:hidden}.cal-has-event{border-color:var(--color-border-secondary);background:#fbfdff}.cal-day-number{color:var(--color-text-primary);font-size:11px;font-weight:500}.cal-today .cal-day-number{color:#fff}.cal-cell{width:100%;font:inherit;cursor:pointer}.cal-cell:hover{border-color:var(--brand);background:var(--brand-bg)}.cal-selected{border-color:var(--brand);box-shadow:inset 0 0 0 1px var(--brand)}.cal-event-stack{display:flex;flex-direction:column;gap:3px;width:100%;min-width:0;margin-top:4px}.cal-event-chip{display:flex;align-items:center;gap:4px;width:100%;min-width:0;max-width:100%;padding:2px 4px;border-radius:5px;background:var(--color-background-secondary);color:var(--color-text-primary);font-size:9px;line-height:1.2}.cal-event-chip span:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-event-dot{width:5px;height:5px;flex-shrink:0;border-radius:50%}.cal-more{color:var(--color-text-tertiary);font-size:9px}.calendar-agenda{position:sticky;top:14px}.calendar-event-row{display:flex;align-items:flex-start;gap:10px;padding:10px 14px;border-bottom:.5px solid var(--color-border-tertiary)}.calendar-event-row:last-child{border-bottom:0}.calendar-event-row:hover{background:var(--color-background-secondary)}.calendar-event-row .rm{display:flex;align-items:center;gap:4px}.calendar-empty-state{padding:18px 14px;background:var(--color-background-secondary)}.tl-item{display:flex;align-items:center;gap:10px;padding:8px 14px;border-bottom:.5px solid var(--color-border-tertiary)}.tl-item:last-child{border-bottom:0}.tl-time{width:44px;flex-shrink:0;color:var(--color-text-secondary);font-size:11px;font-weight:500;text-align:right}.tl-bar{align-self:stretch;width:3px;min-height:28px;flex-shrink:0;border-radius:2px;background:var(--brand)}.tl-label{color:var(--color-text-primary);font-size:12px;font-weight:500}.tl-note,.tl-song{color:var(--color-text-secondary);font-size:10px}.tl-song{color:var(--brand-text)}.song-row,.dnp-row,.equip-row{display:flex;align-items:center;gap:10px;padding:8px 14px;border-bottom:.5px solid var(--color-border-tertiary)}.song-row:last-child,.dnp-row:last-child,.equip-row:last-child{border-bottom:0}.song-row:hover{background:var(--color-background-secondary)}.song-num{width:18px;flex-shrink:0;color:var(--color-text-tertiary);font-size:10px;text-align:right}.song-info{flex:1;min-width:0}.song-title{color:var(--color-text-primary);font-size:12px;font-weight:500}.song-artist{color:var(--color-text-secondary);font-size:10px}.song-tag{padding:1px 6px;border-radius:8px;font-size:9px;font-weight:500}.inv-line,.inv-total{display:flex;justify-content:space-between;align-items:center;padding:7px 14px;border-bottom:.5px solid var(--color-border-tertiary);color:var(--color-text-primary);font-size:12px}.inv-total{padding:10px 14px;font-size:13px;font-weight:500}.invoice-hero{display:flex;justify-content:space-between;gap:18px;padding:16px}.invoice-brand{display:flex;align-items:center;gap:7px;margin-bottom:12px}.invoice-brand-mark{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:5px;background:var(--brand);color:#fff}.invoice-title{color:var(--color-text-secondary);font-size:11px;margin-bottom:2px}.invoice-amount{color:var(--color-text-primary);font-size:30px;font-weight:500;line-height:1.1}.invoice-hero-actions{display:flex;align-items:flex-start;gap:8px;flex-shrink:0}.invoice-layout{grid-template-columns:1fr 300px}.invoice-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:12px 14px;border-bottom:.5px solid var(--color-border-tertiary)}.invoice-progress{padding:10px 14px 12px;background:var(--color-background-secondary)}.payment-panel{display:flex;gap:8px;align-items:flex-start;padding:9px 10px;border-radius:var(--border-radius-md);background:var(--color-background-success);color:var(--color-text-success)}.file-drop{padding:16px;border:1.5px dashed var(--color-border-secondary);border-radius:var(--border-radius-md);background:var(--color-background-secondary);color:var(--color-text-tertiary);text-align:center}.msg-bubble{max-width:75%;margin-bottom:8px;padding:8px 11px;border-radius:var(--border-radius-md);font-size:12px;line-height:1.5}.msg-dj{align-self:flex-end;margin-left:auto;background:var(--brand);color:#fff}.msg-client{background:var(--color-background-secondary);color:var(--color-text-primary)}.msg-time{margin-top:2px;font-size:9px;opacity:.7}.portal-frame{min-height:100%;background:var(--color-background-tertiary)}.portal-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;background:var(--color-background-primary);border-bottom:.5px solid var(--color-border-tertiary)}.portal-brand{display:flex;align-items:center;gap:8px}.portal-icon{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:6px;background:var(--brand);color:#fff}.portal-hero{display:flex;justify-content:space-between;align-items:flex-start;padding:18px;background:var(--brand)}.portal-body{display:flex;flex-direction:column;gap:14px;padding:16px 18px}.input{width:100%;min-height:32px;padding:7px 10px;border:.5px solid var(--color-border-secondary);border-radius:var(--border-radius-md);background:var(--color-background-primary);color:var(--color-text-primary);font:inherit;font-size:12px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:flex;align-items:center;justify-content:center;padding:18px;background:#0f172a5c}.modal-panel{width:min(620px,100%);max-height:calc(100vh - 36px);overflow:auto;padding:14px;border:.5px solid var(--color-border-tertiary);border-radius:var(--border-radius-lg);background:var(--color-background-primary);box-shadow:0 24px 70px #0f172a2e}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}.form-status{margin-top:12px;padding:8px 10px;border-radius:var(--border-radius-md);background:var(--brand-bg);color:var(--brand-text);font-size:11px}@media(max-width:1120px){.calendar-layout{grid-template-columns:minmax(0,1fr) minmax(240px,280px)}.cal-d{padding:5px}}@media(max-width:860px){body{padding:0}.app-shell{display:flex;flex-direction:column;min-height:100vh;border:0;border-radius:0;box-shadow:none}.app-nav{position:fixed;left:0;right:0;bottom:0;z-index:20;order:2;min-height:68px;max-height:112px;flex-direction:row;align-items:stretch;gap:0;overflow-x:auto;overflow-y:hidden;padding:0 6px;border-right:0;border-top:.5px solid var(--color-border-tertiary);background:#fffffffa}.brand,.nav-group-label{display:none}.nav-items,.nav-group{display:flex;flex-direction:row;gap:0;min-width:max-content}.nav-item{min-width:76px;flex:0 0 76px;flex-direction:column;justify-content:center;gap:3px;margin:6px 1px;padding:8px 6px;border-radius:var(--border-radius-md);color:var(--color-text-secondary);font-size:10px;text-align:center;white-space:normal}.nav-item:hover{background:var(--color-background-secondary);color:var(--color-text-primary)}.nav-item.active{background:var(--brand-bg);color:var(--brand-text)}.nav-pill{position:absolute;top:3px;right:7px;margin-left:0}.app-main{order:1;min-height:0;flex:1}.page{gap:12px;padding:14px 14px 92px}.page-header{align-items:flex-start}.grid-2,.grid-3,.two-col,.three-col,.stat-row,.calendar-layout,.field-row{grid-template-columns:1fr}.calendar-agenda{position:static}.cal-empty,.cal-cell{min-height:46px}.cal-d{align-items:center;padding:5px 3px;text-align:center}.cal-day-number{width:100%}.calendar-month{gap:3px}.cal-event-stack{flex-flow:row wrap;justify-content:center;gap:3px;margin-top:3px}.cal-event-chip{width:7px;height:7px;padding:0;border-radius:50%;background:transparent}.cal-event-chip span:last-child{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.cal-event-dot{width:7px;height:7px}.cal-more{width:100%;font-size:8px;line-height:1;text-align:center}.row,.song-row,.dnp-row,.equip-row{align-items:flex-start}.rn{white-space:normal}.portal-header,.portal-body{padding-left:14px;padding-right:14px}.msg-bubble{max-width:92%}.invoice-hero{flex-direction:column}.invoice-hero-actions{width:100%;flex-wrap:wrap}.invoice-hero-actions .button{flex:1}.invoice-meta{grid-template-columns:1fr}.modal-backdrop{align-items:flex-start;padding:14px 14px 92px}.modal-panel{max-height:calc(100vh - 106px)}}@media(max-width:520px){.page-header{flex-direction:column}.button{min-height:34px}.card>strong{font-size:18px}.cal-empty,.cal-cell{min-height:40px}.modal-head,.modal-actions{flex-direction:column}.modal-actions .button{width:100%}}.playlist-seed-form{gap:12px}.playlist-fields-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.playlist-chip-row{display:flex;flex-wrap:wrap;gap:6px}.playlist-toggle{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:var(--color-text-secondary)}.playlist-generate.pulse{animation:pulse .9s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.smart-action-bar{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px;scrollbar-width:thin}.results-toolbar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px}.playlist-track-table-wrap{overflow:hidden}.playlist-track-table{display:flex;flex-direction:column;border-top:.5px solid var(--color-border-tertiary);overflow-x:auto}.playlist-track-row{display:grid;grid-template-columns:40px minmax(180px,2fr) 110px 55px 100px 100px 55px 55px 60px 160px;gap:8px;align-items:center;padding:8px 12px;border-bottom:.5px solid var(--color-border-tertiary);font-size:11px;transition:background .1s}.playlist-track-row.head{position:sticky;top:0;z-index:2;background:var(--color-background-secondary);font-weight:600;font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary)}.playlist-track-row.active{background:#1a56db0f}.playlist-track-row:hover:not(.head){background:var(--color-background-tertiary)}.playlist-track-row.active:hover{background:#1a56db17}.playlist-track-row small{display:block;color:var(--color-text-secondary);margin-top:1px}.track-number{color:var(--color-text-tertiary);font-size:11px;text-align:center}.track-playing-icon{color:var(--brand);animation:pulse 1.2s ease-in-out infinite}.playlist-track-actions{display:flex;gap:4px;align-items:center}.energy-bar{width:100%;height:6px;border-radius:999px;background:#0f172a18;overflow:hidden}.energy-bar>span{display:block;height:100%;background:linear-gradient(90deg,#16a34a,#f59e0b 60%,#dc2626);transition:width .3s ease}.phase-badge{display:inline-block;padding:2px 7px;border-radius:999px;border:.5px solid transparent;background:#1e293b;color:#cbd5e1;text-transform:capitalize;font-size:10px;font-weight:500;white-space:nowrap}.phase-legend{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.phase-legend-item{display:inline-flex;align-items:center;gap:4px;font-size:10px;color:var(--color-text-secondary);text-transform:capitalize}.phase-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.explicit-badge{display:inline-block;padding:1px 5px;border-radius:3px;background:#fef2f2;color:#b91c1c;font-size:10px;font-weight:700}.clean-badge{color:#16a34a;font-size:12px}.playlist-export-menu{display:inline-flex;gap:6px;flex-wrap:wrap}.skeleton-row{height:14px;border-radius:4px;background:linear-gradient(90deg,#e2e8f0,#f1f5f9,#e2e8f0);background-size:200% 100%;animation:skeleton-shimmer 1.3s linear infinite}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:spin .9s linear infinite}.skeleton-playlist{display:flex;flex-direction:column;gap:1px;border-top:.5px solid var(--color-border-tertiary)}.skeleton-track-row{display:flex;align-items:center;gap:12px;padding:10px 12px;border-bottom:.5px solid var(--color-border-tertiary)}.mini-player{display:flex;align-items:stretch;gap:14px;margin-top:8px;padding:12px 16px;border-radius:var(--border-radius-lg);background:#0f172a;color:#e2e8f0;box-shadow:0 4px 24px #00000047}.mini-player-art{flex-shrink:0;width:72px;height:72px;border-radius:6px;overflow:hidden;background:#1e293b}.mini-player-artwork{width:100%;height:100%;object-fit:cover;display:block}.mini-player-art-placeholder{width:100%;height:100%;display:grid;place-items:center;color:#475569}.mini-player-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px;justify-content:center}.mini-player-meta{display:flex;flex-direction:column;gap:2px;min-width:0}.mini-player-track-title{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#f1f5f9}.mini-player-track-artist{font-size:11px;color:#94a3b8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mini-player-track-tags{display:flex;flex-wrap:wrap;gap:4px;align-items:center;margin-top:1px}.mini-player-tag{display:inline-block;padding:1px 6px;border-radius:999px;background:#ffffff14;color:#94a3b8;font-size:10px}.mini-player-controls-row{display:flex;align-items:center;gap:6px}.mini-player-play-btn{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--brand);color:#fff;border:none;cursor:pointer;flex-shrink:0;transition:transform .1s,opacity .1s}.mini-player-play-btn:hover:not(:disabled){opacity:.85;transform:scale(1.06)}.mini-player-play-btn:disabled{opacity:.4;cursor:not-allowed}.mini-player-nav{display:grid;place-items:center;width:28px;height:28px;border-radius:6px;background:transparent;color:#94a3b8;border:none;cursor:pointer;transition:color .1s,background .1s}.mini-player-nav:hover:not(:disabled){color:#e2e8f0;background:#ffffff12}.mini-player-nav:disabled{opacity:.3;cursor:not-allowed}.mini-player-ext-link{display:grid;place-items:center;width:28px;height:28px;border-radius:6px;color:#64748b;transition:color .1s}.mini-player-ext-link:hover{color:#e2e8f0}.mini-player-vol-slider{width:72px;accent-color:var(--brand);cursor:pointer}.mini-player-progress-row{display:flex;align-items:center;gap:6px}.mini-player-time{font-size:10px;color:#64748b;flex-shrink:0;font-variant-numeric:tabular-nums}.mini-player-progress-wrap{flex:1;position:relative}.mini-player-progress{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:4px;border-radius:999px;outline:none;cursor:pointer;background:linear-gradient(to right,var(--brand) 0%,var(--brand) var(--pct, 0%),rgba(255,255,255,.12) var(--pct, 0%),rgba(255,255,255,.12) 100%)}.mini-player-progress::-webkit-slider-thumb{-webkit-appearance:none;width:12px;height:12px;border-radius:50%;background:#fff;cursor:pointer}.mini-player-progress::-moz-range-thumb{width:12px;height:12px;border:none;border-radius:50%;background:#fff;cursor:pointer}.mini-player-source{font-size:10px;color:#475569;flex-shrink:0;white-space:nowrap}.mini-player-source a{color:#64748b;text-decoration:underline}.mini-player-searching{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px 24px;color:#64748b;font-size:11px}.mini-player-no-preview{display:flex;flex-direction:column;align-items:center;gap:8px;padding:8px 12px;color:#64748b;font-size:11px;text-align:center}.mini-player-no-preview-links{display:flex;gap:6px}.mini-player-ytinput{display:flex;gap:6px;align-items:center;width:100%;max-width:320px}.finput-sm{padding:4px 8px;font-size:11px;height:auto}@media(max-width:980px){.playlist-fields-grid{grid-template-columns:1fr}.col-hide-md{display:none}.playlist-track-row{grid-template-columns:30px minmax(140px,2fr) 80px 46px 90px 90px 160px}.mini-player{grid-template-columns:1fr;gap:10px}.mini-player-preview-area{justify-content:flex-start}.mini-player-controls{flex-direction:row;flex-wrap:wrap}.phase-legend{display:none}}@media(max-width:640px){.col-hide-sm{display:none}.playlist-track-row{grid-template-columns:28px minmax(120px,2fr) 80px 80px 120px}}
