.controller-panel{max-width:1160px;margin:0 auto}
.controller-heading{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}
.controller-heading .page-intro{margin-top:0;max-width:none}
.controller-count{color:#a5c8de;font-size:.875rem;white-space:nowrap;font-variant-numeric:tabular-nums}
.controller-tools{display:flex;align-items:center;gap:12px}
.controller-secondary{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 14px;border:1px solid #49647d;border-radius:9px;background:#1d344b;font-size:.875rem;font-weight:550;color:#d5e5f2}
.controller-secondary:hover{background:#2b465e}
.controller-tools button{flex:none}
.controller-sound-status{margin:10px 0 7px;font-size:.875rem;line-height:1.5;color:#91b7cd}
.controller-sound-status.is-error{color:#ffaca1}
.controller-use-note,.controller-calculation{font-size:.8125rem;color:#99aec1;line-height:1.65}
.controller-use-note{margin-bottom:22px;max-width:850px}
.controller-calculation{margin:19px 0 0;max-width:920px}
.controller-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.team-card{min-width:0;border:1px solid #30485e;border-radius:16px;background:#142337;overflow:hidden}
.team-heading{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:16px 19px;border-bottom:1px solid #2a4056;background:#192b40}
.team-heading h2{font-size:1.05rem;font-weight:650;display:flex;align-items:center;gap:9px}
.team-number{display:grid;place-items:center;flex:none;width:27px;height:27px;border-radius:7px;background:#2a435a;color:#9fd8ef;font-size:.875rem}
.team-name-control{display:flex;align-items:center;gap:9px;flex:1 1 180px;min-width:0}
.team-name{width:100%;min-width:0;min-height:44px;padding:9px 10px;border:1px solid #3a536d;border-radius:8px;background:#12243a;color:#edf4fa;font-size:1rem;font-weight:600}
.team-name::placeholder{color:#d2e3f0;opacity:1}
.team-name:hover{border-color:#66859e}
.team-status{font-size:.8125rem;color:#a0b8cb;text-align:right;line-height:1.4}
.team-members{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:18px}
.team-member{min-width:0;margin:0;padding:0;border:0}
.team-member legend{font-size:.8125rem;color:#90adc4;padding:0;margin-bottom:12px}
.team-field{display:block;min-width:0;margin-bottom:12px}
.team-field>span{display:block;font-size:.875rem;color:#adc4d7;line-height:1.4;margin-bottom:6px}
.team-field>label{display:block;font-size:.875rem;color:#adc4d7;line-height:1.4;margin-bottom:6px}
.team-field input{width:100%;min-height:45px;padding:10px 11px;border:1px solid #3a536d;border-radius:8px;background:#0c1c2e;color:#eff7fd;font-size:1rem;font-variant-numeric:tabular-nums}
.team-field input::placeholder{color:#728da5}
.team-field input[aria-invalid=true]{border-color:#fa877b;color:#ffaaa0}
.team-field input.is-low{border-color:#f66d66;color:#ff7975;background:#341f29}
.team-field input:disabled{opacity:1;-webkit-text-fill-color:currentColor}
.team-field input:disabled:not(.is-low){color:#b9cddd;background:#14263a;border-color:#2c435a}
.team-input-unit{position:relative}
.team-input-unit input{padding-right:52px}
.team-input-unit>span{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-size:.75rem;color:#8faac0;pointer-events:none}
.team-field small{display:block;color:#ff9d93;font-size:.75rem;line-height:1.5;margin-top:4px}
.team-consumption-option{width:100%;min-height:40px;margin-top:7px;border:1px dashed #476883;border-radius:7px;background:#182f44;color:#a9d6ea;font-size:.875rem;padding:7px}
.team-consumption-option:hover:not(:disabled){background:#25435a}
.team-member:disabled .team-consumption-option{display:none}
.team-member-time{font-size:.8125rem;color:#98b4ca;line-height:1.5}
.team-member-time strong{color:#d6e8f5;font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}
.team-result{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;margin:0 18px;padding:16px 0;border-top:1px solid #2d455c}
.team-result>div{flex:1 1 120px;min-width:0}
.team-result-label{display:block;color:#a6c2d8;font-size:.875rem;line-height:1.5}
.team-result small{display:block;color:#849fb7;font-size:.75rem;line-height:1.5;max-width:220px;overflow-wrap:anywhere}
.team-timer{max-width:100%;font-size:2.3rem;line-height:1.1;letter-spacing:-1px;font-weight:650;color:#a0def0;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.team-actions{padding:0 18px 18px}
.team-engage{width:100%;min-height:46px;padding:11px 15px;border:1px solid #ed977d;border-radius:9px;background:#ed896c;color:#24110a;font-size:.9375rem;font-weight:650}
.team-engage:hover:not(:disabled){background:#ffa083}
.team-exit,.team-new{width:100%}
.team-state-note{font-size:.8125rem;line-height:1.55;color:#96b1c6;margin:0 0 11px}
.team-card[data-state=active]{border-color:#4b8aa0}
.team-card[data-state=active] .team-status{color:#a3ddf0}
.team-card[data-state=warning],.team-card[data-state=expired]{border-color:#ff786b}
.team-card[data-state=warning] .team-heading,.team-card[data-state=expired] .team-heading{background:#3c2932}
.team-card[data-state=warning] .team-status,.team-card[data-state=expired] .team-status,.team-card[data-state=warning] .team-timer,.team-card[data-state=expired] .team-timer{color:#ff9a85}
.team-card[data-state=warning] .team-state-note,.team-card[data-state=expired] .team-state-note{color:#ffc0ac;font-weight:550}
.team-card[data-state=returned] .team-status{color:#a8c1d2}
.team-card[data-state=returned] .team-timer{color:#9cb3c5}
.controller-alarm{width:calc(100% - 28px);max-width:580px;max-height:85dvh;overflow:auto;padding:0;border:2px solid #ed8572;border-radius:18px;background:#192538;color:#f4f7fc;box-shadow:0 20px 80px #0009}
.controller-alarm::backdrop{background:#020812b8;backdrop-filter:blur(4px)}
.controller-alarm.is-fallback{position:fixed;inset:8dvh 0 auto;z-index:100}
.controller-alarm-header{padding:22px 22px 18px;background:#3b2931;border-bottom:1px solid #92594d}
.controller-alert-label{font-size:.75rem;letter-spacing:1.1px;color:#ffb5a1;font-weight:650}
.controller-alarm h2{font-size:1.4rem;margin:8px 0;line-height:1.3}
.controller-alarm-header p{font-size:.875rem;color:#ddbcb6;line-height:1.6}
.controller-alerts{padding:18px;display:grid;gap:14px}
.controller-alert{border:1px solid #a26859;border-radius:12px;background:#312a35;padding:16px}
.controller-alert h3{font-size:1.1rem;line-height:1.5;color:#ffd0bd;overflow-wrap:anywhere}
.controller-alert p{font-size:.875rem;color:#d3a89c;line-height:1.5;margin:5px 0 13px}
.controller-alert button{width:100%;min-height:45px;border:0;border-radius:8px;padding:10px 14px;background:#f49b80;color:#2b130c;font-size:.9375rem;font-weight:650}
#controller-enable-sound{margin:0 18px 18px}
.controller-alarm-audio{margin:0 18px 12px;font-size:.875rem;line-height:1.5;color:#ffb4a3}
@media(max-width:800px){.app-tabs button{flex:1 0 auto;min-width:max-content;white-space:nowrap;overflow-wrap:normal;line-height:1.3;padding:10px 8px}.controller-grid{grid-template-columns:minmax(0,1fr);gap:17px}.controller-tools{flex-wrap:wrap}.controller-tools button{width:100%}.controller-heading{gap:10px}.controller-heading .page-intro{font-size:.875rem}.controller-count{font-size:.8125rem}.team-members{gap:14px;padding:16px}.team-heading{padding:14px 16px}.team-result{margin:0 16px}.team-actions{padding:0 16px 16px}.controller-alarm-header{padding:18px}.controller-alarm h2{font-size:1.25rem}}
@media(max-width:370px){.app-tabs{gap:3px;padding:4px}.app-tabs button{padding:9px 4px;font-size:.875rem}.team-members{gap:11px;padding:14px 12px}.team-input-unit input{padding-left:8px}.team-timer{font-size:2rem}.controller-heading{align-items:flex-start}.controller-count{padding-top:3px}}
@media(min-width:801px) and (max-width:1120px){.controller-grid{grid-template-columns:minmax(0,1fr);max-width:760px;margin:auto}}
