:root{--bg: #ffffff;--bg-soft: #f5f7fa;--ink: #1d2430;--ink-soft: #6b7684;--accent: #2f6ce8;--accent-deep: #1d4ed8;--accent-soft: #eaf1ff;--gray: #e4e8ee;--kaeru: #2fb673;--kaeru-bg: #e6f7ef;--mukae: #2f6ce8;--mukae-bg: #eaf1ff;--shuppatsu: #e7481f;--shuppatsu-bg: #ffeeea;--soon: #ffc93c;--soon-edge: #f2a900;--past: #d7dbe2;--shadow: 0 6px 18px rgba(29, 36, 48, .08);--shadow-lg: 0 12px 32px rgba(29, 36, 48, .14);--radius: 20px;--radius-lg: 28px;--timeline-ratio: .42;--now-line: #e7481f;--grade1: #ffd84d;--grade2: #ffa987;--grade3: #9edcc2;--grade4: #c4b5f0}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%;font-family:Hiragino Maru Gothic ProN,Hiragino Maru Gothic Pro,Yu Gothic,Meiryo,system-ui,sans-serif;background:var(--bg);color:var(--ink);overflow:hidden}button{font-family:inherit}ruby{ruby-position:over}rt{font-size:.5em;font-weight:700;color:var(--ink-soft);-webkit-user-select:none;user-select:none}.hidden-card rt{color:inherit;opacity:.75}.app{display:grid;grid-template-rows:auto auto 1fr;height:calc(100vh / var(--app-zoom, 1));height:calc(100svh / var(--app-zoom, 1));height:calc(var(--vh-px, 100svh) / var(--app-zoom, 1))}.app.is-zoomed{zoom:var(--app-zoom, 1)}.main-split{display:grid;grid-template-columns:calc((100% - 16px - 16px - 16px) * var(--timeline-ratio)) 8px calc((100% - 16px - 16px - 16px) * (1 - var(--timeline-ratio)));gap:8px;padding:16px;overflow:hidden}.split-resizer{display:flex;align-items:center;justify-content:center;cursor:col-resize;-webkit-user-select:none;user-select:none;padding:0 2px}.split-resizer-handle{width:4px;height:60%;background:var(--gray);border-radius:4px;transition:background .15s,width .15s}.split-resizer:hover .split-resizer-handle{background:var(--accent);width:6px}.header{display:flex;align-items:center;justify-content:space-between;padding:14px 24px;background:var(--accent-deep);color:#fff;box-shadow:var(--shadow);position:relative;overflow:hidden}.header:after{content:"";position:absolute;top:-30px;right:220px;width:220px;height:60px;background:#ffffff1f;border-radius:999px;transform:rotate(-30deg);pointer-events:none}.header-left{display:flex;align-items:baseline;gap:18px;min-width:0;flex:0 0 auto}.header-title,.header-date,.header-time{white-space:nowrap}@media (max-width: 1560px){.header-title{display:none}}.header-title{font-size:32px;font-weight:800;letter-spacing:2px}.header-date{font-size:22px;font-weight:600;opacity:.95}.header-time{font-size:24px;font-variant-numeric:tabular-nums;font-weight:700;background:#fff3;padding:4px 14px;border-radius:999px}.header-right{display:flex;align-items:center;gap:12px;flex-wrap:wrap;row-gap:6px;justify-content:flex-end}.timeline-tabs{display:flex;background:#fff3;border-radius:999px;padding:3px;gap:1px}.tl-tab{border:none;background:transparent;color:#fff;padding:5px 10px;border-radius:999px;font-size:13px;font-weight:700;font-family:inherit;cursor:pointer;transition:all .15s;min-width:30px}.tl-tab.active{background:#fff;color:var(--accent-deep);box-shadow:0 2px 6px #00000026}.tl-tab:hover:not(.active){background:#ffffff26}.sheet-toggle{display:flex;background:#fff3;border-radius:999px;padding:4px}.toggle-btn{border:none;background:transparent;color:#fff;padding:6px 18px;border-radius:999px;font-size:16px;font-weight:700;cursor:pointer;transition:all .2s}.toggle-btn.active{background:#fff;color:var(--accent);box-shadow:0 2px 6px #00000026}.btn{border:none;cursor:pointer;border-radius:999px;padding:8px 16px;font-size:16px;font-weight:600;transition:transform .15s,box-shadow .15s}.btn:hover{transform:translateY(-1px);box-shadow:var(--shadow)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-icon{width:40px;height:40px;padding:0;font-size:22px;display:inline-flex;align-items:center;justify-content:center;background:#ffffff40;color:#fff}.btn-icon:hover{background:#fff6}.zoom-control{display:inline-flex;align-items:center;gap:2px;background:#ffffff38;border-radius:999px;padding:3px}.zoom-btn{width:32px;height:32px;border:none;border-radius:50%;background:#ffffffd9;color:var(--accent-deep);font-size:20px;font-weight:900;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background .15s,transform .1s}.zoom-btn:hover{background:#fff}.zoom-btn:active{transform:scale(.92)}.zoom-label{min-width:48px;border:none;background:transparent;color:#fff;font-family:inherit;font-size:15px;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:.5px;cursor:pointer;padding:0 4px}.zoom-label:hover{text-decoration:underline}.volume-control{display:inline-flex;align-items:center;gap:2px;background:#ffffff38;border-radius:999px;padding:3px}.volume-control.boost{background:#ffd65c73}.vol-btn{width:30px;height:30px;border:none;border-radius:50%;background:#ffffffd9;color:var(--accent-deep);font-size:20px;font-weight:900;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background .15s,transform .1s}.vol-btn:hover{background:#fff}.vol-btn:active{transform:scale(.92)}.vol-label{display:inline-flex;align-items:center;gap:3px;min-width:46px;justify-content:center;border:none;background:transparent;color:#fff;font-family:inherit;font-size:15px;font-weight:800;font-variant-numeric:tabular-nums;cursor:pointer;padding:0 4px}.vol-label:hover{text-decoration:underline}.vol-icon{font-size:15px}.volume-control.touch{gap:4px;padding:4px}.volume-control.touch .vol-btn{width:44px;height:44px;font-size:26px}.volume-control.touch .vol-label{min-width:62px;font-size:17px}.volume-control.touch .vol-icon{font-size:18px}.zoom-control.touch{gap:4px;padding:4px}.zoom-control.touch .zoom-btn{width:44px;height:44px;font-size:26px}.zoom-control.touch .zoom-label{min-width:58px;font-size:17px}.btn-primary{background:var(--accent-deep);color:#fff}.btn-danger{background:#f55b5b;color:#fff;padding:4px 12px;font-size:14px}.btn-warn{background:#fff;color:var(--accent-deep);font-weight:800;padding:8px 18px;animation:pulse 1.4s infinite}.btn-mini{background:#eee;color:#333;padding:4px 10px;font-size:13px}.audio-toggle{display:inline-flex;align-items:center;gap:10px;border:3px solid transparent;cursor:pointer;padding:6px 16px 6px 12px;border-radius:999px;font-family:inherit;font-weight:800;transition:all .2s;line-height:1.1}.audio-toggle.on{background:#2b9b5c;color:#fff;border-color:#fff;box-shadow:0 2px 8px #2b9b5c66}.audio-toggle.off{background:#c93636;color:#fff;border-color:#fff;animation:pulse 1.4s infinite;box-shadow:0 2px 8px #c9363666}.audio-toggle .audio-icon{font-size:24px}.audio-toggle .audio-state{display:inline-flex;flex-direction:column;align-items:flex-start;gap:0}.audio-toggle .audio-state-now{font-size:10px;font-weight:700;letter-spacing:2px;opacity:.85}.audio-toggle .audio-state-value{font-size:17px;font-weight:900;letter-spacing:1px}.audio-toggle:hover{transform:translateY(-1px)}.sound-test{border:3px solid rgba(255,255,255,.85);background:#ffffff24;color:#fff;cursor:pointer;padding:6px 14px;border-radius:999px;font-family:inherit;font-weight:800;font-size:15px;white-space:nowrap;transition:all .2s}.sound-test:hover{background:#ffffff47}.sound-test:active{transform:scale(.96)}.sound-test.touch{padding:10px 16px;font-size:17px}.header.touch{padding:14px 10px}.header.touch .header-right{gap:7px}.header.touch .tl-tab.touch{padding:8px 9px}.header.touch .zoom-control.touch .zoom-label{min-width:50px}.header.touch .header-title{display:none}.tl-tab.touch{padding:8px 12px;font-size:16px}.btn-icon.touch{width:44px;height:44px;font-size:22px}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.panel{background:var(--bg-soft);border-radius:var(--radius-lg);padding:14px 16px;box-shadow:var(--shadow);overflow:hidden;display:flex;flex-direction:column}.panel-title{margin:0 0 8px;font-size:22px;font-weight:800;display:flex;align-items:center;gap:8px;color:var(--accent-deep)}.panel-icon{font-size:30px}.remaining-badge{margin-left:auto;font-size:16px;font-weight:700;color:var(--accent-deep);background:var(--accent-soft);padding:6px 14px;border-radius:999px;letter-spacing:1px}.remaining-badge strong{font-size:22px;font-weight:900;margin:0 2px}.accordion-header{cursor:pointer;-webkit-user-select:none;user-select:none}.accordion-header:active{opacity:.8}.accordion-caret{margin-left:6px;font-size:13px;opacity:.55;flex-shrink:0}.timeline-panel{gap:10px;overflow-x:hidden;overflow-y:auto;min-height:0;-webkit-overflow-scrolling:touch;touch-action:pan-y}.tl-head{display:flex;flex-direction:column;gap:4px}.tl-head-row{display:flex;align-items:center;gap:10px;padding:6px 14px;border-radius:14px;background:#fff;box-shadow:var(--shadow)}.tl-head-row.now{background:linear-gradient(160deg,#4baf83,#357a5c);color:#fff}.tl-head-row.now.imminent{background:linear-gradient(160deg,#fff48a,#ffb84a);color:var(--ink);animation:glow 1s ease-in-out infinite alternate}.tl-head-row.next{background:var(--accent-soft)}.tl-head-row.idle{justify-content:center;background:#f0eadc}.tl-head-label{flex:0 0 auto;font-size:14px;font-weight:800;letter-spacing:2px;padding:3px 12px;border-radius:999px;background:#ffffff47}.tl-head-row.now.imminent .tl-head-label{background:#fff9}.tl-head-row.next .tl-head-label{background:#fff;color:var(--accent-deep)}.tl-head-name{flex:1 1 auto;min-width:0;font-size:34px;font-weight:900;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tl-head-row.next .tl-head-name{font-size:22px;font-weight:800}.tl-head-name.muted{font-size:22px;font-weight:700;color:var(--ink-soft)}.tl-head-count{flex:0 0 auto;display:flex;align-items:baseline;gap:8px;font-size:34px;font-weight:900;font-variant-numeric:tabular-nums}.tl-head-row.next .tl-head-count{font-size:20px;font-weight:800}.tl-head-count-label{font-size:14px;font-weight:700;opacity:.75}@media (max-width: 1100px){.tl-head-count-label{display:none}.tl-head-name,.tl-head-count{font-size:26px}.tl-head-row.next .tl-head-name,.tl-head-row.next .tl-head-count{font-size:20px}}@keyframes glow{0%{box-shadow:var(--shadow-lg)}to{box-shadow:0 0 30px #ffb44ab3}}@keyframes nowGlow{0%{box-shadow:var(--shadow-lg)}to{box-shadow:0 0 30px #63ca9fb3}}.timeline-list{overflow-y:visible;flex:none}@media (min-width: 901px){.timeline-panel{overflow-y:hidden}.timeline-panel>.panel-title,.timeline-panel>.tl-head{flex:0 0 auto}.timeline-list{flex:1 1 auto;min-height:200px;overflow-y:auto;-webkit-overflow-scrolling:touch;touch-action:pan-y}.timeline-list{padding-bottom:8px}.app.audio-locked .timeline-list{margin-bottom:84px}.app.audio-locked .return-panel{padding-bottom:84px}.timeline-list .sub-title{position:sticky;top:0;z-index:1;margin:0;padding:4px 0 8px;background:var(--bg-soft)}}.sub-title{margin:0 0 8px;font-size:18px;font-weight:700;color:var(--ink-soft)}.timeline-cal{--tl-gutter: 52px;--tl-dis: 0px}.timeline-cal.has-dismissal{--tl-dis: 112px}@media (max-width: 1200px){.timeline-cal.has-dismissal{--tl-dis: 100px}}.tl-cal-body{position:relative;margin-top:2px}.tl-tick{position:absolute;left:0;right:0;border-top:1px solid var(--gray)}.tl-tick.half{border-top-style:dotted;opacity:.75}.tl-tick-label{position:absolute;left:0;top:-10px;width:calc(var(--tl-gutter) - 10px);text-align:right;font-size:13px;font-weight:700;color:var(--ink-soft);font-variant-numeric:tabular-nums;background:var(--bg-soft);padding-right:2px}.tl-tick.hour .tl-tick-label{font-size:15px;color:var(--ink)}.tl-bars{position:absolute;left:var(--tl-gutter);right:var(--tl-dis);top:0;bottom:0}.tl-dis-col{position:absolute;top:0;bottom:0;right:0;width:calc(var(--tl-dis) - 6px)}.tl-dis-chip{position:absolute;left:0;right:0;display:flex;flex-direction:column;justify-content:center;gap:3px;padding:0 6px;border-radius:9px;border:1.5px solid var(--gray);background:#fff;font-weight:800;line-height:1;white-space:nowrap;overflow:hidden}.tl-dis-head{display:flex;align-items:center;gap:4px;overflow:hidden}.tl-dis-name{font-size:12.5px;color:var(--ink-soft);overflow:hidden;text-overflow:ellipsis}.tl-dis-time{font-size:16px;font-variant-numeric:tabular-nums}.tl-dis-chip.is-long .tl-dis-name{font-size:11.5px}.tl-dis-chip.is-long .tl-dis-dots{display:none}.tl-dis-chip.src-pred{border-style:dashed;background:var(--bg-soft);color:var(--ink-soft)}.tl-dis-chip.src-day{border-color:var(--soon-edge)}.tl-dis-chip.is-past{background:#eef1f5;border-color:#dfe3ea;color:#6b7684}.tl-dis-chip.is-clamped{opacity:.85}.tl-dis-dots{display:flex;gap:2px;flex:0 0 auto}.tl-dis-dots i{display:block;width:5px;height:12px;border-radius:2px}.tl-dis-legend{margin-left:auto;font-size:13px;font-weight:700;color:var(--ink-soft);white-space:nowrap}.tl-bar{position:absolute;display:flex;flex-direction:column;justify-content:center;gap:2px;padding:4px 10px;border-radius:10px;border-left:6px solid var(--accent);background:#fff;box-shadow:var(--shadow);overflow:hidden}.tl-bar-name{font-size:19px;font-weight:800;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tl-bar-time{font-size:13px;font-weight:700;color:var(--ink-soft);font-variant-numeric:tabular-nums}.tl-bar.tiny{flex-direction:row;align-items:center;gap:8px;padding:0 8px}.tl-bar.tiny .tl-bar-name{font-size:20px}.tl-bar.tiny .tl-bar-time{font-size:14px;margin-left:auto}.tl-bar.mini{flex-direction:row;align-items:center;gap:6px;padding:0 6px;border-radius:8px;border-left-width:5px}.tl-bar.mini .tl-bar-name{font-size:16px;font-weight:800}.tl-bar.mini .tl-bar-time{font-size:12px;margin-left:auto}.tl-bar.mini .tl-bar-badge{display:none}.tl-bar.status-upcoming{border-left-color:var(--accent)}.tl-bar.status-past{background:#eef1f5;border-left-color:var(--past);box-shadow:none}.tl-bar.status-past .tl-bar-name{font-weight:700;color:#5a6472}.tl-bar.status-past .tl-bar-time{color:#4b5563}.tl-bar.status-now{background:linear-gradient(160deg,#4baf83,#357a5c);border-left-color:#ffc93c;color:#fff;z-index:2;animation:nowGlow 1.6s ease-in-out infinite alternate}.tl-bar.status-now .tl-bar-time{color:#ffffffd9}.tl-bar-badge{position:absolute;right:8px;top:6px;background:var(--soon);color:#5a3d00;padding:2px 10px;border-radius:999px;font-size:13px;font-weight:800}.tl-bar.tiny .tl-bar-badge{position:static;margin-left:6px;font-size:12px;padding:1px 8px}.tl-now{position:absolute;left:0;right:0;height:0;z-index:3;pointer-events:none;display:flex;align-items:center}.tl-now-time{width:calc(var(--tl-gutter) - 6px);margin-top:-1px;background:var(--now-line);color:#fff;border-radius:999px;font-size:13px;font-weight:800;text-align:center;padding:1px 0;font-variant-numeric:tabular-nums;box-shadow:0 0 0 2px var(--bg-soft)}.tl-now-line{flex:1;height:3px;background:var(--now-line);border-radius:2px;margin-left:4px}.teacher-panel{flex-shrink:0;border-top:1px dashed rgba(0,0,0,.12);padding-top:10px;margin-top:2px}.teacher-panel-title{margin:0 0 6px;font-size:13px;font-weight:800;display:flex;align-items:center;gap:5px;color:var(--ink-soft)}.teacher-panel-title .panel-icon{font-size:15px}.teacher-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}.teacher-row{display:flex;align-items:baseline;gap:4px;font-size:12px;padding:3px 9px;border-radius:999px;background:#0000000a;color:var(--ink-soft)}.teacher-row .teacher-name{font-weight:700}.teacher-row .teacher-time{font-variant-numeric:tabular-nums;opacity:.85}.teacher-row.teacher-now{background:var(--accent-soft);color:var(--accent-deep);box-shadow:0 0 0 1.5px var(--accent-deep) inset;font-weight:700}.teacher-row.teacher-done{opacity:.4}.empty,.loading,.empty-mini{text-align:center;padding:30px 10px;color:var(--ink-soft);font-size:18px}.empty-mini{padding:10px;font-size:14px}.error-banner{background:#ffe0e0;color:#b53030;padding:10px 16px;border-radius:12px;margin-bottom:12px;font-weight:600;font-size:14px}.return-panel{overflow-x:hidden;overflow-y:auto;display:flex;flex-direction:column;min-height:0;-webkit-overflow-scrolling:touch;touch-action:pan-y}.student-grid{--card-min: 100px;display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--card-min),1fr));gap:clamp(3px,calc(var(--card-min) * .04),8px);padding:4px;align-content:start;flex:none}.student-card{position:relative;border-radius:clamp(10px,calc(var(--card-min) * .14),16px);padding:clamp(4px,calc(var(--card-min) * .05),10px) clamp(3px,calc(var(--card-min) * .04),8px);text-align:center;background:#fff;box-shadow:var(--shadow);transition:padding .15s,gap .15s,opacity .2s,filter .2s;display:flex;flex-direction:column;gap:clamp(1px,calc(var(--card-min) * .02),4px);min-height:0}.card-check{position:absolute;top:2px;right:2px;width:18px;height:18px;border-radius:50%;border:1.5px solid rgba(0,0,0,.15);background:#ffffffd9;color:var(--ink-soft);font-size:11px;font-weight:800;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0;line-height:1;z-index:1;opacity:0;transition:opacity .15s,background .15s,color .15s}.student-card:hover .card-check{opacity:1}.app.is-touch .card-check{opacity:.9;width:26px;height:26px;font-size:14px}.app.is-touch .timer-toggle{width:28px;height:28px;font-size:14px}.app.is-touch .student-card .timer-toggle.off{opacity:.7}.card-check.checked{background:#ffffffd9;color:#1d7a4e}.card-check.unchecked{opacity:1;background:#fff;color:var(--accent-deep);border-color:var(--accent-deep);font-size:13px}.student-card.hidden-card{background:#2b2b2b!important;border-color:#444!important;opacity:.55;filter:grayscale(.8)}.student-card.hidden-card .student-time,.student-card.hidden-card .student-name{color:#ddd}.student-card.hidden-card .student-method{background:#ffffff1a}.student-card.hidden-card .method-label{color:#aaa!important}.student-card.hidden-card.status-soon{animation:none;box-shadow:var(--shadow);transform:none}.student-card.method-kaeru{background:var(--kaeru-bg);border:3px solid var(--kaeru)}.student-card.method-mukae{background:var(--mukae-bg);border:3px solid var(--mukae)}.student-card.method-shuppatsu{background:var(--shuppatsu-bg);border:3px dashed var(--shuppatsu)}.student-card.status-past{opacity:.35;filter:grayscale(.4)}.student-card.mode-arrival.status-past{opacity:.7;filter:grayscale(.2)}.student-card.status-soon{border-color:var(--soon-edge);background:#fff4cc;box-shadow:0 0 0 3px var(--soon),var(--shadow-lg);animation:soonPulse 1.6s ease-in-out infinite;transform:scale(1.03)}@keyframes soonPulse{0%,to{box-shadow:0 0 0 3px var(--soon),var(--shadow-lg)}50%{box-shadow:0 0 0 6px var(--soon-edge),var(--shadow-lg)}}.student-time{font-size:clamp(13px,calc(var(--card-min) * .16),22px);font-weight:900;color:var(--ink);font-variant-numeric:tabular-nums;line-height:1.05}.student-time.range{font-size:clamp(8px,calc((var(--card-min) - 12px) / 7.2),19px);white-space:nowrap;letter-spacing:-.02em}.student-time.range .time-sep{font-size:.68em;margin:0 .04em;opacity:.7}.student-name{font-size:clamp(10px,calc(var(--card-min) * .11),16px);font-weight:700;color:var(--ink);line-height:1.15}.student-method{display:inline-flex;align-items:center;gap:3px;justify-content:center;font-size:clamp(8px,calc(var(--card-min) * .07),12px);font-weight:700;padding:2px 6px;border-radius:999px;background:#fff9;margin-top:1px}.student-arrival{font-size:clamp(7px,calc(var(--card-min) * .06),11px);color:var(--ink-soft);font-weight:600;line-height:1.1}.student-card.hidden-card .student-arrival{color:#aaa}.student-note{font-size:clamp(11px,calc(var(--card-min) * .1),14px);color:var(--ink-soft);line-height:1.15;margin-top:1px;overflow-wrap:break-word;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.student-card.hidden-card .student-note{color:#999}.method-kaeru .method-label{color:#1d7a4e}.method-mukae .method-label{color:#1a4fb8}.method-shuppatsu .method-label{color:#b53415}.method-icon{font-size:clamp(10px,calc(var(--card-min) * .09),14px)}.timer-toggle{position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;border:1.5px solid rgba(0,0,0,.12);background:#ffffffe6;font-size:12px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0;line-height:1;z-index:2;opacity:.9;transition:opacity .15s,transform .1s,background .15s}.timer-toggle:hover{opacity:1;transform:scale(1.12)}.timer-toggle.off{opacity:.4;filter:grayscale(1)}.student-card:hover .timer-toggle.off{opacity:.75}.student-card.timer-warn{border-color:#ff8a3d!important;background:#fff0e0!important;transform:scale(1.05);z-index:3;animation:timerWarn .9s ease-in-out infinite!important}.student-card.timer-warn .student-time{color:#e2530c}@keyframes timerWarn{0%,to{box-shadow:0 0 0 3px #ffb072,0 6px 16px #ff782859}50%{box-shadow:0 0 0 8px #ff7a2d,0 8px 26px #ff5a1499}}.roster-tabs{display:inline-flex;gap:3px;padding:3px;margin:0 0 8px;background:#ececec;border-radius:999px;flex-shrink:0;align-self:flex-start}.roster-tab{border:none;background:transparent;color:var(--ink-soft);font-family:inherit;font-weight:800;font-size:14px;padding:6px 16px;border-radius:999px;cursor:pointer;transition:all .15s}.roster-tab:hover{color:var(--ink)}.roster-tab.active{background:var(--bg-soft);color:var(--accent-deep);box-shadow:0 2px 6px #3c50461f}.arrival-group{flex-shrink:0}.arrival-group-title{margin:4px 4px 2px;padding:3px 10px;font-size:15px;font-weight:800;color:var(--accent-deep);background:var(--kaeru-bg);border-left:5px solid var(--accent);border-radius:6px;display:flex;align-items:center;gap:6px}.ag-icon{font-size:16px}.arrival-group-count{margin-left:auto;background:var(--accent-deep);color:#fff;padding:1px 9px;border-radius:999px;font-size:12px;font-weight:800}.student-method.arrival-return{background:#ffffffbf}.student-method.arrival-return .method-label{color:var(--ink-soft)}.filter-chips{display:flex;gap:6px;margin-bottom:8px;flex-shrink:0;flex-wrap:wrap}.filter-chip{border:2px solid transparent;background:#f0f0f0;color:var(--ink-soft);padding:5px 12px 5px 10px;border-radius:999px;font-family:inherit;font-weight:700;font-size:13px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:all .15s}.filter-chip:hover{transform:translateY(-1px)}.filter-chip .chip-count{background:#0000001f;padding:1px 7px;border-radius:999px;font-size:11px;font-weight:800}.filter-chip.filter-all.active{background:var(--accent-deep);color:#fff;border-color:var(--accent-deep)}.filter-chip.filter-kaeru.active{background:var(--kaeru);color:#fff;border-color:var(--kaeru)}.filter-chip.filter-mukae.active,.filter-chip.filter-mukae-early.active,.filter-chip.filter-mukae-late.active{background:var(--mukae);color:#fff;border-color:var(--mukae)}.filter-chip.filter-mukae-early.active{background:#a4b0bd;border-color:#a4b0bd}.filter-chip.filter-mukae-late.active{background:#6f7b88;border-color:#6f7b88}.filter-chip.filter-shuppatsu.active{background:var(--shuppatsu);color:#2b2b2b;border-color:var(--shuppatsu)}.filter-chip.active .chip-count{background:#ffffff4d;color:#fff}.filter-chip.filter-shuppatsu.active .chip-count{background:#00000026;color:#2b2b2b}.card-size-slider{display:inline-flex;align-items:center;gap:6px;margin-left:auto;padding:4px 10px;background:#f0f0f0;border-radius:999px}.card-size-slider .cs-icon{font-size:14px;opacity:.7}.card-size-slider input[type=range]{width:110px;cursor:pointer;accent-color:var(--accent)}.student-card.clickable{cursor:pointer}.student-card.clickable:hover{filter:brightness(1.04);transform:translateY(-1px)}.special-note.editable{cursor:pointer}.special-note.editable:hover{background:#fffbe6}.sn-add-btn{margin-left:auto;background:#f7b500;color:#fff;border:none;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:800;cursor:pointer}.sn-add-btn:hover{filter:brightness(1.05)}.sn-reorder{display:inline-flex;flex-direction:column;gap:1px;margin-right:4px}.sn-arrow{background:#eee;color:#555;border:none;width:18px;height:12px;font-size:8px;line-height:1;border-radius:4px;cursor:pointer;padding:0}.sn-arrow:hover:not(:disabled){background:var(--accent-soft);color:var(--ink)}.sn-arrow:disabled{opacity:.3;cursor:not-allowed}.filter-chip.filter-add{background:var(--accent-deep);color:#fff;border-color:var(--accent-deep);font-weight:800}.filter-chip.filter-add:hover{filter:brightness(1.05)}.modal.modal-small{max-width:480px}.method-radio{display:flex;gap:6px;flex-wrap:wrap}.method-radio-item{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:2px solid #ddd;border-radius:999px;cursor:pointer;font-weight:700;font-size:14px;transition:all .15s}.method-radio-item input{display:none}.method-radio-item:hover{border-color:var(--accent)}.method-radio-item.active{background:var(--accent);color:#fff;border-color:var(--accent)}.modal-actions{display:flex;gap:8px;align-items:center;margin-top:12px;padding-top:12px;border-top:1px solid #eee}.bgm-error{color:#b53030;font-size:12px;font-weight:700;margin-left:8px}.bgm-keepalive{display:inline-flex;align-items:center;gap:5px;border:2px solid transparent;background:#0000000d;color:var(--ink-soft);padding:4px 10px;border-radius:999px;font-size:12px;font-weight:700;font-family:inherit;cursor:pointer;margin-left:auto;transition:all .15s}.bgm-keepalive:hover{background:#0000001a}.bgm-keepalive.on{background:var(--accent);color:#fff;border-color:var(--accent-deep);animation:kaPulse 2.5s ease-in-out infinite}.bgm-keepalive .ka-icon{font-size:13px}@keyframes kaPulse{0%,to{box-shadow:0 0 #63ca9f00}50%{box-shadow:0 0 8px #63ca9f99}}.bgm-hidden-player{position:absolute;width:0;height:0;overflow:hidden;pointer-events:none;opacity:0}.absent-section{background:#eef2f7;border:2px solid #b9c6d6;border-radius:10px;padding:6px 10px;margin-bottom:6px;flex-shrink:0;max-height:22vh;overflow-y:auto}.absent-title{margin:0 0 4px;font-size:13px;font-weight:800;color:#5a6b80;display:flex;align-items:center;gap:6px}.absent-count{margin-left:auto;background:#8395ab;color:#fff;padding:1px 8px;border-radius:999px;font-size:11px}.absent-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:6px;align-content:start}.absent-chip{display:flex;align-items:baseline;gap:6px;padding:5px 8px;background:#fff;border-radius:6px;font-size:13px;line-height:1.3}.absent-chip.editable{cursor:pointer}.absent-chip.editable:hover{background:#f5f8fc;box-shadow:var(--shadow)}.absent-name{font-weight:800;color:var(--ink);white-space:nowrap}.absent-reason{color:var(--ink-soft);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.special-notes-banner{background:#fff8e1;border:2px solid #ffd84d;border-radius:10px;padding:6px 10px;margin-bottom:6px;flex-shrink:0;max-height:24vh;overflow-y:auto}.special-notes-title{margin:0 0 4px;font-size:13px;font-weight:800;color:#8a6500;display:flex;align-items:center;gap:6px}.special-notes-count{margin-left:auto;background:#f7b500;color:#fff;padding:1px 8px;border-radius:999px;font-size:11px}.special-notes-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:6px;align-content:start}.special-note{display:flex;flex-direction:column;gap:4px;padding:5px 8px;background:#fff;border-radius:6px;font-size:13px;line-height:1.3;align-self:start}.special-note.expanded{grid-column:1 / -1}.sn-head{display:flex;align-items:center;flex-wrap:wrap;gap:4px 6px;min-width:0}.sn-time{font-weight:900;font-variant-numeric:tabular-nums;color:var(--ink);flex-shrink:0;min-width:44px}.sn-name{font-weight:700;color:var(--ink);word-break:break-word}.sn-kind{font-size:10px;font-weight:800;padding:1px 6px;border-radius:999px;letter-spacing:1px;flex-shrink:0}.sn-kind-spot{background:#ff8c42;color:#fff}.sn-kind-monthly{background:#4ba3d8;color:#fff}.sn-category{color:var(--ink-soft);font-size:12px;font-weight:700;word-break:break-word}.sn-more{margin-left:auto;color:#c79a00;font-weight:800;font-size:11px;flex-shrink:0}.sn-detail{color:var(--ink-soft);font-size:13px;padding-left:2px}.sn-detail:before{content:"— ";opacity:.6}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:100;padding:20px}.modal{background:#fff;border-radius:var(--radius-lg);width:100%;max-width:900px;max-height:90vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 60px #0000004d;color:var(--ink)}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;background:var(--accent-deep);color:#fff}.modal-header h2{margin:0;font-size:22px}.modal-header .btn-icon{background:#fff3}.modal-tabs{display:flex;border-bottom:1px solid #eee;background:#fafafa}.tab{background:transparent;border:none;padding:14px 20px;font-size:15px;font-weight:700;cursor:pointer;color:var(--ink-soft);border-bottom:3px solid transparent}.tab.active{color:var(--accent-deep);border-bottom-color:var(--accent-deep);background:#fff}.modal-body{padding:20px;overflow-y:auto;flex:1}.timeline-editor{display:flex;flex-direction:column;gap:16px}.event-row{border:2px solid #eee;border-radius:var(--radius);padding:14px;background:#fafafa;display:flex;flex-direction:column;gap:10px}.event-row-main{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.field{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--ink-soft)}.field.full{width:100%}.field.grow{flex:1;min-width:160px}.field span{font-weight:600}.field input[type=text],.field input[type=time],.field input[type=number],.field select{padding:8px 10px;border:1px solid #ccc;border-radius:8px;font-size:15px;font-family:inherit}.field input[type=time]{min-width:100px}.field input[type=number]{width:80px}.field .suffix{font-size:12px}.row-with-button{display:flex;gap:6px;align-items:stretch}.row-with-button input,.row-with-button select{flex:1}.checkbox-field{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:600;cursor:pointer}.prebell-block{background:#fff;border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:8px;border:1px dashed #ddd}.general-settings{display:flex;flex-direction:column;gap:24px;max-width:600px}.general-settings input[type=range]{width:100%}.settings-block{background:#fafafa;border:1px solid #eee;border-radius:var(--radius);padding:16px 18px;display:flex;flex-direction:column;gap:14px}.block-title{margin:0 0 4px;font-size:16px;font-weight:800;color:var(--accent-deep)}.hint{font-size:12px;color:var(--ink-soft);line-height:1.5}.furigana-editor{display:flex;flex-direction:column;gap:12px;max-width:620px}.furigana-summary{display:flex;gap:10px;flex-wrap:wrap}.furigana-summary span{font-size:13px;font-weight:700;padding:4px 12px;border-radius:999px}.badge-unfilled{background:#fdecec;color:#c0392b}.badge-filled{background:var(--kaeru-bg);color:var(--accent-deep)}.furigana-list{display:flex;flex-direction:column;gap:8px;max-height:52vh;overflow-y:auto;padding-right:4px}.furigana-row{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid #eee;border-radius:12px;padding:8px 12px}.furigana-row.is-empty{border-color:#f3c9c9;background:#fffaf9}.furigana-kanji{flex:0 0 34%;font-size:17px;font-weight:700;color:var(--ink)}.furigana-input{flex:1;min-width:0;padding:8px 10px;border:1px solid #ccc;border-radius:8px;font-size:16px;font-family:inherit}.furigana-row.is-empty .furigana-input{border-color:#e6b0b0}.alarm-toast{position:fixed;top:90px;right:24px;display:flex;align-items:center;gap:14px;padding:14px 20px;border-radius:16px;background:var(--accent-deep);color:#fff;box-shadow:0 8px 24px #0000004d;z-index:200;animation:toastSlide .4s cubic-bezier(.2,.9,.4,1.4);max-width:320px}.alarm-toast.pre{background:#c9a557}.alarm-toast.return{background:#34b37a}.alarm-toast.audio{background:#3a6ea5}.audio-unlock-bar{position:fixed;left:50%;bottom:18px;transform:translate(-50%);z-index:1200;border:4px solid #fff;border-radius:999px;background:#c93636;color:#fff;font-family:inherit;font-weight:900;font-size:20px;letter-spacing:1px;padding:14px 28px;cursor:pointer;box-shadow:0 6px 22px #00000059;animation:unlock-pulse 1.8s infinite;max-width:92vw}.audio-unlock-bar:active{transform:translate(-50%) scale(.97)}@keyframes unlock-pulse{0%,to{transform:translate(-50%) scale(1)}50%{transform:translate(-50%) scale(1.04)}}.alarm-toast-icon{font-size:36px;line-height:1}.alarm-toast-label{font-size:12px;font-weight:700;letter-spacing:2px;opacity:.85}.alarm-toast-name{font-size:22px;font-weight:900;line-height:1.2}@keyframes toastSlide{0%{transform:translate(120%);opacity:0}to{transform:translate(0);opacity:1}}.editor-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:4px}.bgm-bar{display:flex;align-items:center;gap:10px;padding:8px 16px;background:var(--accent-soft);border-top:1px solid rgba(0,0,0,.04);border-bottom:1px solid rgba(0,0,0,.04);flex-wrap:wrap}.bgm-bar-label{font-size:13px;font-weight:800;color:var(--accent-deep);letter-spacing:1px}.bgm-slot{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border:2px solid var(--accent);background:#fff;color:var(--accent-deep);border-radius:999px;font-family:inherit;font-size:14px;font-weight:700;cursor:pointer;transition:all .15s}.bgm-slot:hover:not(:disabled){background:var(--accent);color:#fff;transform:translateY(-1px)}.bgm-slot.active{background:var(--accent-deep);color:#fff;border-color:var(--accent-deep);animation:pulse 1.6s infinite;box-shadow:0 0 0 4px #63ca9f40}.bgm-slot:disabled{opacity:.45;cursor:not-allowed}.bgm-slot .bgm-icon{font-size:14px}.bgm-stop{display:inline-flex;align-items:center;gap:4px;padding:6px 14px;border:2px solid #c93636;background:#fff;color:#c93636;border-radius:999px;font-family:inherit;font-size:13px;font-weight:700;cursor:pointer}.bgm-stop:hover{background:#c93636;color:#fff}.bgm-hidden-player{position:absolute;width:0;height:0;overflow:hidden;visibility:hidden}.bgm-editor{display:flex;flex-direction:column;gap:16px}.tg{margin-bottom:12px;padding:8px 12px 6px;background:#f7faf8;border:1px solid var(--accent-soft);border-radius:var(--radius)}.tg-head{display:flex;align-items:center;gap:8px;margin-bottom:4px}.tg-title{font-size:19px;font-weight:800;color:var(--accent-deep);display:flex;align-items:center;gap:6px}.tg-icon{font-size:22px}.tg-count{margin-left:auto;font-size:14px;font-weight:700;color:var(--accent-deep);background:var(--accent-soft);padding:2px 10px;border-radius:999px}.tg-axis,.tg-row{display:grid;grid-template-columns:148px 1fr;align-items:center}.tg-axis{height:15px}.tg-axis .tg-track{position:relative;height:100%;background:none}.tg-tick{position:absolute;top:0;transform:translate(-50%);font-size:11px;font-weight:700;color:var(--ink-soft);white-space:nowrap}.tg-rows{max-height:240px;overflow-y:auto}.tg-row{height:24px}.tg-label-col{padding-right:8px;display:flex;align-items:center;gap:5px;overflow:hidden}.tg-name{font-size:14px;font-weight:700;color:var(--ink);white-space:nowrap;flex:0 0 auto}.tg-room-input{flex:1 1 auto;min-width:0;width:100%;font-size:12px;font-weight:700;color:var(--accent-deep);background:#fff;border:1px solid var(--accent-soft);border-radius:5px;padding:1px 5px;height:20px;box-sizing:border-box}.tg-room-input::placeholder{color:#bcccc3;font-weight:600}.tg-room{flex:1 1 auto;min-width:0;font-size:12px;font-weight:800;color:var(--accent-deep);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tg-track{position:relative;height:20px;background:#edf3ef;border-radius:6px}.tg-grid{position:absolute;top:0;bottom:0;width:1px;background:#6b6b6b24}.tg-bar{position:absolute;top:2px;height:16px;border-radius:5px;background:var(--accent);display:flex;align-items:center;overflow:hidden}.tg-bar.is-ext{background:#f0a33c}.tg-bar-text{font-size:11px;font-weight:800;color:#fff;white-space:nowrap;padding:0 5px}.tg-row.is-now .tg-bar{background:var(--accent-deep);box-shadow:0 0 0 2px #4baf8347}.tg-row.is-now .tg-name{color:var(--accent-deep);font-weight:900}.tg-row.is-done{opacity:.42}.tg-row.is-soon .tg-bar{background:#a9d8c1}.tg-row.is-soon .tg-bar-text{color:#2f6a52}.tg-now{position:absolute;top:-2px;bottom:-2px;width:2px;background:#e2544c;border-radius:2px}.park-link{display:inline-flex;align-items:center;gap:4px;background:#ffffff38;color:#fff;font-weight:700;font-size:14px;padding:5px 12px;border-radius:999px;white-space:nowrap;text-decoration:none}.park-link:hover,.park-link:active{background:#ffffff57}@media (min-width: 901px) and (max-width: 1400px) and (pointer: coarse){.student-grid{grid-template-columns:repeat(auto-fill,minmax(max(var(--card-min),130px),1fr))}}@media (pointer: coarse){.card-check{opacity:1;width:26px;height:26px;font-size:14px}.timer-toggle{width:26px;height:26px;font-size:15px}}@media (max-width: 900px){html,body,#root{height:auto;overflow:visible}.app{height:auto;min-height:100vh}.main-split{grid-template-columns:1fr;grid-template-rows:auto auto auto;overflow:visible}.main-split .panel{overflow:visible}.student-grid,.timeline-list{overflow-y:visible;flex:none}.split-resizer{display:none}.header,.header-left{flex-wrap:wrap;gap:8px}.header-right{flex-wrap:wrap;justify-content:flex-end}.header-title{font-size:22px}.header-date{font-size:16px}.header-time{font-size:18px}.tl-head-name,.tl-head-count{font-size:26px}.special-notes-banner{max-height:none;overflow-y:visible}.special-notes-list{grid-template-columns:1fr}}.park-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;padding:24px;background:linear-gradient(160deg,#e7f5ee,#cfe0c9);text-align:center}.park-page-title{font-size:22px;font-weight:800;color:var(--accent-deep);margin:0 0 8px}.park-btn{width:100%;max-width:420px;border:none;border-radius:var(--radius-lg);font-weight:800;cursor:pointer;line-height:1.4}.park-btn:disabled{opacity:.6;cursor:default}.park-btn-depart{padding:36px 16px;font-size:26px;background:var(--accent-deep);color:#fff;box-shadow:var(--shadow-lg)}.park-btn-depart:active{transform:scale(.98)}.park-btn-arrive{padding:18px 16px;font-size:16px;background:#fff;color:var(--ink);box-shadow:var(--shadow)}.park-sent{font-size:16px;font-weight:700;color:var(--accent-deep);background:#fff;padding:10px 18px;border-radius:999px;box-shadow:var(--shadow)}.park-error{font-size:14px;font-weight:700;color:#b23b3b}.park-back{margin-top:4px;font-size:16px;font-weight:700;color:var(--accent-deep);text-decoration:none;padding:10px 20px;border-radius:999px;background:#ffffff8c}.park-back:hover,.park-back:active{background:#ffffffd9}.park-alert-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#0000008c;display:flex;align-items:center;justify-content:center;cursor:pointer;animation:parkFadeIn .25s ease-out}@keyframes parkFadeIn{0%{opacity:0}to{opacity:1}}.park-alert-card{background:#fff;border-radius:var(--radius-lg);padding:48px 64px;text-align:center;box-shadow:var(--shadow-lg);animation:parkPop .35s cubic-bezier(.34,1.56,.64,1)}@keyframes parkPop{0%{transform:scale(.7);opacity:0}to{transform:scale(1);opacity:1}}.park-alert-icon{font-size:72px;line-height:1;margin-bottom:12px}.park-alert-text{font-size:34px;font-weight:900;color:var(--accent-deep)}.park-alert-time{font-size:20px;font-weight:700;color:var(--ink-soft);margin-top:6px}.spot-detail-view{background:#fffbe9;border:2px solid #f0d9a0;border-radius:10px;padding:8px 12px;margin-bottom:10px}.sdv-name{font-weight:800;font-size:16px}.sdv-category{color:#c8791b;font-weight:700;font-size:13px;margin-top:2px}.sdv-text{font-size:14px;margin-top:4px;line-height:1.5;white-space:pre-wrap}.apply-block{border:2px solid var(--accent);border-radius:10px;padding:10px 12px;margin-bottom:10px;background:var(--kaeru-bg)}.apply-title{font-weight:800;color:var(--accent-deep);margin-bottom:6px}.apply-now{font-size:13px;color:var(--ink-soft);margin-bottom:8px}.apply-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:8px}.ac-label{font-size:12px;color:var(--ink-soft);font-weight:700}.ac-chip{border:2px solid #d3e6db;background:#fff;border-radius:999px;padding:4px 12px;font-family:inherit;font-size:14px;font-weight:800;color:var(--ink);cursor:pointer}.ac-chip.active{background:var(--accent-deep);color:#fff;border-color:var(--accent-deep)}.ac-chip.from-form{border-color:var(--accent-deep);border-style:solid}.ac-chip:not(.from-form){border-style:dashed}.ac-chip.active:not(.from-form){background:#f5cf00;color:#111;border-color:#111}.ac-role{font-size:11px;margin-left:4px;opacity:.85}.sdv-form{font-size:14px;margin-top:4px;color:#1d7a4e;font-weight:700}.field-src{margin-left:6px;font-style:normal;font-size:11px;font-weight:800;color:#1d7a4e;background:#e6f4ec;border-radius:999px;padding:1px 8px}.field-src.src-text{color:#7a5a00;background:#fdf3cd}.field-src.src-hand{color:#555;background:#eee}.field-hint{margin-left:6px;font-style:normal;font-size:11px;color:var(--ink-soft)}.apply-warn{background:#fdecec;color:#b3261e;border:2px solid #f3b5b0;border-radius:8px;padding:6px 10px;font-size:14px;font-weight:800;line-height:1.4;margin:8px 0}.apply-block.is-absent{border-color:#d9c7a0;background:#fdf6e6}.apply-block.is-absent .apply-title{color:#8a6d2f}.modal-actions-sticky{position:sticky;bottom:0;background:#fff;padding-bottom:8px;z-index:2}.apply-note-input{font-family:inherit;font-size:14px;padding:6px 10px;border:2px solid #ddd;border-radius:8px;background:#fff;color:var(--ink);resize:vertical;width:100%}.btn-apply{width:100%;margin-top:8px;font-size:15px;padding:10px}.btn-apply:disabled{opacity:.5;cursor:not-allowed}.spot-edit-details{margin-bottom:8px}.spot-edit-details summary{cursor:pointer;font-weight:700;color:var(--ink-soft);font-size:13px;padding:4px 0}.time-picker{display:inline-flex;align-items:center;gap:4px}.tp-select{font-family:inherit;font-size:18px;font-weight:800;padding:6px 10px;border:2px solid #ddd;border-radius:8px;background:#fff;color:var(--ink);cursor:pointer}.tp-select:disabled{opacity:.5}.tp-colon{font-weight:800;font-size:18px}.modal-backdrop.nested{z-index:150}.special-notes-applied{background:var(--accent-deep);color:#fff;padding:1px 9px;border-radius:999px;font-size:11px;font-weight:800;margin-left:6px}.special-note.applied{background:var(--kaeru-bg);border-color:var(--accent)}.sn-applied{background:var(--accent-deep);color:#fff;padding:1px 8px;border-radius:4px;font-size:11px;font-weight:800;white-space:nowrap}.sn-applied-summary{font-size:11px;font-weight:700;color:var(--accent-deep);margin-top:2px}.apply-block.is-applied{background:#ddf1e6;border-color:var(--accent-deep)}.applied-note{font-size:12px;color:var(--accent-deep);font-weight:700;margin-bottom:6px}.return-now-stack{position:fixed;top:92px;right:14px;width:var(--return-stack-w, 220px);max-height:calc(100vh - 108px);overflow-y:auto;display:flex;flex-direction:column;gap:10px;z-index:120;padding-bottom:8px}.app.has-return-stack .main-split{padding-right:calc(var(--return-stack-w, 220px) + 24px)}.rns-title{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:900;color:var(--ink);background:#ffffffeb;border:2px solid var(--kaeru);border-radius:999px;padding:5px 10px;box-shadow:var(--shadow);white-space:nowrap}.rns-count{margin-left:auto;flex:none;font-size:12px;background:var(--kaeru);color:#fff;border-radius:999px;padding:1px 8px}.rns-card{display:flex;flex-direction:column;align-items:center;gap:2px;width:100%;padding:12px 8px 10px;border:4px solid var(--kaeru);border-radius:20px;background:var(--kaeru-bg);box-shadow:0 10px 26px #00000038;cursor:pointer;font-family:inherit;animation:rnsIn .45s cubic-bezier(.2,.9,.4,1.4)}.rns-card:hover{filter:brightness(1.03)}.rns-card:active{transform:scale(.98)}.rns-card.countdown{border-color:#7fb2d8;background:#eef6fc;padding:8px 8px 7px;opacity:.92}.rns-card.countdown .rns-time{font-size:25px}.rns-card.countdown .rns-name{font-size:19px}.rns-card.countdown .rns-state{background:#5b93bd}.rns-card.ready{border-color:#e2530c;background:#fff1e2;animation:rnsIn .45s cubic-bezier(.2,.9,.4,1.4),rnsPulse 2s ease-in-out .45s infinite}.rns-time{font-size:32px;font-weight:900;color:var(--ink);font-variant-numeric:tabular-nums;line-height:1.05}.rns-card.range .rns-time{font-size:21px;letter-spacing:-.02em;white-space:nowrap}.rns-sep{font-size:.68em;margin:0 .04em;opacity:.7}.rns-name{font-size:23px;font-weight:800;color:var(--ink);line-height:1.15}.rns-state{font-size:12px;font-weight:700;color:#fff;background:var(--kaeru);border-radius:999px;padding:2px 10px;margin-top:3px}.rns-card.ready .rns-state{background:#e2530c}@keyframes rnsIn{0%{opacity:0;transform:translate(28px) scale(.9)}to{opacity:1;transform:translate(0) scale(1)}}@keyframes rnsPulse{0%,to{box-shadow:0 10px 26px #00000038}50%{box-shadow:0 10px 26px #00000038,0 0 0 6px #e2530c47}}.volume-boost-tag{margin-left:8px;font-size:12px;font-weight:800;color:#fff;background:#e2530c;border-radius:999px;padding:2px 9px}.volume-scale{position:relative;display:flex;justify-content:space-between;font-size:10px;color:var(--ink-soft);margin-top:2px;min-height:14px}.volume-scale .vs-mid{position:absolute;left:33.33%;transform:translate(-50%);white-space:nowrap;font-weight:700}.volume-scale .vs-right{text-align:right}.filter-chip.filter-edit{background:#fff;color:var(--ink);border:1.5px solid var(--ink-soft);font-weight:800}.filter-chip.filter-edit.active{background:#b45309;border-color:#b45309;color:#fff}.edit-mode-bar{margin:0 4px 6px;padding:6px 10px;border-radius:10px;background:#fef3c7;border:1.5px solid #d97706;color:#7c2d12;font-size:14px;font-weight:800;display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;position:sticky;top:0;z-index:4}.edit-mode-done{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;border-radius:999px;background:#b45309;color:#fff;font:inherit;font-size:14px;font-weight:800;padding:6px 14px;min-height:36px;cursor:pointer}.student-card.edit-tap{outline:2px dashed #d97706;outline-offset:2px}.student-card.returned-card{background:#e7e8ea!important;border-color:#b9bcc1!important;border-style:solid!important;box-shadow:none;filter:grayscale(1);opacity:.5;animation:none;transform:none}.student-card.returned-card .student-time,.student-card.returned-card .student-name,.student-card.returned-card .student-arrival,.student-card.returned-card .method-label{color:#7a7f87!important}.student-card.returned-card .student-method{background:#ffffff80}.student-card.returned-card.clickable:hover{opacity:.9;filter:grayscale(1);transform:none}.returned-badge{display:flex;flex-direction:column;align-items:center;gap:1px;margin-top:2px;line-height:1.1}.returned-label{font-size:clamp(11px,calc(var(--card-min) * .11),14px);font-weight:800;color:#4b5058}.returned-label .rl-part{white-space:nowrap}.returned-undo{font-size:clamp(11px,calc(var(--card-min) * .1),13px);font-weight:700;color:#4b5058;padding:1px 8px;border:1.5px solid #9aa0a8;border-radius:999px;background:#fff;white-space:nowrap}
