*{box-sizing:border-box}body{margin:0;background:#0f1116;color:#e6e6e6;font-family:-apple-system,system-ui,Segoe UI,Roboto,sans-serif;font-size:14px}a{color:#7aa2ff;text-decoration:none}button{background:#2a3244;color:#fff;border:1px solid #3a4560;padding:8px 14px;border-radius:4px;cursor:pointer;font-size:14px}button:hover{background:#36415a}button.primary{background:#4361ee;border-color:#4361ee}button.primary:hover{background:#5873f0}button.danger{background:#8b2a2a;border-color:#8b2a2a}button.small{padding:4px 10px;font-size:12px}input,select,textarea{background:#1a1d2a;color:#e6e6e6;border:1px solid #323747;padding:8px 10px;border-radius:4px;font-size:14px;width:100%}input:focus,select:focus{outline:none;border-color:#4361ee}.layout{display:flex;min-height:100vh}.sidebar{width:220px;background:#13161f;padding:20px 0;border-right:1px solid #232838}.sidebar h1{font-size:16px;margin:0 20px 20px;letter-spacing:1px}.sidebar a{display:block;padding:10px 20px;color:#b6b9c6;border-left:3px solid transparent}.sidebar a.active{background:#1a1f2e;border-left-color:#4361ee;color:#fff}.sidebar a:hover{background:#1a1f2e}.main{flex:1;padding:24px 32px;overflow:auto}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.topbar .user{color:#8a8f9e;margin-right:12px}.card{background:#161a25;border:1px solid #232838;border-radius:6px;padding:16px;margin-bottom:12px}.card h3{margin:0 0 8px;font-size:15px}.grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:10px;border-bottom:1px solid #232838}th{color:#8a8f9e;font-weight:500;font-size:12px;text-transform:uppercase}.dot{width:10px;height:10px;border-radius:50%;display:inline-block;margin-right:6px}.dot.online{background:#4ade80}.dot.offline{background:#5c6075}.badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:11px;background:#2a3244}.badge.yes{background:#1f6f3a}.badge.no{background:#6f6a1f}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:100}.modal{background:#1a1d2a;padding:24px;border-radius:8px;min-width:400px;max-width:600px;max-height:80vh;overflow:auto}.modal h2{margin-top:0}.field{margin-bottom:12px}.field label{display:block;margin-bottom:4px;color:#b6b9c6;font-size:12px}.row{display:flex;gap:8px}.login{min-height:100vh;display:flex;align-items:center;justify-content:center}.login .card{width:380px}.login h1{text-align:center;margin-top:0}.upload-zone{border:2px dashed #3a4560;border-radius:6px;padding:40px;text-align:center;color:#8a8f9e;margin-bottom:20px;cursor:pointer}.upload-zone.dragging{border-color:#4361ee;background:#1a1f2e}.toast{position:fixed;bottom:20px;right:20px;padding:12px 20px;background:#1a6b3a;color:#fff;border-radius:6px;z-index:200}.toast.error{background:#8b2a2a}.playlist-song{display:flex;align-items:center;padding:10px;background:#1a1d2a;border-radius:4px;margin-bottom:4px}.playlist-song .drag{color:#5c6075;margin-right:10px;cursor:grab}.sched-bar{display:flex;align-items:center;gap:6px;margin-bottom:6px}.sched-day{width:30px;color:#8a8f9e;font-size:11px}.sched-track{flex:1;height:32px;background:#1a1d2a;position:relative;border-radius:4px}.sched-block{position:absolute;top:2px;bottom:2px;background:#4361ee;border-radius:3px;font-size:11px;padding:4px 6px;overflow:hidden;color:#fff;cursor:pointer}.storage-usage{font-size:12px;color:#8a8f9e;margin-top:8px}.error{color:#ef4444;font-size:13px;margin-top:8px}.status-text{color:#8a8f9e;font-size:12px}.flex-between{display:flex;justify-content:space-between;align-items:center}.pill{display:inline-block;padding:2px 10px;background:#1a1f2e;border-radius:10px;font-size:11px;margin-right:4px}.hamburger{display:none;background:none;border:none;color:#e6e6e6;font-size:22px;padding:4px 10px;cursor:pointer;min-height:40px}.nav-scrim{display:none}.topbar-right{display:flex;align-items:center;gap:8px}.table-wrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width: 960px){.main{padding:16px}.modal{min-width:0;width:calc(100vw - 32px);max-width:560px;padding:18px}}@media (max-width: 720px){body{font-size:15px}button{padding:10px 14px;min-height:40px}button.small{padding:6px 10px;min-height:32px;font-size:13px}input,select,textarea{padding:10px;font-size:16px}.layout{display:block}.sidebar{position:fixed;top:0;left:0;height:100vh;width:240px;transform:translate(-100%);transition:transform .2s ease;z-index:120;overflow-y:auto}.layout.nav-open .sidebar{transform:translate(0);box-shadow:0 0 20px #0009}.layout.nav-open .nav-scrim{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:110}.sidebar a{padding:14px 20px;font-size:16px}.main{padding:12px}.topbar{margin-bottom:14px;gap:8px}.hamburger{display:block}.topbar .user{display:none}.topbar-right{margin-left:auto}.grid{grid-template-columns:1fr;gap:10px}.row{flex-direction:column}.row>*{width:100%}.flex-between{flex-wrap:wrap;gap:8px}table{font-size:13px;min-width:600px}th,td{padding:8px 6px}.scroll-table{overflow-x:auto;-webkit-overflow-scrolling:touch}.modal{width:100vw;max-width:100vw;min-width:0;height:100vh;max-height:100vh;border-radius:0;padding:16px}.playlists-layout{grid-template-columns:1fr!important}.sched-bar{gap:4px}.sched-day{width:28px;font-size:10px}.sched-block{font-size:10px;padding:2px 4px}.upload-zone{padding:24px 16px}.login .card{width:calc(100vw - 32px);max-width:380px}h2{font-size:18px;margin:4px 0 12px}}
