:root{--navy:#071c25;--navy2:#123542;--teal:#0b827b;--aqua:#a9eedf;--bg:#f5f8f8;--paper:#fff;--ink:#172b32;--muted:#678087;--line:#dfe9e9;--shadow:0 18px 60px #0b293316}*{box-sizing:border-box}body{margin:0;font-family:Inter,"Segoe UI",Arial,sans-serif;background:var(--bg);color:var(--ink)}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}a{color:inherit}.shell{min-height:100vh;display:grid;grid-template-columns:244px minmax(0,1fr)}.sidebar{padding:26px 16px;background:var(--navy);color:white;display:flex;flex-direction:column;gap:18px}.brand{padding:12px 12px 24px;border-bottom:1px solid #25414b}.logo{font-size:30px;font-weight:900;letter-spacing:-2.5px;color:var(--aqua)}.logo span{color:white}.subbrand{color:#8cbbc3;font-weight:700;font-size:10px;letter-spacing:2px;margin-top:10px}.nav-label{font-size:10px;color:#759ca6;font-weight:900;letter-spacing:1.8px;margin:12px 13px 2px}.nav-item{border:0;width:100%;text-align:left;background:none;color:#b5cbd0;padding:13px 14px;font-size:14px;font-weight:650;border-radius:12px;display:flex;gap:12px;align-items:center}.nav-item.active,.nav-item:hover{background:#1b584f;color:white}.sidebar-foot{margin-top:auto;border-top:1px solid #284550;padding:18px 12px 6px;color:#9ab8c0;font-size:12px;line-height:1.7}.dot{display:inline-block;height:8px;width:8px;border-radius:100%;background:#73d8b7;margin-right:6px}.main{padding:26px clamp(16px,3.2vw,48px) 50px;min-width:0}.topbar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-bottom:22px;border-bottom:1px solid var(--line);margin-bottom:27px}.topbar strong{font-size:13px}.top-controls{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.outlet-select,input,select,textarea{border:1px solid #cbdcdd;background:white;border-radius:11px;padding:12px 13px;color:var(--ink);min-width:0}.outlet-select{max-width:175px;font-size:13px}.eyebrow{color:var(--teal);font-size:11px;letter-spacing:1.7px;font-weight:900;text-transform:uppercase}.heading{font-size:clamp(27px,3.1vw,41px);letter-spacing:-1.4px;margin:8px 0 9px;line-height:1.1}.subtitle{color:var(--muted);font-size:14px;line-height:1.65;margin:0 0 25px;max-width:770px}.hrow{display:flex;justify-content:space-between;align-items:start;gap:15px;flex-wrap:wrap}.card{background:white;border:1px solid var(--line);border-radius:20px;padding:23px;box-shadow:var(--shadow)}.card h3{margin:0 0 10px;font-size:19px}.muted{color:var(--muted)}.small{font-size:12px;line-height:1.6}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:17px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.space{height:20px}.btn{border:0;padding:11px 15px;border-radius:10px;font-size:13px;font-weight:750;display:inline-flex;align-items:center;justify-content:center;gap:7px;transition:opacity .15s}.btn:hover{opacity:.88}.btn-primary{background:var(--teal);color:white}.btn-dark{background:#112f3a;color:white}.btn-soft{background:#e8f4f1;color:#126a65}.btn-danger{background:#ffefed;color:#ba4c45}.btn-outline{background:white;border:1px solid var(--line);color:var(--ink)}.btn-small{padding:8px 10px;font-size:11px}.actions{display:flex;flex-wrap:wrap;gap:8px}.pill{display:inline-block;padding:5px 9px;border-radius:100px;font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.5px;background:#edf3f4;color:#557279}.pill.live{background:#d9f8e9;color:#07734d}.pill.closed{background:#fbeaea;color:#9c4744}.pill.pending{background:#e9f3f7;color:#31667a}.pill.accepted{background:#d7f9ea;color:#097457}.pill.performed{background:#efedff;color:#6258ab}.pill.skipped{background:#fbe8e8;color:#995453}.hero{padding:31px;background:linear-gradient(115deg,#0b313d 2%,#0b635d 100%);border-radius:24px;color:white;margin-bottom:20px;overflow:hidden}.hero h2{font-size:clamp(28px,3.3vw,49px);letter-spacing:-1.5px;line-height:1.08;margin:14px 0}.hero em{color:#a7f2de;font-style:normal}.hero p{color:#d2e7e7;line-height:1.65;max-width:600px}.hero-foot{display:flex;justify-content:space-between;align-items:end;gap:20px;flex-wrap:wrap}.qrbox{width:180px;background:white;color:#0a2730;padding:12px;text-align:center;border-radius:15px;flex-shrink:0}.qrbox svg{display:block;width:100%;max-height:156px}.qrbox strong{display:block;font-size:11px;margin-top:5px}.song{padding:15px 0;border-bottom:1px solid #e5efed;display:flex;align-items:center;gap:13px}.song:last-child{border-bottom:0}.song-icon{width:43px;height:43px;display:grid;place-items:center;border-radius:13px;background:#e5f6f1;color:#0b7970;font-size:22px;flex-shrink:0}.song-info{min-width:0;flex:1}.song-title{font-weight:800;font-size:15px;overflow-wrap:anywhere}.song-meta{font-size:12px;color:#6c8589;margin-top:5px;line-height:1.4}.votes{background:#e1f3ef;color:#126960;font-size:14px;font-weight:900;padding:11px;border-radius:13px;min-width:48px;text-align:center}.votes small{display:block;font-size:9px;letter-spacing:.5px}.note{font-size:12px;color:#51737a;margin-top:9px;font-style:italic}.badge-row{display:flex;gap:5px;flex-wrap:wrap;margin-top:7px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.section-heading h3{margin:0}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:15px}.field label{font-size:12px;color:#476068;font-weight:750}.field input,.field textarea,.field select{width:100%}.field textarea{min-height:76px;resize:vertical}.formrow{display:grid;grid-template-columns:1fr 1fr;gap:12px}.checkline{display:flex;gap:9px;align-items:start;margin:12px 0;font-size:12px;line-height:1.6;color:#5e747b}.checkline input{margin-top:3px}.searchbox{width:100%;font-size:15px;padding:14px}.search-result{display:flex;gap:10px;align-items:center;justify-content:space-between;padding:13px 0;border-bottom:1px solid var(--line)}.search-result:last-child{border-bottom:0}.search-result strong{font-size:13px}.stat{background:white;border-radius:17px;border:1px solid var(--line);padding:18px}.stat strong{display:block;font-size:30px;letter-spacing:-1px;margin:6px 0}.stat span{font-size:12px;color:#697f85}.scroll{overflow:auto}.table{width:100%;border-collapse:collapse;font-size:12px;min-width:600px}.table th{text-align:left;font-size:10px;text-transform:uppercase;letter-spacing:1px;color:#789096;border-bottom:1px solid #dde8e8;padding:11px}.table td{padding:13px 11px;border-bottom:1px solid #e7eeee;line-height:1.45}.table tr:last-child td{border-bottom:0}.empty{text-align:center;color:#70868d;padding:44px 12px;font-size:14px}.warn{border:1px solid #f1c6a1;background:#fff9f2;color:#8e592f;border-radius:13px;padding:15px;font-size:12px;line-height:1.65}.error{color:#bc4747;font-size:13px;line-height:1.5}.activity{display:flex;gap:10px;align-items:start;padding:12px 0;border-bottom:1px solid #e3eded;font-size:13px}.activity:last-child{border-bottom:0}.activity .avatar{width:36px;height:36px;border-radius:100%;background:#e2f1ef;display:grid;place-items:center;font-weight:900;color:#267269}.activity strong{font-size:13px}.activity small{display:block;margin-top:3px;color:#829497}.login{max-width:440px}.loading-state{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;color:#577981}.spinner{height:30px;width:30px;border-radius:100%;border:3px solid #d6e9e3;border-top-color:#138477;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}#toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:#0f3037;color:white;padding:12px 18px;border-radius:12px;box-shadow:0 20px 40px #0003;z-index:50;display:none;font-size:13px;max-width:90%;text-align:center}#toast.visible{display:block}.footer-links{font-size:11px;color:#6e828a;padding:24px 0}.layout-projector{background:#061922;color:white;min-height:100vh;padding:2.3vw;display:flex;flex-direction:column;gap:2vw}.projector-head{display:flex;justify-content:space-between;align-items:center;gap:15px}.projector-head .logo{font-size:clamp(28px,3.4vw,57px)}.projector-head .subbrand{font-size:clamp(10px,1vw,14px)}.projector-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:2vw;flex:1;min-height:0}.projector-panel{padding:2vw;background:#102e3a;border:1px solid #254955;border-radius:25px;min-height:0}.projector-panel h2{font-size:clamp(23px,2.3vw,42px);letter-spacing:-1px;margin:0 0 1.6vw;color:#aff0dd}.projector-panel .song{border-color:#254654}.projector-panel .song-icon{background:#1e5555;color:#b6ecda}.projector-panel .song-title{font-size:clamp(17px,2vw,28px);color:white}.projector-panel .song-meta{font-size:clamp(11px,1vw,16px);color:#a5c2c8}.projector-panel .votes{background:#275d5b;color:#ddfff5}.projector-panel .pill{font-size:10px}.projector-bottom{display:flex;align-items:center;gap:25px;background:#0d3440;border-radius:22px;padding:1.5vw 2vw}.projector-bottom .qrbox{width:clamp(105px,11vw,190px)}.projector-bottom h3{font-size:clamp(20px,2.6vw,40px);margin:0 0 10px}.projector-bottom p{font-size:clamp(13px,1.2vw,18px);color:#bfd6d8;margin:0}.projector-activity{padding-top:16px;color:#c7e4e3;font-size:clamp(11px,1vw,15px)}.projector-activity strong{color:#a9f0d6}.projector-close{margin-left:auto;align-self:start}.offline{border:2px solid #f4b078;background:#fff8ed;padding:12px 15px;color:#6d4a25;border-radius:12px;margin-bottom:20px;font-size:13px}@media(max-width:1000px){.grid4{grid-template-columns:repeat(2,1fr)}.grid3{grid-template-columns:repeat(2,1fr)}.shell{grid-template-columns:190px minmax(0,1fr)}}@media(max-width:700px){.shell{display:block}.sidebar{position:static;padding:14px;gap:10px}.brand{padding:3px 8px 12px}.logo{font-size:22px}.subbrand{font-size:8px;margin-top:5px}.nav-label,.sidebar-foot{display:none}.navlinks{display:flex;overflow-x:auto;gap:5px}.nav-item{width:auto;white-space:nowrap;padding:10px 9px;font-size:11px;gap:5px}.main{padding:17px 14px 30px}.topbar{gap:9px;padding-bottom:15px;margin-bottom:21px}.top-controls{gap:5px}.outlet-select{font-size:11px;padding:9px;max-width:145px}.grid2,.grid3{grid-template-columns:1fr}.formrow{grid-template-columns:1fr}.card{padding:17px}.hero{padding:23px 18px}.qrbox{width:145px}.heading{font-size:28px}.grid4{gap:9px}.stat{padding:14px}.stat strong{font-size:25px}.projector-grid{grid-template-columns:1fr}.layout-projector{gap:13px;padding:14px}.projector-panel{padding:17px}.projector-bottom{padding:16px}.projector-bottom .qrbox{width:108px}.projector-close{font-size:10px}.projector-panel .song:nth-of-type(n+5){display:none}}@media(min-width:1500px){.layout-projector{padding:2vw 3vw}.projector-grid{grid-template-columns:1.4fr 1fr}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* Five-outlet shared projector: public display only, no staff controls. */
.projector-live{text-align:right}.projector-count{font-size:clamp(11px,1.1vw,17px);color:#bed1d6;margin-top:8px}
.projector-strip{display:flex;align-items:center;justify-content:space-around;gap:12px;flex-wrap:wrap;background:#0c2935;border:1px solid #234751;border-radius:15px;padding:12px 20px;color:#cee6e5;font-size:clamp(12px,1.05vw,18px);font-weight:750}
.projector-strip b{color:#62e2b2;font-size:12px;margin-left:4px}
.projector-subtitle{color:#96b3bd;font-size:clamp(11px,.95vw,16px);margin:-8px 0 14px}
.projector-list{max-height:48vh;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#457177 transparent;padding-right:10px}
.projector-list .song-meta{color:#bbd6db}.projector-list .song .note{color:#acd9cc}
.projector-message{padding:13px 4px;border-bottom:1px solid #274856;font-size:clamp(14px,1.1vw,20px);color:#c8e8de}
.projector-message strong{color:#9df4d6}.projector-message p{color:#e1f1f1;margin:5px 0 0;font-size:clamp(12px,1vw,17px)}
.projector-callout{font-size:clamp(11px,.85vw,15px);font-weight:900;color:#99e3d1;letter-spacing:.9px;margin-bottom:7px}
.projector-badge{margin-left:auto;text-align:right;font-size:clamp(9px,.7vw,12px);color:#72a5b1;line-height:1.6}
.projector-badge span{font-size:clamp(8px,.6vw,11px)}
.projector-demo-warning{font-size:11px;color:#ffe3a2;text-align:center}
@media(max-width:900px){.projector-badge{display:none}.projector-list{max-height:45vh}.projector-strip{justify-content:center}}
