:root{--joe-primary:30 100 200;--joe-secondary:20 50 140;--joe-accent:220 60 150;--joe-text:78 78 78}@font-face{font-family:geomanist;src:url(https://static.radio.dpgmedia.net/fonts/joe/geomanist/geomanist-light.woff2)format("woff2");font-weight:200;font-style:normal;font-display:swap}@font-face{font-family:geomanist;src:url(https://static.radio.dpgmedia.net/fonts/joe/geomanist/geomanist-book.woff2)format("woff2");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:geomanist;src:url(https://static.radio.dpgmedia.net/fonts/joe/geomanist/geomanist-regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:geomanist;src:url(https://static.radio.dpgmedia.net/fonts/joe/geomanist/geomanist-medium.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:geomanist;src:url(https://static.radio.dpgmedia.net/fonts/joe/geomanist/geomanist-bold.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{color:rgb(var(--joe-text));background:#f4f5f7;min-height:100vh;font-family:geomanist,system-ui,sans-serif}.app-shell{flex-direction:column;min-height:100vh;display:flex}.app-content{flex:1}.nav{background:rgb(var(--joe-secondary));color:#fff;z-index:10;justify-content:space-between;align-items:center;height:60px;padding:0 2rem;display:flex;position:sticky;top:0}.nav-brand{letter-spacing:.04em;color:#fff;font-size:1.1rem;font-weight:600;text-decoration:none}.nav-brand span{color:rgb(var(--joe-accent))}.nav-brand .nav-brand-suffix{color:inherit}.nav-actions{align-items:center;gap:1rem;display:flex}.nav-link{color:#fffc;border-radius:4px;padding:.35rem .6rem;font-size:.875rem;font-weight:500;text-decoration:none;transition:color .15s,background .15s}.nav-link:hover,.nav-link.active{color:#fff;background:#ffffff1f}.nav-logout{color:#fff;cursor:pointer;background:0 0;border:1px solid #ffffff59;border-radius:4px;padding:.35rem .9rem;font-family:inherit;font-size:.85rem;transition:background .15s}.nav-logout:hover{background:#ffffff1a}.page{max-width:1200px;margin:0 auto;padding:2rem 1.5rem}.page-header{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}.page-subtitle{color:#6b7280;margin-top:.25rem;font-size:.85rem}.filter-chip{color:rgb(var(--joe-secondary));background:#eef2ff;border-radius:999px;align-items:center;gap:.4rem;margin:-.75rem 0 1.25rem;padding:.3rem .4rem .3rem .75rem;font-size:.85rem;display:inline-flex}.filter-chip-clear{color:inherit;cursor:pointer;background:0 0;border:none;border-radius:50%;width:1.5rem;height:1.5rem;font-size:.75rem}.filter-chip-clear:hover{background:rgba(var(--joe-secondary), .1)}.page-error{color:#dc2626;margin:-.75rem 0 1.25rem;font-size:.9rem}.page-title{color:rgb(var(--joe-secondary));font-size:1.5rem;font-weight:600}.card{background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 1px 4px #00000014}.stats{grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1.5rem;display:grid}.stat{border-top:4px solid rgb(var(--joe-secondary));background:#fff;border-radius:8px;flex-direction:column;gap:.25rem;padding:1rem 1.25rem;display:flex;box-shadow:0 1px 4px #00000014}.stat--approved{border-top-color:#16a34a}.stat--review{border-top-color:#d97706}.stat--rejected{border-top-color:#dc2626}.stat-label{text-transform:uppercase;letter-spacing:.05em;color:#6b7280;font-size:.8rem;font-weight:600}.stat-value{color:rgb(var(--joe-secondary));font-variant-numeric:tabular-nums;font-size:2rem;font-weight:700}.btn{cursor:pointer;white-space:nowrap;border:none;border-radius:5px;align-items:center;gap:.35rem;padding:.5rem 1.1rem;font-family:inherit;font-size:.875rem;font-weight:500;text-decoration:none;transition:opacity .15s,background .15s;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:rgb(var(--joe-primary));color:#fff}.btn-primary:hover:not(:disabled){opacity:.88}.btn-secondary{color:rgb(var(--joe-secondary));background:#f3f4f6;border:1px solid #d1d5db}.btn-secondary:hover:not(:disabled){background:#e5e7eb}.btn-danger{color:#dc2626;background:#fee2e2}.btn-danger:hover:not(:disabled){background:#fecaca}.btn-sm{padding:.3rem .7rem;font-size:.8rem}.form-group{flex-direction:column;gap:.35rem;display:flex}.form-label{color:#374151;font-size:.85rem;font-weight:600}.form-input{color:rgb(var(--joe-text));background:#fff;border:1px solid #d1d5db;border-radius:5px;padding:.55rem .75rem;font-family:inherit;font-size:.9rem;transition:border-color .15s,box-shadow .15s}.form-input:focus{border-color:rgb(var(--joe-primary));box-shadow:0 0 0 3px rgba(var(--joe-primary), .15);outline:none}.form-input::placeholder{color:#9ca3af}.login-page{background:rgb(var(--joe-secondary));justify-content:center;align-items:center;min-height:100vh;padding:1rem;display:flex}.login-card{background:#fff;border-radius:12px;width:100%;max-width:400px;padding:2.5rem 2.25rem;box-shadow:0 8px 32px #0000002e}.login-logo{text-align:center;margin-bottom:1.75rem}.login-logo-text{color:rgb(var(--joe-secondary));letter-spacing:.02em;font-size:1.5rem;font-weight:700}.login-logo-text span{color:rgb(var(--joe-accent))}.login-subtitle{color:#6b7280;margin-top:.25rem;font-size:.85rem}.login-form{flex-direction:column;gap:1rem;display:flex}.login-form .btn{justify-content:center}.login-error{color:#dc2626;background:#fee2e2;border-radius:5px;padding:.6rem .8rem;font-size:.85rem}.state-loading,.state-empty,.state-error{text-align:center;color:#6b7280;padding:3rem;font-size:.95rem}.state-error{color:#dc2626}.list-toolbar{border-bottom:1px solid #f3f4f6;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:1rem;display:flex}.list-toolbar .form-input{flex:1;min-width:220px;max-width:400px}.list-toolbar .form-select{cursor:pointer;flex:none;min-width:0}.toolbar-filters{flex-wrap:wrap;flex-basis:100%;gap:.5rem;display:flex}.segmented{border:1px solid #d1d5db;border-radius:6px;display:inline-flex;overflow:hidden}.segmented-option{color:rgb(var(--joe-secondary));cursor:pointer;background:#fff;border:none;border-right:1px solid #d1d5db;padding:.45rem .85rem;font-family:inherit;font-size:.85rem;transition:background .15s}.segmented-option:last-child{border-right:none}.segmented-option:hover{background:#f3f4f6}.segmented-option[aria-pressed=true]{background:rgb(var(--joe-secondary));color:#fff}.pagination{border-top:1px solid #f3f4f6;justify-content:center;align-items:center;gap:1rem;padding:1rem;display:flex}.pagination-info{color:#6b7280;font-size:.85rem}.accordion{width:100%;transition:opacity .15s}.accordion.is-loading{opacity:.5}.accordion-item{border-bottom:1px solid #f3f4f6}.accordion-item:last-child{border-bottom:none}.accordion-header{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:1rem;padding:.9rem 1rem;list-style:none;transition:background .12s;display:flex}.accordion-header::-webkit-details-marker{display:none}.accordion-header:before{content:"▶";color:#9ca3af;flex-shrink:0;font-size:.6rem;transition:transform .15s}.accordion-item[open]>.accordion-header:before{transform:rotate(90deg)}.accordion-header:hover{background:#fafafa}.accordion-name{color:rgb(var(--joe-secondary));font-weight:600}.accordion-email{color:#6b7280;font-size:.8rem}.accordion-meta{flex-shrink:0;align-items:center;gap:.75rem;margin-left:auto;display:flex}.accordion-body{background:#f9fafb;border-top:1px solid #f3f4f6;padding:1rem 1.25rem 1.25rem}.entry-date{color:#9ca3af;font-variant-numeric:tabular-nums;flex-shrink:0;width:7.5rem;font-size:.8rem}.entry-person{flex-direction:column;flex-shrink:0;width:14rem;min-width:0;display:flex}.entry-person>*{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.entry-song{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:.9rem;overflow:hidden}.entry-likes{color:rgb(var(--joe-accent));font-variant-numeric:tabular-nums;font-size:.8rem}.entry-body{grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:1.5rem;display:grid}.entry-side{flex-direction:column;gap:1.25rem;display:flex}.entry-heading{text-transform:uppercase;letter-spacing:.06em;color:#9ca3af;margin-bottom:.6rem;font-size:.75rem;font-weight:700}.entry-songs{flex-direction:column;gap:.75rem;list-style:none;display:flex}.entry-songs-item{align-items:flex-start;gap:.75rem;font-size:.9rem;display:flex}.entry-cover{object-fit:cover;background:#e5e7eb;border-radius:4px;flex-shrink:0;width:48px;height:48px}.entry-tag{vertical-align:middle;margin-left:.5rem}.entry-motivation{white-space:pre-line;margin-top:.3rem;line-height:1.45}.entry-muted{color:#9ca3af;margin-top:.3rem;font-size:.85rem}.entry-facts{grid-template-columns:max-content 1fr;gap:.35rem 1rem;font-size:.85rem;display:grid}.entry-facts dt{color:#6b7280}.entry-facts dd{overflow-wrap:anywhere}.entry-facts a{color:rgb(var(--joe-primary))}.entry-contact{margin-top:.75rem}.entry-actions{flex-wrap:wrap;gap:.5rem;display:flex}.entry-error{color:#dc2626;width:100%;font-size:.85rem}.table-wrap{transition:opacity .15s;overflow-x:auto}.table-wrap.is-loading{opacity:.5}.table{border-collapse:collapse;width:100%;font-size:.9rem}.table th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:#6b7280;white-space:nowrap;background:#f9fafb;border-bottom:1px solid #e5e7eb;padding:.75rem 1rem;font-size:.75rem;font-weight:600}.table td{vertical-align:middle;border-bottom:1px solid #f3f4f6;padding:.6rem 1rem}.table tr:last-child td{border-bottom:none}.table tbody tr:hover td{background:#fafafa}.table .col-rank{color:#9ca3af;font-variant-numeric:tabular-nums;width:3rem;font-weight:700}.table .col-number{text-align:right;font-variant-numeric:tabular-nums;width:9rem}.table td.is-sorted{color:rgb(var(--joe-secondary));font-weight:700}.table .col-action{text-align:right;width:1%}.song-cell{align-items:center;gap:.75rem;display:flex}.song-cell .entry-cover{width:40px;height:40px}.song-code{color:#9ca3af;font-size:.75rem}.badge{white-space:nowrap;border-radius:4px;padding:.1rem .5rem;font-size:.75rem;font-weight:600;display:inline-block}.badge-approved{color:#16a34a;background:#f0fdf4}.badge-review{color:#b45309;background:#fffbeb}.badge-rejected{color:#dc2626;background:#fef2f2}.badge-warning{color:#c2410c;background:#fff7ed}.badge-neutral{color:rgb(var(--joe-secondary));background:#eef2ff}@media (width<=900px){.stats{grid-template-columns:repeat(2,1fr)}.entry-body{grid-template-columns:1fr}.entry-date,.entry-song{display:none}}@media (width<=600px){.nav{flex-wrap:wrap;gap:.4rem .75rem;height:auto;padding:.6rem 1rem}.nav-brand{white-space:nowrap;font-size:.95rem}.nav-brand-suffix{display:none}.nav-actions{gap:.25rem}.nav-link{white-space:nowrap;padding:.35rem .45rem;font-size:.8rem}.nav-logout{padding:.3rem .6rem;font-size:.8rem}.table th,.table td{padding:.5rem .6rem}.table .col-number{width:auto}.page{padding:1.25rem 1rem}.list-toolbar .form-input{max-width:none}.list-toolbar .form-select{flex:100%}.segmented{width:100%}.segmented-option{flex:1;padding:.45rem .3rem;font-size:.8rem}.accordion-header{flex-wrap:wrap;gap:.4rem .75rem}.entry-person{flex:1;width:auto}.accordion-meta{flex-basis:100%;margin-left:1.35rem}}
