@import "https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;600&family=Noto+Sans+JP:wght@300;400;500;700&display=swap";
.panel-tabs{gap:8px;margin-bottom:10px;display:flex}.panel-tab{border:1px solid var(--glass-border);color:var(--text-dim);cursor:pointer;white-space:nowrap;background:#ffffff0d;border-radius:10px;flex:1;padding:8px;font-family:inherit;font-size:13px;font-weight:700;transition:background .2s,color .2s}.panel-tab:hover{color:var(--text-light);background:#ffffff1a}.panel-tab.active{background:var(--primary);color:#fff;border-color:#0000}.schedule-slots{flex-direction:column;gap:6px;margin:4px 0 0;display:flex}.schedule-slots-title{color:var(--text-dim);letter-spacing:.04em;font-size:12px}.schedule-slot{border:1px solid var(--glass-border);opacity:.55;background:#ffffff0a;border-radius:10px;align-items:center;gap:8px;padding:5px 8px;transition:opacity .2s,border-color .2s;display:flex}.schedule-slot.on{opacity:1;border-color:#ff336673}.slot-toggle{color:var(--text-dim);white-space:nowrap;cursor:pointer;align-items:center;gap:6px;font-size:12px;display:flex}.slot-toggle input{accent-color:var(--primary);cursor:pointer;width:16px;height:16px}.schedule-slot{flex-wrap:wrap}.schedule-slot .slot-time{flex:none}.schedule-slot .slot-source{flex:120px;min-width:120px}.signage-timer-controls{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.signage-timer-controls .btn-primary-small{white-space:nowrap;writing-mode:horizontal-tb;flex:none}.signage-timer-controls .time-label{white-space:nowrap}.slot-duration{border:1px solid var(--glass-border);width:60px;color:var(--text-light);text-align:center;background:#00000059;border-radius:8px;flex:none;padding:8px 6px;font-size:13px}.slot-duration-label{color:var(--text-dim);white-space:nowrap;font-size:12px}.mute-btn{border:1px solid var(--glass-border);width:40px;height:40px;color:var(--text-light);cursor:pointer;background:#ffffff0d;border-radius:10px;flex:none;font-size:16px;transition:background .2s,border-color .2s}.mute-btn:hover{background:#ffffff1a}.mute-btn.muted{background:#ff336626;border-color:#ff336680}.tappable{cursor:pointer}.mic-section{text-align:center;justify-content:center;align-items:center;min-height:420px}.mic-hint{color:var(--text-dim);font-size:13px;line-height:1.7}.mic-button{background:radial-gradient(circle at 35% 30%, #ffffff1f, #ff33662e), var(--glass-bg);width:190px;height:190px;color:var(--text-light);cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;border:2px solid #ff336680;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:8px;margin:18px 0;transition:transform .15s,box-shadow .15s,background .15s;display:flex}.mic-button .mic-icon{font-size:56px;line-height:1}.mic-button .mic-label{letter-spacing:.05em;font-size:15px;font-weight:700}.mic-button:hover{box-shadow:0 0 25px #ff336640}.mic-button.on{background:radial-gradient(circle at 35% 30%, #ffffff26, #ff33668c), var(--primary);border-color:var(--primary);animation:1.4s ease-in-out infinite micPulse;transform:scale(1.06);box-shadow:0 0 45px #ff33668c}@keyframes micPulse{0%,to{box-shadow:0 0 30px #ff336673}50%{box-shadow:0 0 60px #ff3366bf}}.mic-status{min-height:20px}.mic-live-dot{vertical-align:middle;background:#ff3b30;border-radius:50%;width:8px;height:8px;margin-left:6px;animation:1s ease-in-out infinite micDotBlink;display:inline-block}@keyframes micDotBlink{0%,to{opacity:1}50%{opacity:.25}}.control-panel .control-section{gap:8px}.control-panel .timer-controls{margin-bottom:8px}.control-panel .drop-zone{margin-bottom:0}.player-main .control-panel{justify-content:flex-start}@media (max-height:880px){#player-container .player-content{padding:14px 30px}#player-container .player-header{padding-bottom:10px}#player-container .player-main{gap:24px;padding:14px 0}#player-container .music-flow-column{gap:8px}#player-container .now-playing-card{padding:14px}#player-container .album-art-wrapper{width:140px;height:140px;margin-bottom:12px}#player-container .song-details h2{margin-bottom:4px;font-size:20px}#player-container .song-details .channel-tag{margin-bottom:4px}#player-container .side-song-card{padding:8px 14px}#player-container .control-panel{padding:16px 22px}#player-container .select-group{margin-bottom:8px}}
:root{--primary:#f36;--primary-hover:#ff1a53;--bg-dark:#0a0a0c;--text-light:#f5f5f7;--text-dim:#a1a1a6;--glass-bg:#14141999;--glass-border:#ffffff14}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-dark);color:var(--text-light);height:100vh;font-family:Noto Sans JP,Montserrat,sans-serif;overflow:hidden}.fade-in{animation:.8s forwards fadeIn}.hidden{display:none!important}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}#login-container{background:radial-gradient(circle,#1c1c24 0%,#0a0a0c 100%);justify-content:center;align-items:center;height:100vh;display:flex}.login-card{background:var(--glass-bg);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);text-align:center;border-radius:20px;width:100%;max-width:440px;padding:40px;box-shadow:0 20px 40px #00000080}.logo{letter-spacing:1px;margin-bottom:8px;font-size:28px;font-weight:700}.logo span{color:var(--primary);font-weight:300}.subtitle{color:var(--text-dim);text-transform:uppercase;letter-spacing:2px;margin-bottom:30px;font-size:14px}.input-group{text-align:left;margin-bottom:20px}.input-group label{color:var(--text-dim);letter-spacing:.5px;margin-bottom:6px;font-size:12px;display:block}.input-group input{border:1px solid var(--glass-border);width:100%;color:var(--text-light);background:#0000004d;border-radius:10px;padding:14px;font-size:16px;transition:all .3s}.input-group input:focus{border-color:var(--primary);outline:none;box-shadow:0 0 10px #f363}.btn-primary{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:10px;width:100%;margin-top:10px;padding:16px;font-size:16px;font-weight:600;transition:background .3s,transform .1s}.btn-primary:hover{background:var(--primary-hover)}.btn-primary:active{transform:scale(.98)}.error-msg{color:#ff453a;margin-top:15px;font-size:14px}#player-container{width:100vw;height:100vh;position:relative;overflow:hidden}.bg-slideshow{z-index:1;background-position:50%;background-size:cover;width:100%;height:100%;transition:background-image 2.5s ease-in-out;animation:30s infinite alternate bgZoom;position:absolute;top:0;left:0;transform:scale(1.05)}@keyframes bgZoom{0%{transform:scale(1.02)}to{transform:scale(1.08)}}.overlay{z-index:2;background:linear-gradient(135deg,#0a0a0ce6 0%,#0a0a0cb3 100%);width:100%;height:100%;position:absolute;top:0;left:0}.player-content{z-index:3;flex-direction:column;justify-content:space-between;height:100vh;padding:30px;display:flex;position:relative}.player-header{border-bottom:1px solid var(--glass-border);justify-content:space-between;align-items:center;padding-bottom:20px;display:flex}.brand{letter-spacing:.5px;font-size:20px;font-weight:700}.brand span{color:var(--primary);font-weight:300}.shop-info{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--glass-border);background:#ffffff1a;border-radius:20px;padding:6px 14px;font-size:14px}.player-main{flex:1;grid-template-columns:1.2fr 1fr;align-items:center;gap:40px;padding:40px 0;display:grid}.music-flow-column{flex-direction:column;gap:15px;width:100%;min-width:0;display:flex}.side-song-card{-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);background:#ffffff08;border:1px solid #ffffff0a;border-radius:16px;align-items:center;gap:20px;padding:12px 25px;transition:all .5s;display:flex;position:relative}.card-indicator{color:var(--primary);letter-spacing:.5px;background:#ff33661a;border-radius:6px;padding:4px 8px;font-size:11px;font-weight:600}.side-song-info{text-align:left}.side-song-info h4{color:var(--text-light);margin-bottom:2px;font-size:15px;font-weight:500}.side-song-info p{color:var(--text-dim);font-size:11px}.prev-song{opacity:.45;transform:scale(.93)}.next-song{opacity:.7;transform:scale(.96)}.now-playing-card{text-align:center;background:var(--glass-bg);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(30px);backdrop-filter:blur(30px);z-index:5;border-radius:24px;flex-direction:column;align-items:center;padding:30px;display:flex;transform:scale(1);box-shadow:0 10px 30px #0000004d}.album-art-wrapper{border-radius:16px;width:240px;height:240px;margin-bottom:30px;position:relative;overflow:hidden;box-shadow:0 15px 30px #0009}.album-art{object-fit:cover;width:100%;height:100%;transition:transform .5s}.wave-visualizer{align-items:flex-end;gap:4px;height:30px;display:flex;position:absolute;bottom:15px;left:50%;transform:translate(-50%)}.wave-visualizer span{background-color:var(--primary);border-radius:2px;width:4px;height:5px;animation:1.2s ease-in-out infinite bounce}.wave-visualizer span:nth-child(2){animation-delay:.2s}.wave-visualizer span:nth-child(3){height:10px;animation-delay:.4s}.wave-visualizer span:nth-child(4){animation-delay:.6s}.wave-visualizer span:nth-child(5){animation-delay:.8s}@keyframes bounce{0%,to{height:5px}50%{height:25px}}.song-details .channel-tag{color:var(--primary);text-transform:uppercase;letter-spacing:1.5px;margin-bottom:10px;font-size:13px;font-weight:600}.song-details h2{margin-bottom:8px;font-size:26px;font-weight:700;line-height:1.3}.song-details .song-category{color:var(--text-dim);background:#ffffff0d;border-radius:12px;padding:4px 12px;font-size:15px;display:inline-block}.control-panel{background:var(--glass-bg);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(30px);backdrop-filter:blur(30px);border-radius:24px;flex-direction:column;justify-content:space-between;min-width:0;height:100%;padding:30px;display:flex}.timer-section h3{margin-bottom:8px;font-size:16px}.select-group{text-align:left;margin-bottom:20px}.select-group label{color:var(--text-dim);letter-spacing:.5px;margin-bottom:8px;font-size:13px;display:block}.custom-select{border:1px solid var(--glass-border);width:100%;color:var(--text-light);cursor:pointer;background:#0006;border-radius:8px;outline:none;padding:12px;font-size:14px;transition:border-color .3s}.custom-select:focus{border-color:var(--primary)}.custom-select option{background-color:var(--bg-dark);color:var(--text-light)}.drop-zone{text-align:center;cursor:pointer;background:#0003;border:2px dashed #ffffff26;border-radius:12px;width:100%;margin-bottom:25px;padding:20px;transition:all .3s}.drop-zone:hover,.drop-zone.dragover{border-color:var(--primary);background:#ff33660d;box-shadow:0 0 15px #ff336626}.drop-zone-content{flex-direction:column;align-items:center;gap:6px;display:flex}.drop-icon{margin-bottom:2px;font-size:24px}.drop-zone p{color:var(--text-light);font-size:13px;font-weight:500}.drop-sub{color:var(--text-dim);font-size:11px}.timer-desc{color:var(--text-dim);margin-bottom:15px;font-size:12px;line-height:1.5}.timer-controls{gap:12px;margin-bottom:20px;display:flex}.image-modal-overlay{-webkit-backdrop-filter:blur(25px);backdrop-filter:blur(25px);z-index:1000;background-color:#050508f2;justify-content:center;align-items:center;width:100vw;height:100vh;animation:.4s cubic-bezier(.16,1,.3,1) forwards fadeIn;display:flex;position:fixed;top:0;left:0}.close-modal-btn{color:#fff;cursor:pointer;z-index:1010;background:#ffffff1a;border:1px solid #fff3;border-radius:50%;justify-content:center;align-items:center;width:60px;height:60px;font-size:44px;line-height:52px;transition:all .2s;display:flex;position:absolute;top:30px;right:40px}.close-modal-btn:hover{background:var(--primary);border-color:var(--primary);transform:rotate(90deg)scale(1.1)}.modal-content-wrapper{border:1px solid #ffffff1a;border-radius:16px;justify-content:center;align-items:center;max-width:90%;max-height:90%;display:flex;overflow:hidden;box-shadow:0 30px 60px #000c}.modal-content-wrapper img{object-fit:contain;max-width:100%;max-height:90vh}.select-with-action{gap:10px;width:100%;display:flex}.select-with-action .custom-select{flex:1;min-width:0}.btn-delete{cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ff453a1a;border:1px solid #ff453a40;border-radius:8px;justify-content:center;align-items:center;width:44px;height:44px;font-size:18px;transition:all .3s;display:flex}.btn-delete:hover{color:#fff;background:#ff453acc;border-color:#ff453a;transform:scale(1.05)}.control-section{flex-direction:column;gap:12px;width:100%;display:flex}.control-section h3{text-align:left;border-left:3px solid var(--primary);margin-bottom:5px;padding-left:10px;font-size:15px;font-weight:600}.border-top{border-top:1px solid var(--glass-border);margin-top:5px;padding-top:20px}.btn-primary-small{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:8px;flex:1;padding:12px;font-weight:600;transition:all .3s}.btn-primary-small:hover{background:var(--primary-hover)}.video-overlay{z-index:999;background-color:#000;justify-content:center;align-items:center;width:100vw;height:100vh;display:flex;position:fixed;top:0;left:0}.header-volume{border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff0d;border-radius:20px;align-items:center;gap:12px;padding:8px 16px;display:flex}.header-volume span{color:var(--text-dim);white-space:nowrap;font-size:13px}.header-volume input[type=range]{width:120px;accent-color:var(--primary);cursor:pointer}.left-volume-control{-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);background:#ffffff08;border:1px solid #ffffff0a;border-radius:16px;justify-content:space-between;align-items:center;width:100%;padding:15px 25px;display:flex}.channel-tabs{grid-template-columns:repeat(4,1fr);gap:8px;width:100%;display:grid}.channel-tab{color:var(--text-dim);cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);white-space:nowrap;text-overflow:ellipsis;text-align:center;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:8px;padding:10px 4px;font-size:11px;font-weight:600;transition:all .3s;overflow:hidden}.channel-tab:hover:not(:disabled){color:var(--text-light);background:#ffffff26}.channel-tab.active{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:0 4px 15px #ff33664d}.channel-tab:disabled{opacity:.3;cursor:not-allowed;background:#0003}.left-volume-control span{color:var(--text-light);font-size:13px;font-weight:600}.left-volume-control input[type=range]{width:65%;accent-color:var(--primary);cursor:pointer}.mini-drop-zone{background:#00000026!important;border-width:1px!important;margin-bottom:5px!important;padding:12px 10px!important}.mini-drop-zone .drop-icon{font-size:18px!important}.mini-drop-zone p{font-size:11px!important}.mini-drop-zone .drop-sub{font-size:9px!important}.btn-select-file{color:var(--text-light);cursor:pointer;background:#ffffff0d;border:1px solid #ffffff26;border-radius:6px;margin-top:4px;padding:4px 10px;font-size:11px;transition:all .2s}.btn-select-file:hover{border-color:var(--primary);color:#fff;background:#ff336626}.btn-outline{border:1px solid var(--glass-border);color:var(--text-light);cursor:pointer;background:0 0;border-radius:8px;flex:1;padding:12px;font-weight:500;transition:all .3s}.btn-outline:hover{border-color:var(--text-light);background:#ffffff1a}.btn-alert{color:#ff453a;cursor:pointer;background:#ff453a33;border:1px solid #ff453a;border-radius:8px;flex:1;padding:12px;font-weight:600;transition:all .3s}.btn-alert:hover{color:#fff;background:#ff453a}.announcement-status{color:var(--primary);min-height:20px;font-size:14px;font-weight:500}.volume-section{border-top:1px solid var(--glass-border);align-items:center;gap:15px;padding-top:25px;display:flex}.volume-section span{color:var(--text-dim);font-size:14px}.volume-section input[type=range]{accent-color:var(--primary);cursor:pointer;flex:1}#play-trigger-overlay{-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);z-index:10;background:#0a0a0cd9;border-radius:24px;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:absolute;top:0;left:0}.btn-large{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:50px;padding:20px 40px;font-size:18px;font-weight:600;transition:all .3s;box-shadow:0 10px 30px #f366}.btn-large:hover{background:var(--primary-hover);transform:scale(1.05)}.player-footer{border-top:1px solid var(--glass-border);color:var(--text-dim);justify-content:space-between;align-items:center;padding-top:20px;font-size:14px;display:flex}.status-indicator{align-items:center;gap:10px;display:flex}.pulse-dot{background-color:#30d158;border-radius:50%;width:8px;height:8px;animation:1.8s infinite pulse;box-shadow:0 0 10px #30d158}@keyframes pulse{0%{transform:scale(.95);box-shadow:0 0 #30d158b3}70%{transform:scale(1);box-shadow:0 0 0 10px #30d15800}to{transform:scale(.95);box-shadow:0 0 #30d15800}}.timer-display{letter-spacing:1px;font-family:monospace;font-size:16px}.header-right{align-items:center;gap:15px;display:flex}.btn-stop{color:#ff453a;cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ff453a26;border:1px solid #ff453a66;border-radius:20px;padding:8px 18px;font-size:13px;font-weight:600;transition:all .3s}.btn-stop:hover{background:#ff453a4d;border-color:#ff453a;box-shadow:0 0 10px #ff453a33}.btn-stop.stopped{color:#30d158;background:#30d15826;border-color:#30d15866}.btn-stop.stopped:hover{background:#30d1584d;border-color:#30d158;box-shadow:0 0 10px #30d15833}@media (max-width:1024px){html{height:auto!important;min-height:100vh!important;overflow:hidden auto!important}body{-webkit-overflow-scrolling:touch;height:auto!important;min-height:100vh!important;overflow:visible!important}#player-container{width:100%!important;height:auto!important;min-height:100vh!important;overflow:visible!important}.player-content{gap:20px;padding:15px;height:auto!important;min-height:100vh!important;overflow:visible!important}.player-header{flex-flow:wrap;justify-content:space-between;align-items:center;gap:10px;padding-bottom:15px}.header-right{flex-wrap:wrap;justify-content:flex-end}.player-main{grid-template-columns:1fr;align-items:start;gap:25px;padding:10px 0}@media (orientation:landscape) and (min-width:640px){.player-main{gap:20px;grid-template-columns:1fr 1fr!important}}@media (orientation:portrait){.player-main{gap:25px;grid-template-columns:1fr!important}}.music-flow-column{gap:15px}.control-panel{border-radius:20px;width:100%;margin-top:0}.channel-tabs{white-space:nowrap;gap:8px;padding-bottom:8px;display:flex;overflow-x:auto}.channel-tab{flex:none;padding:8px 14px;font-size:12px}.now-playing-card{text-align:center;flex-direction:column;align-items:center;padding:20px}.album-art-wrapper{width:160px;height:160px;margin-bottom:15px;margin-right:0}.song-details{text-align:center;align-items:center}.left-volume-control{justify-content:space-between;width:100%}.player-footer{flex-direction:row;justify-content:space-between;align-items:center;margin-top:20px;padding-top:15px}}@media (max-width:480px){.logo{font-size:24px}.login-card{padding:25px 15px}.btn-large{padding:15px 30px;font-size:16px}}
