
:root{--navy:#09243a;--navy2:#123b59;--blue:#1677d2;--blue2:#eaf4ff;--green:#16803c;--green2:#eaf8ef;--amber:#b77b00;--amber2:#fff6db;--red:#b42318;--bg:#f4f7fa;--line:#d9e2ea;--muted:#64748b;--white:#fff;--shadow:0 5px 18px #09243a12;--r:12px}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:#172b3d;font:14px Segoe UI,Arial,sans-serif}
button,input,select,textarea{font:inherit}button{cursor:pointer}.header{height:72px;background:linear-gradient(135deg,var(--navy),var(--navy2));color:#fff;display:flex;align-items:center;padding:0 26px;gap:25px;position:sticky;top:0;z-index:20}.logo{font-weight:800;letter-spacing:1.5px;font-size:18px;line-height:1}.logo small{display:block;font-size:10px;letter-spacing:3px;opacity:.7;margin-top:6px}.nav{height:100%;display:flex}.nav button{background:none;border:0;color:#dbe8f3;padding:0 17px;border-bottom:3px solid transparent;font-weight:700}.nav button.active{background:#ffffff12;color:#fff;border-bottom-color:#58aaf0}.user{margin-left:auto;background:#ffffff12;padding:10px 13px;border-radius:9px;font-size:12px}
main{max-width:1260px;margin:28px auto;padding:0 20px}.view{display:none}.view.active{display:block}.page{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.page h1{margin:0;font-size:27px}.sub{color:var(--muted);margin-top:5px}.card{background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:20px}.grid{display:grid;grid-template-columns:1.05fr .95fr;gap:20px}.toolbar{display:grid;grid-template-columns:1fr 145px 145px 145px;gap:9px}.search{position:relative}.search:before{content:"⌕";position:absolute;left:12px;top:8px;color:#718096;font-size:20px}.search input{padding-left:36px}
input,select,textarea{width:100%;padding:10px 11px;border:1px solid #cbd5df;border-radius:8px;background:#fff;color:#172b3d}input:focus,select:focus,textarea:focus{outline:2px solid #b9dcfa;border-color:var(--blue)}
.btn{border:1px solid #cbd5df;background:#fff;color:#234;border-radius:8px;padding:9px 13px;font-weight:700}.btn:hover{background:#f5f8fb}.primary{background:var(--blue);border-color:var(--blue);color:#fff}.success{background:var(--green);border-color:var(--green);color:#fff}.danger{color:var(--red)}.small{padding:6px 9px;font-size:12px}
.songlist{margin-top:14px;border-top:1px solid var(--line)}.song{display:grid;grid-template-columns:35px 1fr auto 22px;gap:8px;align-items:center;padding:13px 7px;border-bottom:1px solid var(--line);cursor:pointer}.song:hover,.song.sel{background:var(--blue2)}.songtitle{font-weight:800}.meta{font-size:12px;color:var(--muted);margin-top:4px}.badge{display:inline-block;border-radius:20px;padding:3px 8px;font-size:10px;font-weight:800;margin-left:6px;vertical-align:2px}.status-active{background:var(--green2);color:var(--green)}.status-work{background:var(--amber2);color:var(--amber)}.status-archive{background:#eef1f4;color:#66717d}
.detailhead{display:flex;justify-content:space-between;gap:12px}.detailtitle{font-size:28px;font-weight:800}.info{margin-top:18px}.row{display:grid;grid-template-columns:155px 1fr;padding:9px 0;border-bottom:1px solid var(--line)}.muted{color:var(--muted)}.section{margin-top:22px}.section h3{margin:0 0 10px}.media{display:flex;align-items:center;gap:9px;padding:10px 0;border-bottom:1px solid var(--line)}.media:last-child{border-bottom:0}.media .name{font-weight:700;flex:1}.media .type{font-size:11px;color:var(--muted)}
.notice{background:#eff7ff;border:1px solid #cfe5fa;border-radius:9px;padding:11px 13px;color:#27506e;margin-bottom:14px}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.full{grid-column:1/-1}label{display:block;font-size:12px;font-weight:800;margin-bottom:6px}
.checklist{border:1px solid var(--line);border-radius:9px;max-height:450px;overflow:auto;margin-top:13px}.check{display:flex;align-items:center;gap:10px;padding:11px 13px;border-bottom:1px solid var(--line)}.check:last-child{border-bottom:0}.check input{width:auto}.check small{margin-left:auto;color:var(--muted)}
.statcontrols{display:grid;grid-template-columns:170px 170px 1fr auto;gap:9px;align-items:end}.quick{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.tabs{display:flex;border-bottom:1px solid var(--line);margin-top:18px}.tab{border:0;background:none;padding:10px 13px;font-weight:800;color:var(--muted);border-bottom:2px solid transparent}.tab.on{color:var(--blue);border-bottom-color:var(--blue)}
table{width:100%;border-collapse:collapse;margin-top:14px}th,td{text-align:left;padding:11px;border-bottom:1px solid var(--line)}th{background:#f5f8fa;cursor:pointer}.bar{display:flex;align-items:center;gap:10px;margin:11px 0}.barlabel{width:190px;font-weight:700}.track{height:18px;background:#e8eef3;border-radius:10px;overflow:hidden;flex:1}.fill{height:100%;background:#2584d8;border-radius:10px}.count{width:40px;text-align:right;font-weight:800}
.adminrow{display:flex;align-items:center;gap:12px;padding:13px 5px;border-bottom:1px solid var(--line)}.adminrow .grow{flex:1}.actions{display:flex;gap:7px;flex-wrap:wrap}.empty{text-align:center;color:var(--muted);padding:24px}
.modal{position:fixed;inset:0;background:#0007;display:none;align-items:center;justify-content:center;padding:18px;z-index:50}.modal.open{display:flex}.modalbox{background:#fff;border-radius:14px;width:min(720px,100%);max-height:92vh;overflow:auto;padding:22px;box-shadow:0 25px 70px #0005}.modalhead{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.close{border:0;background:#eef2f5;border-radius:50%;width:31px;height:31px}.modalfooter{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}
.toast{position:fixed;right:20px;bottom:20px;background:#102f48;color:#fff;padding:12px 15px;border-radius:9px;display:none;z-index:80}.toast.show{display:block}

.login-screen{position:fixed;inset:0;background:linear-gradient(135deg,#071d2e,#123b59);display:flex;align-items:center;justify-content:center;z-index:100}
.login-box{width:min(430px,calc(100% - 30px));background:#fff;border-radius:16px;padding:32px;box-shadow:0 25px 70px #0006}
.login-logo{text-align:center;font-weight:900;font-size:24px;letter-spacing:2px;color:var(--navy)}.login-logo small{display:block;font-size:10px;letter-spacing:4px;color:var(--muted);margin-top:7px}
.login-box h2{text-align:center;margin:28px 0 20px}.login-box label{margin-top:13px}.login-actions{margin-top:20px}.login-hint{background:#f3f7fa;border:1px solid var(--line);border-radius:8px;padding:11px;font-size:12px;color:var(--muted);margin-top:18px}
.user-menu{position:relative}.user-btn{border:0;background:#ffffff12;color:#fff;padding:10px 13px;border-radius:9px;font-size:12px}.user-dropdown{position:absolute;right:0;top:44px;width:220px;background:#fff;color:#172b3d;border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 30px #0002;padding:7px;display:none}.user-dropdown.open{display:block}.user-dropdown button{display:block;width:100%;text-align:left;border:0;background:none;padding:10px;border-radius:7px}.user-dropdown button:hover{background:#f3f6f8}
.role-badge{display:inline-block;border-radius:20px;padding:3px 8px;font-size:10px;font-weight:800}.role-admin{background:#eaf4ff;color:#1768a9}.role-member{background:#eef8f1;color:#287344}
.permission-note{background:#fff8e6;border:1px solid #f0d58c;color:#735600;padding:11px 13px;border-radius:8px;margin-bottom:14px;font-size:13px}
.user-row{display:grid;grid-template-columns:1fr 150px 120px auto;gap:10px;align-items:center;padding:13px 5px;border-bottom:1px solid var(--line)}
@media(max-width:700px){.user-row{grid-template-columns:1fr auto}.user-row .role-select,.user-row .status-select{grid-column:auto}}

@media(max-width:900px){.header{height:auto;flex-wrap:wrap;padding:14px}.nav{order:3;width:100%;height:46px;overflow:auto}.nav button{padding:0 12px}.user{display:none}.grid,.toolbar,.statcontrols,.formgrid{grid-template-columns:1fr}.full{grid-column:auto}.song{grid-template-columns:30px 1fr 20px}.song .counts{display:none}.row{grid-template-columns:120px 1fr}.barlabel{width:120px}}

.status-draft{background:#eef2f7;color:#536274;border-color:#d5dde7}

.media-editor{border-top:1px solid var(--line);margin-top:18px;padding-top:4px}.media-upload{margin-top:10px}.media-add-grid{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;align-items:center}@media(max-width:700px){.media-add-grid{grid-template-columns:1fr}.media-add-grid .btn{width:100%}}

.version{display:block;font-size:9px;font-weight:500;letter-spacing:.7px;line-height:1.2;color:#91a8c0;margin-top:5px}
