:root{--bg: #0e1827;--bg-soft: #142238;--panel: #132033;--panel-2: #1a2b43;--line: #2d476d;--text: #e7efff;--muted: #8fa8cc;--brand: #2fb37d;--brand-2: #1fa06c;--danger: #d25555;--warn: #f2aa48}*{box-sizing:border-box}body{margin:0;color:var(--text);font-family:Noto Sans KR,Pretendard,sans-serif;background:radial-gradient(1000px 400px at 15% -10%,#2a4d86 0%,transparent 60%),radial-gradient(900px 420px at 100% 0%,#225450 0%,transparent 58%),var(--bg)}.page{min-height:100vh;padding:20px}.login-wrap{min-height:calc(100vh - 40px);display:grid;place-items:center}.login-card{width:min(460px,100%);padding:30px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(160deg,#142135f2,#101b2af2);box-shadow:0 24px 45px #00000059}.login-card h1{margin:0 0 8px;font-size:2rem}.login-card p{margin:0 0 20px;color:var(--muted)}.login-credit{margin-top:-10px;font-size:.94rem;color:#d7e6fb}.login-inputs{display:grid;gap:12px}.login-password-field{display:grid;gap:8px}.login-password-actions{display:flex;justify-content:flex-end;gap:8px}.login-help{margin:0 0 18px;font-size:.92rem;line-height:1.5;color:var(--muted)}.login-exit-btn{margin-top:10px}.role-switch{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0 18px}.role-switch label{cursor:pointer;border:1px solid var(--line);border-radius:12px;padding:10px 12px;text-align:center;background:var(--bg-soft);color:var(--muted);font-weight:700}.role-switch label.active{border-color:#3cc68f;color:#d8ffe6;background:#2fb37d33}.role-switch input{display:none}.app-shell{width:min(1240px,100%);margin:0 auto;display:grid;gap:16px}.app-shell-racing{width:100%;max-width:none}.topbar{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}.topbar-info{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.room-pill{padding:10px 14px;border-radius:999px;border:1px solid var(--line);background:#1a2b43cc;color:#b9d0f0;font-size:.9rem}.room-pill-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;font:inherit}.room-pill-button:hover{border-color:#89b3ebe6;background:#203451eb}.room-pill-input{display:flex;align-items:center;gap:8px}.room-pill-label{color:#d7e6fb;font-weight:700;white-space:nowrap}.room-pill-text-input{width:110px;min-width:0;border:0;background:transparent;color:var(--text);font:inherit;padding:0;outline:none}.room-pill-text-input::placeholder{color:#8ea4c4}.topbar-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.card{border:1px solid var(--line);border-radius:18px;background:linear-gradient(180deg,#18263beb,#131f30f2);box-shadow:0 16px 35px #0000003d;padding:16px}.hero{display:grid;gap:16px;overflow-x:clip}.hero-label{text-align:center;font-size:.8rem;color:var(--muted);letter-spacing:.2em}.boss-grid{display:grid;grid-template-columns:1fr 1.3fr 1fr;gap:12px}.boss-side,.boss-main{border:1px solid var(--line);border-radius:14px;background:#0c141f66;padding:12px}.boss-side{display:grid;align-content:start;gap:7px;text-align:center}.boss-side strong{font-size:1.1rem}.boss-main{display:grid;gap:10px;place-items:center;text-align:center;padding:20px 16px}.boss-main-name{margin:0;color:#9ed7ff;font-size:1.2rem}.boss-main-time{font-size:clamp(1.9rem,5vw,3rem);font-weight:900;letter-spacing:.03em}.boss-main-time.warning{color:#f77;animation:pulse 1s infinite}.sync-help-text{margin:0;color:#ffd45a;font-size:.82rem;font-weight:700}.sync-needed-time{color:#ffd45a!important}.boss-main-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.boss-main-drop{margin:0;color:#b8cae4}.map-wrap{border-top:1px solid var(--line);padding-top:12px;display:grid;gap:10px;justify-items:center;width:100%}.map-action-row{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.adjacent-spawn-info{width:100%;max-width:940px;text-align:center;color:#ffd45a;font-size:.9rem;font-weight:700;line-height:1.5}.map-viewport{width:100%;max-width:940px;aspect-ratio:16 / 9;overflow:hidden;border-radius:12px;border:1px solid var(--line);background:#0c1522;cursor:grab;position:relative}.map-viewport:active{cursor:grabbing}.map-viewport img{position:absolute;top:0;left:0;transform-origin:0 0;max-width:none;-webkit-user-select:none;user-select:none}.shared-memo-legacy-toggle{display:none!important}.shared-memo-floating{position:fixed;right:max(20px,env(safe-area-inset-right));bottom:max(20px,env(safe-area-inset-bottom));display:flex;flex-direction:column;align-items:flex-end;gap:12px;z-index:40;pointer-events:none}.shared-memo-floating>*{pointer-events:auto}.shared-memo-card{display:grid;gap:10px;border:1px solid rgba(86,120,171,.45);border-radius:16px;padding:12px;background:linear-gradient(180deg,#0f1b2afa,#0b1523);box-shadow:0 26px 46px #00000057,inset 0 1px #89a8d314}.shared-memo-flyout{position:relative;grid-template-rows:auto auto minmax(0,1fr);width:min(620px,calc(100vw - 32px));max-width:calc(100vw - 32px);max-height:calc(100vh - 140px);overflow:hidden}.shared-memo-head{display:flex;justify-content:space-between;align-items:center;gap:8px;color:#dce9fb}.shared-memo-head strong{font-size:.98rem}.shared-memo-head span{color:#93add0;font-size:.82rem}.shared-memo-status.saving{color:#ffd988}.shared-memo-status.saved{color:#93add0}.shared-memo-toolbar{display:flex;gap:8px;flex-wrap:wrap}.shared-memo-tool{border:1px solid rgba(92,132,192,.56);border-radius:10px;background:#122235db;color:#eef6ff;padding:7px 10px;display:inline-flex;align-items:center;justify-content:center;font-size:.84rem;font-weight:700;cursor:pointer;transition:transform .16s ease,border-color .16s ease,background .16s ease}.shared-memo-tool:hover{transform:translateY(-1px);border-color:#96c5ffe0;background:#1a304bf0}.shared-memo-editor{min-height:0;border:1px solid rgba(77,113,163,.46);border-radius:12px;background:#070e18b8;padding:14px 15px;color:#edf5ff;line-height:1.7;text-align:left;outline:none;height:100%;overflow-y:auto;overflow-wrap:anywhere;overscroll-behavior:contain}.shared-memo-editor:focus{border-color:#86bbffd1;box-shadow:0 0 0 1px #86bbff24}.shared-memo-editor:empty:before{content:attr(data-placeholder);color:#6f89aa}.shared-memo-editor p,.shared-memo-editor ul,.shared-memo-editor ol{margin:0 0 .7em}.shared-memo-editor p:last-child,.shared-memo-editor ul:last-child,.shared-memo-editor ol:last-child{margin-bottom:0}.shared-memo-editor ul,.shared-memo-editor ol{padding-left:1.4em}.shared-memo-resize-handle{position:absolute;border:0;padding:0;background:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none;opacity:1;z-index:2;touch-action:none}.shared-memo-resize-handle:after{content:"";position:absolute;border-radius:999px;background:#82abe047;transition:background .16s ease}.shared-memo-resize-handle:hover:after{background:#a0cbff75}.shared-memo-resize-handle-top{top:-8px;left:20px;right:20px;height:16px;cursor:ns-resize}.shared-memo-resize-handle-top:after{top:6px;left:0;right:0;height:2px}.shared-memo-resize-handle-left{top:20px;bottom:20px;left:-8px;width:16px;cursor:ew-resize}.shared-memo-resize-handle-left:after{top:0;bottom:0;left:6px;width:2px}.shared-memo-resize-handle-corner{top:-10px;left:-10px;width:22px;height:22px;cursor:nwse-resize}.shared-memo-resize-handle-corner:after{top:6px;left:6px;width:10px;height:10px;border-top:2px solid rgba(130,171,224,.32);border-left:2px solid rgba(130,171,224,.32);border-radius:8px 0 0;background:transparent}.shared-memo-resize-handle-corner:hover:after{border-top-color:#a0cbff85;border-left-color:#a0cbff85}.shared-memo-fab{width:62px;height:62px;border:2px solid rgba(125,157,203,.7);border-radius:20px;background:linear-gradient(180deg,#172940f5,#0d1725);color:#f4f8ff;display:inline-flex;align-items:center;justify-content:center;font-size:2rem;cursor:pointer;box-shadow:0 20px 34px #00000047;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease,background .18s ease}.shared-memo-fab:hover{transform:translateY(-2px);border-color:#abceffeb;background:linear-gradient(180deg,#1e3552fa,#101e2f)}.shared-memo-fab.active{border-color:#abcefff5}.shared-memo-fab.has-update{border-color:#e14b4b;box-shadow:0 0 0 3px #e14b4b24,0 20px 34px #00000047}.shared-memo-fab span{display:inline-block;line-height:1;transform:translateY(-1px);animation-name:var(--shared-memo-emoji-animation, none);animation-duration:.5s;animation-timing-function:cubic-bezier(.22,.88,.32,1.18);animation-iteration-count:1;animation-fill-mode:both}@keyframes sharedMemoFabBounceA{0%{transform:translateY(-1px) scale(1)}24%{transform:translateY(-8px) scale(1.02)}42%{transform:translateY(-12px) scale(1.03)}64%{transform:translateY(1px) scale(.98)}78%{transform:translateY(-3px) scale(1.01)}to{transform:translateY(-1px) scale(1)}}@keyframes sharedMemoFabBounceB{0%{transform:translateY(-1px) scale(1)}24%{transform:translateY(-8px) scale(1.02)}42%{transform:translateY(-12px) scale(1.03)}64%{transform:translateY(1px) scale(.98)}78%{transform:translateY(-3px) scale(1.01)}to{transform:translateY(-1px) scale(1)}}.fly-animation{transition:transform .45s ease}.section-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.section-left{display:inline-flex;align-items:center;gap:10px}.section-actions{display:inline-flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.column-controls{margin-top:8px;display:flex;gap:12px;flex-wrap:wrap;color:var(--muted);font-size:.86rem}.pref-group{width:100%;border:1px solid rgba(82,118,170,.35);border-radius:12px;padding:10px;background:#0d172461}.pref-group-title{margin:0 0 8px;font-size:.86rem;color:#9fc3ef;font-weight:800}.column-controls label{display:inline-flex;align-items:center;gap:5px}.pref-row{display:flex;align-items:flex-start;gap:12px;width:100%}.pref-row-label{display:inline-flex;align-items:center;min-width:132px;font-weight:700;color:#b9d0f0;line-height:1.5}.pref-row-options{display:flex;gap:12px;flex-wrap:wrap;flex:1}.alert-controls,.adjacent-threshold-controls{margin-top:2px}.pref-row-options .input-text.adjacent-threshold-input{width:5em;min-width:5em;max-width:5em;flex:0 0 5em;padding:6px 8px;text-align:center}.bell-btn{min-width:40px;padding-left:8px;padding-right:8px;filter:grayscale(1);opacity:.72}.bell-btn.active{border-color:#4cd6a0;background:#2fb37d3d;color:#d8ffe8;filter:none;opacity:1}.btn.chase-toggle-btn.active{border-color:#ffc660eb;background:#ffb84a2e;color:#fff1c4}.section-head h3{margin:0}.filter-select{width:96px;padding:7px 9px;font-size:.9rem}.copy-order-btn{white-space:nowrap;flex-shrink:0}.copy-order-btn:disabled{filter:grayscale(1)}.status-card{padding-left:10px;padding-right:10px}.status-card .table-wrap{margin-left:0;margin-right:0}.form-grid{margin-top:12px;border:1px solid var(--line);border-radius:12px;padding:12px;display:grid;grid-template-columns:80px 1fr 1fr 140px 1fr 1fr;gap:8px}.span-2{grid-column:span 2}.row-actions{display:flex;gap:8px}.table-wrap{margin-top:14px;overflow:auto;display:flex;justify-content:center;width:100%}.boss-table-card{margin:12px auto 0;border:1px solid rgba(82,118,170,.45);border-radius:14px;padding:10px;background:linear-gradient(180deg,#101c2ce6,#0c1624f0);box-shadow:inset 0 1px #91b3e214,0 10px 24px #040a134d;width:fit-content;max-width:100%}.boss-table-card .table-wrap{margin-top:0;width:auto;max-width:100%;display:block;overflow:auto}table{width:100%;border-collapse:separate;border-spacing:0 8px;min-width:0;table-layout:fixed;font-size:.8rem}.boss-table{font-size:.92rem}th,td{padding:11px 9px;vertical-align:middle;text-align:center;word-break:break-word;font-weight:400}th{color:#9eb6d8;font-size:.82rem;text-transform:uppercase;padding-bottom:2px;letter-spacing:.01em}.boss-table th .th-cell{color:#8fc1ff;font-weight:800}.boss-table th:not(:last-child) .th-cell:before{content:"";position:absolute;right:-2px;top:2px;width:2px;height:calc(100% - 4px);background:linear-gradient(180deg,#92b9eccc,#4c73a866)}th[draggable=true] .th-cell{cursor:grab}th.dragging-col{opacity:.55}.th-cell{position:relative;display:block;padding-right:8px}.col-resizer{position:absolute;top:-8px;right:-6px;width:10px;height:calc(100% + 16px);cursor:col-resize;touch-action:none}.col-resizer:after{content:"";position:absolute;right:4px;top:10%;width:2px;height:80%;background:#8caad259}.col-resizer:hover:after{background:#accdf8cc}.dragging{opacity:.55}tbody tr td{background:linear-gradient(180deg,#111d2df2,#0c1724fa);border-top:1px solid rgba(83,117,165,.4);border-bottom:1px solid rgba(54,79,112,.38);box-shadow:inset 0 1px #81a1cf14}tbody tr td:first-child{border-left:1px solid rgba(83,117,165,.4);border-top-left-radius:10px;border-bottom-left-radius:10px}tbody tr td:last-child{border-right:1px solid rgba(83,117,165,.4);border-top-right-radius:10px;border-bottom-right-radius:10px}tbody tr:hover td{background:linear-gradient(180deg,#18293ffa,#0f1e2ffa)}tr.row-main-boss td{background:linear-gradient(180deg,#1e4038f2,#14302afa);border-color:#4fc89a8c}tr.row-next-boss td{background:linear-gradient(180deg,#1d3453f2,#122642fa);border-color:#60a3f18c}tr.row-timer-disabled td{filter:grayscale(1);opacity:.62}tr.row-timer-disabled td.alert-cell{filter:none;opacity:1}.inline-actions{display:flex;gap:6px;justify-content:center}.name-cell{display:inline-flex;align-items:center;gap:6px}.boss-alert-checkbox{width:16px;height:16px;cursor:pointer}.boss-alert-checkbox:disabled{cursor:default;opacity:.6}.name-near-icon{color:#ffd34e;font-size:.95rem}.boss-name-text{font-weight:400;font-size:1rem;letter-spacing:-.01em;text-shadow:0 0 14px rgba(96,179,255,.2)}.info-cell-text{color:#c7d9f6}.location-cell{white-space:nowrap;text-align:left}.location-text{font-weight:400;color:#edf5ff;display:inline-block;text-align:left}.btn-icon-info{width:18px;height:18px;border-radius:999px;border:1px solid var(--line);background:#1a2b43bf;color:#c2d6f4;font-size:.72rem;line-height:1;cursor:pointer;font-weight:800}.btn-icon-info:hover{background:#2fb37d33;border-color:#4cd6a0}.time-cell-btn{min-width:98px;font-variant-numeric:tabular-nums;border:1px solid rgba(68,118,188,.78);border-radius:11px;background:linear-gradient(180deg,#193157f2,#132644fa);color:#ffe19a;font-size:1rem;font-weight:500;letter-spacing:.01em}.time-cell-btn.sync-needed{background:linear-gradient(180deg,#453714db,#31260ce6);border-color:#ffd763e6;color:#ffeaa8;font-weight:500;box-shadow:0 0 0 1px #ffd76329}.map-icon-btn{margin-left:8px;min-width:36px;min-height:30px;padding:5px 8px;border-radius:10px;border-color:#4178bfa8;background:linear-gradient(180deg,#162d4dd1,#0e233fe0)}.next-time-text{font-variant-numeric:tabular-nums;font-size:1rem;font-weight:400;color:#d7e9ff;letter-spacing:.01em}.chase-cell{text-align:center;padding-left:4px;padding-right:4px}.btn.chase-cell-btn{width:auto;max-width:100%;min-width:0;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;margin:0 auto;border-radius:11px;border-color:#7898c7a3;background:#0f1b2a94;color:#eef6ff;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chase-cell-emoji-group{display:inline-flex;align-items:center;justify-content:center;gap:4px;width:100%}.chase-cell-emoji{display:inline-block;font-size:1.14rem;line-height:1}.btn.chase-cell-btn.has-selection{border-color:#ffd675d1;background:#172436c7;color:#fff0bc}.btn.chase-cell-btn:disabled{opacity:.86;cursor:default}.btn.chase-cell-btn.has-selection:disabled{opacity:.94}.controls{display:flex;gap:8px;flex-wrap:wrap}.creator-credit{margin-left:auto;align-self:center;color:#8fa8cc;font-size:.84rem;white-space:nowrap}.racing-card{--race-text-glow-soft: 0 0 7px rgba(6, 16, 30, .85), 0 0 14px rgba(20, 68, 117, .62), 0 0 22px rgba(49, 139, 230, .42);--race-text-glow-strong: 0 0 8px rgba(7, 19, 35, .9), 0 0 16px rgba(23, 80, 136, .72), 0 0 28px rgba(67, 162, 255, .52);display:grid;gap:12px;background-image:linear-gradient(180deg,var(--racing-bg-overlay-top, rgba(8, 18, 33, .38)),var(--racing-bg-overlay-bottom, rgba(8, 17, 30, .5))),var(--racing-bg-image);background-size:cover;background-position:center;background-repeat:no-repeat}.racing-top-toggle{display:flex;justify-content:flex-end}.racing-collapse-btn{min-width:86px}.racing-head-wrap.collapsed{display:none}.racing-card :is(.racing-title,.racing-subtitle,.pet-name-input-wrap label,.race-config-field label,.racing-meta,.race-state,.race-auto-scroll-toggle,.race-empty-state,.race-roster-head,.race-roster-head strong,.race-roster-head span,.race-roster-stats,.pet-type-text,.race-status,.race-cooldown-text,.race-unified-index,.race-lane-finish,.race-event,.race-ranking h3,.race-ranking li,.race-ranking li strong,.race-log-card h3,.race-log-item,.race-log-time,.race-log-empty,.race-result-list li,.race-result-list li strong,.race-skill-table th,.race-skill-table td){text-shadow:var(--race-text-glow-soft)}.racing-card :is(.racing-title,.race-state,.race-status,.race-unified-index,.race-lane-finish,.race-event,.race-ranking li strong,.race-result-list li strong){text-shadow:var(--race-text-glow-strong)}.racing-head{display:grid;grid-template-columns:minmax(340px,500px) 1fr;align-items:stretch;gap:12px}.racing-config-panel{border:1px solid rgba(94,136,191,.52);border-radius:13px;background:linear-gradient(180deg,#0d1d2f4d,#0a162466);-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);padding:12px;display:grid;gap:8px}.racing-actions-panel{border:1px solid rgba(94,136,191,.52);border-radius:13px;background:linear-gradient(180deg,#0c1b2c42,#0914215c);-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);padding:10px;display:grid;gap:10px;align-content:start}.racing-title{margin:0;color:#cfe6ff;font-size:1.45rem}.racing-subtitle{margin:2px 0 0;color:var(--muted)}.pet-name-input-wrap{display:grid;gap:8px;max-width:100%}.pet-name-input-wrap label{font-size:.8rem;color:#9ec2eb;font-weight:700}.pet-name-input{padding:8px 10px;font-size:.88rem}.pet-name-input-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}.pet-name-shuffle-btn{white-space:nowrap;min-width:92px;padding-left:12px;padding-right:12px}.skill-info-btn{margin-top:2px;width:100%}.racing-track-options{border:1px solid rgba(91,132,188,.42);border-radius:11px;background:linear-gradient(180deg,#0a182859,#08121f70);padding:10px;display:grid;gap:8px}.racing-track-options-title{font-size:.78rem;color:#9fc6f1;font-weight:700;letter-spacing:.02em}.race-config-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.race-config-field{display:grid;gap:5px}.racing-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;align-content:flex-start}.racing-actions-panel .skill-info-btn{margin-top:0}.racing-meta{display:flex;gap:8px;flex-wrap:wrap;color:#b9d0f0;font-size:.86rem}.race-auto-scroll-toggle{display:inline-flex;align-items:center;gap:6px;border:1px solid rgba(101,145,196,.48);border-radius:999px;padding:4px 10px;background:#111e2e57;color:#cde3ff;font-weight:600;cursor:pointer;-webkit-user-select:none;user-select:none}.race-auto-scroll-toggle input{width:14px;height:14px;accent-color:#4fd7a1}.race-state{border:1px solid var(--line);border-radius:999px;padding:4px 10px;background:#111e2e5c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.race-state.running{border-color:#5be7acb3;background:#20574299;color:#c8ffe3}.race-state.finished{border-color:#ffd774cc;background:#53411394;color:#ffeab6}.race-track-wrap{display:grid;gap:10px}.race-empty-state{border:1px dashed rgba(104,145,198,.5);border-radius:10px;padding:14px 12px;color:#9ab5d8;text-align:center;background:#0a142138;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.race-unified-layout{--race-row-height: 73px;display:grid;grid-template-columns:minmax(200px,280px) 1fr;gap:12px;align-items:stretch}.race-unified-layout.is-running{align-items:start}.race-roster{display:grid;gap:8px}.race-unified-layout.is-running .race-roster{padding-top:8px;padding-bottom:8px}.race-roster-item{border:1px solid rgba(82,124,179,.48);border-radius:11px;background:linear-gradient(180deg,#0e1b2b42,#0a152357);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);padding:6px 8px;min-height:var(--race-row-height);display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px}.race-unified-layout.is-running .race-roster-item{min-height:var(--race-row-height);height:var(--race-row-height);padding:6px 8px;display:flex;align-items:center;justify-content:space-between;gap:8px}.race-roster-head{display:flex;align-items:center;gap:6px;color:#c8dcfa;font-size:.85rem;flex:1 1 100%;min-width:0}.race-unified-layout.is-running .race-roster-head{flex:1 1 auto}.race-roster-head strong{color:#8fc1ff}.race-roster-head span{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.race-unified-layout.is-running .race-roster-head span{max-width:140px}.race-roster-stats{margin-left:auto;min-width:0;display:flex;align-items:center;gap:7px;color:#d7e9ff;font-size:.76rem;font-variant-numeric:tabular-nums;white-space:nowrap}.race-unified-layout.is-running .race-roster-stats{gap:8px}.pet-type-text{color:#9fc6ef;font-size:.72rem;font-weight:700}.race-unified-layout.is-running .pet-type-text{display:none}.pet-picker{display:flex;gap:6px;margin-top:0}.pet-option{border:1px solid rgba(77,120,176,.58);border-radius:9px;padding:2px 4px;background:#0d1a2b57;color:#d6e8ff;display:inline-flex;align-items:center;gap:4px;cursor:pointer;font-size:.67rem;font-weight:700}.pet-option.active{border-color:#6bc2ff;background:#1b3f6061;color:#f0f8ff;box-shadow:0 0 0 1px #6bc2ff29}.pet-option:hover{border-color:#82bef9d6}.race-unified-track-scroll{min-width:0;width:100%;overflow-x:auto;overflow-y:hidden;padding-bottom:4px;scrollbar-width:thin;scrollbar-color:rgba(110,162,225,.55) rgba(8,20,34,.34)}.race-unified-track-scroll::-webkit-scrollbar{height:9px}.race-unified-track-scroll::-webkit-scrollbar-track{background:#08142257;border-radius:999px}.race-unified-track-scroll::-webkit-scrollbar-thumb{background:#6ea2e18c;border-radius:999px}.race-unified-track{position:relative;border:1px solid var(--track-border-color, rgba(80, 120, 172, .52));border-radius:12px;background:linear-gradient(180deg,var(--track-shell-top, rgba(17, 31, 50, .54)),var(--track-shell-bottom, rgba(11, 20, 33, .62)));overflow:hidden;padding:8px 10px;display:grid;gap:8px;height:100%;width:var(--track-world-width, 100%);min-width:100%}.race-unified-layout:not(.is-running) .race-unified-track{grid-template-rows:repeat(var(--lane-count, 1),minmax(0,1fr))}.race-unified-lane{position:relative;height:var(--race-row-height);border:1px solid var(--lane-border-color, rgba(72, 109, 159, .35));border-radius:10px;background-image:linear-gradient(180deg,var(--lane-scene-overlay-top, rgba(20, 38, 27, .16)),var(--lane-scene-overlay-bottom, rgba(16, 31, 22, .28))),var(--lane-track-pattern-image),var(--racing-bg-image),linear-gradient(180deg,var(--lane-base-top, rgba(10, 26, 43, .82)),var(--lane-base-bottom, rgba(8, 18, 31, .86)));background-repeat:no-repeat,repeat-x,no-repeat,no-repeat;background-size:100% 100%,220px 56px,cover,100% 100%;background-position:left top,calc(-1 * var(--lane-pattern-shift, 0px)) center,calc(50% + var(--lane-scene-x-shift, 0px)) calc(50% + var(--lane-scene-y-shift, 0px)),left top;box-shadow:inset 0 0 0 1px var(--lane-inner-line-color, rgba(111, 160, 217, .24));overflow:hidden;z-index:0}.race-lane-scenery{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:1;overflow:hidden;opacity:var(--lane-scenery-opacity, .58)}.race-lane-scenery:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:var(--lane-scenery-strip-image);background-repeat:repeat-x;background-size:220px 56px;background-position:left center;opacity:var(--lane-scenery-strip-opacity, .3)}.race-lane-scenery-item{position:absolute;top:50%;width:56px;height:40px;transform:translate(-50%,calc(-50% + var(--scene-y, 0px))) scale(var(--scene-scale, 1));opacity:var(--scene-opacity, .56);z-index:1}.race-lane-scenery-item:nth-child(2n){top:54%}.race-lane-scenery-item:nth-child(3n){top:46%}.race-lane-scenery-mark{width:100%;height:100%;display:block;filter:drop-shadow(0 1px 1px rgba(0,0,0,.35))}.race-lane-scenery-item.is-back{filter:saturate(.9)}.race-lane-scenery-item.is-mid{filter:saturate(.95)}.race-lane-scenery-item.is-front{filter:saturate(1.02)}.race-unified-layout:not(.is-running) .race-unified-lane{height:var(--race-row-height);min-height:var(--race-row-height)}.race-unified-lane:before{content:"";position:absolute;left:0;right:0;top:50%;border-top:1px dashed var(--lane-center-line-color, rgba(146, 181, 227, .34));z-index:2}.race-unified-index{position:absolute;left:8px;top:6px;font-size:.68rem;color:var(--lane-index-color, #8eb6df);font-weight:700;z-index:2}.race-lane-finish{position:absolute;right:0;top:0;bottom:0;border-left:3px solid #ffd470;color:#ffd470;font-size:.62rem;font-weight:800;letter-spacing:.08em;display:flex;align-items:flex-start;justify-content:flex-end;padding:4px 4px 0 0;z-index:0;pointer-events:none}.race-unified-finish{z-index:0}.race-unified-runner{position:absolute;top:50%;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;z-index:3;transition:left .13s linear;will-change:left}.race-runner-name{position:absolute;left:50%;bottom:calc(100% - 14px);transform:translate(-50%);display:block;max-width:128px;color:#0b0f14;font-size:.83rem;font-weight:900;line-height:1.15;letter-spacing:.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center;text-shadow:0 0 2px rgba(255,255,255,1),0 0 4px rgba(255,255,255,.98),0 0 7px rgba(255,255,255,.9),0 0 11px rgba(255,255,255,.78),0 0 16px rgba(255,255,255,.62),0 1px 0 rgba(255,255,255,.9);pointer-events:none;z-index:5}.race-pet-visual{--race-pet-anim-speed: 1;width:62px;height:52px;display:grid;place-items:center;position:relative}.race-pet-visual.boosted{--race-pet-anim-speed: 2}.race-pet-visual.running{--race-pet-anim-speed: 1.3}.race-pet-visual.running.boosted{--race-pet-anim-speed: 2}.race-cooldown-wrap{position:absolute;left:50%;top:100%;transform:translate(-50%,-2px);width:56px;height:9px;border:1px solid rgba(111,154,210,.66);border-radius:999px;background:#081423d6;overflow:hidden;pointer-events:none;z-index:5}.race-cooldown-fill{position:absolute;left:0;top:0;bottom:0;width:0%;background:linear-gradient(90deg,#3ad698db,#50acffe0);transition:width .12s linear}.race-cooldown-text{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:.46rem;font-weight:700;color:#e9f6ff;letter-spacing:.01em;line-height:1}.race-pet-visual.shielded:after{content:"";position:absolute;width:54px;height:54px;border-radius:999px;border:2px solid rgba(97,189,255,.95);box-shadow:0 0 10px #61bdffcc,inset 0 0 10px #61bdff66;background:radial-gradient(circle,rgba(92,179,255,.1),rgba(92,179,255,.02) 62%,transparent 72%);animation:shield-ring .95s ease-in-out infinite;pointer-events:none}.rabbit-racer{width:58px;height:44px;display:grid;place-items:center;transform-origin:50% 90%;animation:rabbit-hop calc(.65s / var(--race-pet-anim-speed, 1)) ease-in-out infinite;filter:drop-shadow(0 2px 2px rgba(0,0,0,.35))}.rabbit-racer-svg{width:100%;height:100%}.rabbit-racer.compact{width:30px;height:22px;animation:none;filter:none}.horse-racer{width:58px;height:44px;display:grid;place-items:center;transform-origin:50% 90%;animation:horse-trot calc(.56s / var(--race-pet-anim-speed, 1)) ease-in-out infinite;filter:drop-shadow(0 2px 2px rgba(0,0,0,.35))}.race-pet-visual.stunned .rabbit-racer,.race-pet-visual.stunned .horse-racer{animation-play-state:paused}.horse-racer-svg{width:100%;height:100%}.horse-racer.compact{width:30px;height:22px;animation:none;filter:none}.race-event{border:1px solid rgba(111,150,199,.65);border-radius:999px;padding:2px 7px;font-size:.7rem;line-height:1.2;font-weight:700;color:#d9ebff;background:#152941e6;white-space:nowrap}.race-unified-runner>.race-event{position:absolute;right:calc(100% + 6px);top:50%;transform:translateY(-50%) scale(1);transform-origin:100% 50%;z-index:4;pointer-events:none;animation:race-event-pop 1.04s cubic-bezier(.2,1.25,.32,1) both}.race-event.is-attack{border-color:#ffa078d9;background:#68321adb;color:#ffe3c9}.race-event.is-shield{border-color:#7cc4ffdb;background:#1d476fdb;color:#deefff}.race-event.is-boost{border-color:#60d395cc;background:#235b41d9;color:#d8ffe7}.race-event.is-run{border-color:#70d4ffd6;background:#184566db;color:#def4ff}.race-event.is-stun{border-color:#ff9696d9;background:#612828d9;color:#ffdcdc}.race-event.is-finished{border-color:#ffdd7bdb;background:#5f471edb;color:#fff0be}.race-event.is-slow{border-color:#bc98ffd9;background:#463270d6;color:#efe2ff}.race-event.is-evade{border-color:#ffc678e6;background:#724a1cdb;color:#ffefcf}.race-status{font-size:.75rem;color:#9bd0ff;font-weight:700}.carrot-shot{position:absolute;left:0;top:0;width:18px;height:18px;transform:translate(-50%,-50%) rotate(var(--shot-rotate, -30deg));z-index:8;pointer-events:none;transition:left .12s linear,top .12s linear,transform .12s linear;filter:drop-shadow(0 0 5px rgba(255,174,73,.7))}.carrot-shot-svg{width:100%;height:100%;display:block}.map-hazard{position:absolute;top:50%;transform:translate(-50%,-50%);pointer-events:none;z-index:2;transition:left .13s linear;will-change:left}.map-hazard-boulder{width:25px;height:25px;transform:translate(-50%,-50%) rotate(var(--boulder-angle, 0deg))}.map-hazard-boulder-spin{display:block;width:100%;height:100%;animation:boulder-roll .6s linear infinite;filter:drop-shadow(0 0 6px rgba(166,180,210,.42))}.map-hazard-mud{width:48px;height:18px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.5))}.map-hazard-svg{width:100%;height:100%;display:block}.race-ranking{margin-top:4px;border:1px solid rgba(94,142,201,.55);border-radius:12px;background:#0d182647;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);padding:12px}.race-ranking h3{margin:0 0 8px;color:#a7d7ff}.race-ranking ol{margin:0;padding-left:20px;display:grid;gap:6px}.race-ranking li{display:flex;justify-content:space-between;gap:12px;color:#e9f2ff}.race-ranking li strong{color:#ffe5a5;font-variant-numeric:tabular-nums}.race-log-card{border:1px solid rgba(92,136,193,.55);border-radius:12px;background:linear-gradient(180deg,#0c182847,#0b131f5c);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);padding:12px;display:grid;gap:8px}.race-log-card h3{margin:0;color:#9ccfff}.race-log-list{border:1px solid rgba(79,114,165,.4);border-radius:10px;background:#080f1933;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);max-height:190px;overflow:auto;padding:8px;display:grid;gap:6px;font-size:.83rem}.race-log-item{display:flex;gap:8px;line-height:1.4;color:#e7f1ff}.race-log-time{color:#96b4dc;font-variant-numeric:tabular-nums;min-width:50px}.race-log-empty{color:#7f9cc0}.race-result-dialog{width:min(460px,100%)}.race-result-list{margin:0;padding-left:20px;display:grid;gap:7px}.race-result-list li{display:flex;justify-content:space-between;gap:12px;color:#e7f1ff}.race-result-list li strong{color:#ffe6a2;font-variant-numeric:tabular-nums}.dialog.race-skill-dialog{width:min(980px,calc(100% - 24px));max-width:980px}.race-skill-table{width:100%;border-collapse:collapse;border:1px solid rgba(88,126,180,.45);border-radius:10px;overflow:hidden;background:#08101bb8;font-size:.86rem}.race-skill-table th,.race-skill-table td{border-bottom:1px solid rgba(84,120,170,.34);border-right:1px solid rgba(74,106,151,.3);padding:8px 9px;text-align:left;line-height:1.45}.race-skill-table th:last-child,.race-skill-table td:last-child{border-right:none}.race-skill-table tbody tr:last-child td{border-bottom:none}.race-skill-table th{background:linear-gradient(180deg,#1f3e62d1,#152d4ad1);color:#cce7ff;font-size:.82rem;letter-spacing:.02em}.race-skill-table td{color:#e5f1ff}.race-skill-prob-wrap{display:inline-flex;align-items:center;gap:6px}.race-skill-range-grid{display:grid;gap:6px}.race-skill-range-wrap{gap:5px}.race-skill-prob-input{width:82px;text-align:right}.input-text{width:100%;border:1px solid var(--line);border-radius:10px;background:#0c1622d9;color:var(--text);padding:10px 12px}.input-text.compact{padding:7px 8px;font-size:.82rem}.input-text.textarea{resize:vertical;min-height:92px;line-height:1.45}.input-text.large{font-size:1rem;padding:13px 14px}.btn{border:1px solid transparent;border-radius:10px;padding:9px 12px;color:var(--text);background:var(--panel-2);cursor:pointer;font-weight:700}.btn:hover{transform:translateY(-1px)}.btn.primary{background:var(--brand);color:#062013}.btn.primary:hover{background:var(--brand-2)}.btn.success{background:#2398b7;color:#eafaff}.btn.danger{background:var(--danger);color:#ffecec}.btn.ghost{background:#1a2b43b3;border-color:var(--line)}.btn.muted{background:#2b3d58;color:#9eb1cb}.btn.block{width:100%}.btn.tiny{padding:5px 8px;font-size:.76rem}.btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.muted{color:var(--muted)}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#050a10b8;display:grid;place-items:center;z-index:1000;padding:16px}.dialog{width:min(420px,100%);border:1px solid var(--line);border-radius:14px;background:linear-gradient(180deg,#192940fa,#101b2bfa);padding:16px}.dialog.minigame-dialog{width:min(620px,100%)}.form-dialog{width:min(980px,100%)}.dialog.chase-team-dialog,.dialog.room-settings-dialog{width:min(520px,100%)}.dialog.participant-list-dialog{width:min(400px,100%)}.dialog h4{margin:0 0 6px}.dialog p{margin:0 0 12px;color:var(--muted);font-size:.9rem}.time-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}.time-grid label{display:grid;gap:6px;font-size:.86rem;color:var(--muted)}.time-grid input{width:100%;border:1px solid var(--line);border-radius:10px;background:#0a121dcc;color:var(--text);padding:9px 10px}.dialog-actions{margin-top:12px;display:flex;justify-content:flex-end;gap:8px}.dialog-check{margin-top:10px;display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-size:.9rem}.room-settings-grid{display:grid;gap:12px}.room-settings-field{display:grid;gap:6px;color:var(--muted);font-size:.9rem}.room-settings-inline-actions{display:flex;justify-content:flex-end;gap:8px}.participant-list{display:grid;gap:8px}.participant-list-item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:11px 12px;border:1px solid rgba(96,129,176,.45);border-radius:12px;background:#111d2db8}.participant-list-name{font-weight:700;color:#eef5ff;word-break:break-word}.participant-list-badge{padding:3px 8px;border-radius:999px;background:#49c59029;color:#cffff0;font-size:.78rem;font-weight:700;white-space:nowrap}.app-toast{position:fixed;left:50%;bottom:max(20px,env(safe-area-inset-bottom));transform:translate(-50%);z-index:1200;padding:11px 16px;border:1px solid rgba(115,196,154,.55);border-radius:999px;background:#0f1e18f0;color:#dcffee;font-size:.9rem;font-weight:700;box-shadow:0 14px 28px #00000047;pointer-events:none;white-space:nowrap}.chase-team-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.chase-team-option{width:100%;border:1px solid rgba(102,136,188,.6);border-radius:13px;background:linear-gradient(180deg,#16253aeb,#0f1b2cfa);color:var(--text);min-height:136px;padding:18px 16px;display:grid;place-items:center;gap:12px;text-align:center;font-weight:700;cursor:pointer;transition:transform .16s ease,border-color .16s ease,background .16s ease,box-shadow .16s ease}.chase-team-option:hover{transform:translateY(-1px);border-color:#8dbdffe0;background:linear-gradient(180deg,#1c2f49f5,#122033)}.chase-team-option.active{border-color:#ffd770f2;background:linear-gradient(180deg,#604316eb,#462f0dfa);color:#fff2ca;box-shadow:0 0 0 1px #ffd77038}.chase-team-option-emoji{font-size:3.05rem;line-height:1}.chase-team-option-label{font-size:.95rem;letter-spacing:.01em}.minigame-list{display:grid;gap:12px}.minigame-item{width:100%;border:1px solid var(--line);border-radius:14px;background:linear-gradient(180deg,#18263be6,#121f31f5);color:var(--text);padding:14px 16px;display:grid;gap:8px;text-align:left;cursor:pointer;transition:transform .16s ease,border-color .16s ease,background .16s ease}.minigame-item:hover{transform:translateY(-1px);border-color:#73c49ae6;background:linear-gradient(180deg,#1c2f48f5,#142438)}.minigame-item-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.minigame-item-title{font-size:1rem}.minigame-item-desc{color:var(--muted);font-size:.92rem;line-height:1.5}.minigame-item-badge{flex:none;border-radius:999px;padding:4px 10px;font-size:.75rem;font-weight:800;letter-spacing:.02em}.minigame-item-badge.internal{background:#2fb37d2e;color:#b8f4d8}.minigame-item-badge.external{background:#f2aa482e;color:#ffd8a0}.info-dialog pre{margin:0;white-space:pre-wrap;word-break:break-word;max-height:280px;overflow:auto;border:1px solid var(--line);border-radius:10px;padding:10px 11px;background:#0a121db3;color:#d5e4fb;font-family:inherit}@keyframes pulse{50%{opacity:.42}}@keyframes rabbit-hop{0%{transform:translateY(0) rotate(0)}40%{transform:translateY(-2px) rotate(-2deg)}70%{transform:translateY(1px) rotate(1deg)}to{transform:translateY(0) rotate(0)}}@keyframes horse-trot{0%{transform:translateY(0) rotate(0)}30%{transform:translateY(-1px) rotate(-1deg)}60%{transform:translateY(1px) rotate(1deg)}to{transform:translateY(0) rotate(0)}}@keyframes shield-ring{0%{transform:scale(.96);opacity:.82}50%{transform:scale(1.03);opacity:1}to{transform:scale(.96);opacity:.82}}@keyframes carrot-fly{0%{transform:translateZ(0) rotate(-40deg)}to{transform:translate3d(var(--shot-dx),var(--shot-dy),0) rotate(320deg)}}@keyframes boulder-roll{0%{transform:rotate(0)}to{transform:rotate(-360deg)}}@keyframes race-event-pop{0%{transform:translateY(-50%) scale(.62);opacity:0}58%{transform:translateY(-50%) scale(1.16);opacity:1}to{transform:translateY(-50%) scale(1);opacity:1}}@media(max-width:1080px){.boss-grid,.racing-head{grid-template-columns:1fr}.racing-actions-panel,.racing-actions{justify-content:flex-start}.racing-track-options{padding:9px}.pet-name-input-wrap{max-width:100%}.pet-name-input-row{grid-template-columns:1fr}.pet-name-shuffle-btn{width:100%}.race-config-row,.race-unified-layout{grid-template-columns:1fr}.race-roster-stats{grid-template-columns:auto auto auto}.pet-picker{flex-wrap:wrap}.form-grid{grid-template-columns:1fr 1fr}.span-2{grid-column:span 2}.map-viewport{width:100%;max-width:100%}}@media(max-width:640px){.page{padding:12px}.card{padding-left:10px;padding-right:10px}.status-card{padding-left:6px;padding-right:6px}.table-wrap{margin-left:0;margin-right:0}.boss-table-card{padding:6px;width:100%}.racing-title{font-size:1.2rem}.race-unified-layout{--race-row-height: 65px}.race-unified-lane{height:var(--race-row-height)}.race-lane-finish{right:0;font-size:.56rem}.race-unified-runner{gap:4px}.rabbit-racer{width:46px;height:36px}.race-event{font-size:.62rem;padding:1px 6px}.race-pet-visual{width:52px;height:44px}.race-pet-visual.shielded:after{width:46px;height:46px}.race-cooldown-wrap{width:48px;height:8px;transform:translate(-50%,-1px)}.race-cooldown-text{font-size:.42rem}.pet-option{padding:2px 4px;font-size:.66rem}.rabbit-racer.compact,.horse-racer.compact{width:24px;height:18px}.race-status{font-size:.68rem}.race-runner-name{max-width:108px;font-size:.75rem;bottom:calc(100% - 12px)}.carrot-shot{width:15px;height:15px}.map-hazard-boulder{width:22px;height:22px}.map-hazard-mud{width:40px;height:15px}.race-log-list{max-height:160px}.login-card{padding:20px}.topbar-info{width:100%}.room-pill-input{width:100%;justify-content:space-between}.login-password-actions{justify-content:stretch}.login-password-actions .btn{flex:1}.room-settings-inline-actions{justify-content:stretch}.room-settings-inline-actions .btn{flex:1}.form-grid{grid-template-columns:1fr}.span-2{grid-column:span 1}.map-action-row{width:100%;display:grid;grid-template-columns:1fr}.shared-memo-floating{right:max(12px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom))}.shared-memo-flyout{max-width:calc(100vw - 24px);max-height:calc(100vh - 118px)}.shared-memo-head{align-items:flex-start;flex-direction:column}.shared-memo-toolbar{gap:6px}.shared-memo-tool{flex:1 1 calc(50% - 6px);justify-content:center}.shared-memo-fab{width:56px;height:56px;border-radius:18px;font-size:1.8rem}.chase-team-grid{gap:10px}.chase-team-option{min-height:120px;padding:14px 10px}.chase-team-option-emoji{font-size:2.6rem}.row-actions{display:grid;grid-template-columns:1fr 1fr}th,td{padding:7px 4px;font-size:.76rem}.inline-actions{flex-direction:column}.time-cell-btn{min-width:0;width:100%;padding:5px 4px}}body.overlay-mode{background:transparent;overflow:hidden}body.overlay-mode #root{width:fit-content;min-height:0}.overlay-page{display:inline-grid;min-height:0;padding:10px}.overlay-login-wrap{min-height:0;display:block}.overlay-login-card{width:min(420px,100%);padding:22px;border-radius:20px;background:linear-gradient(180deg,#0c1421d6,#101b2af0);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);overflow:visible}.overlay-shell{min-height:0;display:inline-block;justify-self:start}.overlay-frame{display:grid;gap:12px;border-radius:22px;padding:12px;border:1px solid rgba(133,172,226,.24);background:radial-gradient(140% 160% at 0% 0%,rgba(43,86,148,.28),transparent 52%),linear-gradient(180deg,#0a101bd1,#0b131feb);box-shadow:0 20px 36px #00000057;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);-webkit-app-region:drag;-webkit-user-select:none;user-select:none;cursor:grab}.overlay-frame:active{cursor:grabbing}.overlay-header{display:flex;justify-content:space-between;gap:10px;align-items:center}.overlay-header-main,.overlay-header-actions{display:flex;align-items:center;gap:8px}.overlay-header-main{min-width:0;flex:1 1 auto;flex-wrap:nowrap}.overlay-header-actions{flex:0 0 auto;flex-wrap:nowrap}.overlay-badge,.overlay-badge-button,.overlay-chip,.overlay-icon-btn,.overlay-edit-context-menu,.overlay-edit-context-menu *,.overlay-edit-list,.overlay-edit-list *,.overlay-edit-time-btn,.overlay-filter-select,.overlay-toolbar-btn,.overlay-party-menu,.overlay-party-menu *,.overlay-alert-option,.overlay-alert-option *,.overlay-settings-dialog button,.overlay-settings-dialog input,.overlay-settings-dialog label{-webkit-app-region:no-drag}.overlay-badge{display:inline-flex;align-items:center;flex:0 0 auto;padding:6px 10px;border-radius:999px;background:#38ad792e;color:#b6ffd6;font-size:.72rem;font-weight:800;letter-spacing:.12em}.overlay-badge-button{border:0;cursor:pointer;font:inherit;transition:transform .14s ease,background-color .14s ease,border-color .14s ease}.overlay-badge-button.is-collapsed-summary{gap:10px;padding:8px 12px;letter-spacing:0}.overlay-badge-button:hover{transform:translateY(-1px);background:#38ad7942}.overlay-collapsed-name{max-width:156px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.95rem;font-weight:800;color:#f4fbff}.overlay-collapsed-time{white-space:nowrap;font-size:.92rem;font-weight:900;color:#ffec57}.overlay-room-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.95rem;color:#f2f7ff}.overlay-header-actions{flex:1 1 auto;justify-content:flex-end}.overlay-chip,.overlay-icon-btn{border:1px solid rgba(121,150,192,.34);background:#121e30d6;color:var(--text);cursor:pointer;transition:background-color .14s ease,border-color .14s ease,transform .14s ease}.overlay-chip{padding:7px 11px;border-radius:999px;font:inherit}.overlay-chip.active{border-color:#4cd69899;background:#216d4e57;color:#d9ffea}.overlay-icon-btn{width:32px;height:32px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;font-size:1rem;line-height:1}.overlay-icon-btn.active{border-color:#98bcef85}.overlay-icon-btn.active{background:#1e304aeb}.overlay-chip:hover,.overlay-icon-btn:hover{border-color:#98bcef85;background:#1e304aeb;transform:translateY(-1px)}.overlay-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;-webkit-app-region:drag}.overlay-filter-select,.overlay-toolbar-btn{min-height:34px;border:1px solid rgba(121,150,192,.34);border-radius:11px;background:#101c2ce6;color:#e6f0ff;font:inherit}.overlay-filter-select{min-width:108px;padding:7px 30px 7px 10px;cursor:pointer}.overlay-toolbar-btn{display:inline-flex;align-items:center;justify-content:center;padding:7px 12px;cursor:pointer;transition:background-color .14s ease,border-color .14s ease,transform .14s ease,color .14s ease}.overlay-toolbar-btn:hover,.overlay-filter-select:hover{border-color:#98bcef85;background:#1e304aeb}.overlay-toolbar-btn.active{border-color:#64afff8c;background:#1c304df2}.overlay-toolbar-btn:disabled{opacity:.45;cursor:default}.overlay-party-filter{position:relative}.overlay-party-menu{position:absolute;top:calc(100% + 6px);left:0;z-index:3;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;min-width:196px;padding:8px;border:1px solid rgba(121,150,192,.24);border-radius:14px;background:linear-gradient(180deg,#0e1725f7,#0b131ffc);box-shadow:0 16px 30px #00000052}.overlay-party-option{min-height:34px;border:1px solid rgba(121,150,192,.24);border-radius:10px;background:#121e30d6;color:#dce8f9;font:inherit;font-weight:700;cursor:pointer;transition:background-color .14s ease,border-color .14s ease,color .14s ease}.overlay-party-option.active,.overlay-edit-btn.needs-attention{border-color:#f2c94cad;background:#6e551047;color:#ffe97a;font-weight:800}.overlay-edit-btn{margin-left:auto;align-self:stretch}.overlay-edit-btn.needs-attention{box-shadow:inset 0 0 0 1px #ffe88024}.overlay-settings-dialog{display:grid;gap:12px;padding:12px;border-radius:18px;border:1px solid rgba(121,150,192,.24);background:linear-gradient(180deg,#0e1725f0,#0b131ffa);box-shadow:inset 0 0 0 1px #ffffff08;-webkit-app-region:drag}.overlay-settings-section{display:grid;gap:10px}.overlay-settings-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.overlay-settings-title{display:block;font-size:.92rem;color:#f3f8ff}.overlay-settings-help{margin:4px 0 0;font-size:.78rem;line-height:1.4;color:var(--muted)}.overlay-settings-value{font-size:.84rem;color:#d7e6fb}.overlay-settings-dialog input[type=range]{width:100%;cursor:pointer}.overlay-alert-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.overlay-alert-option{display:flex;align-items:center;gap:8px;min-height:40px;padding:8px 10px;border-radius:12px;border:1px solid rgba(121,150,192,.2);background:#111d2edb;color:#dce8f9;cursor:pointer;font-size:.8rem}.overlay-alert-option input{margin:0}.overlay-alert-option.disabled{opacity:.5;cursor:not-allowed}.overlay-shell.is-collapsed .overlay-frame{padding:8px;width:max-content}.overlay-shell.is-collapsed .overlay-header{width:max-content;justify-content:flex-start}.overlay-shell.is-collapsed .overlay-header-main{width:max-content}.overlay-body{display:grid;grid-template-columns:1fr;gap:8px}.overlay-edit-list{--overlay-edit-row-height: 78px;display:grid;grid-template-columns:1fr;gap:8px;max-height:calc(var(--overlay-edit-row-height) * 2 + 8px);overflow-y:auto;padding-right:4px;overscroll-behavior:contain}.overlay-edit-empty{padding:14px 16px;border-radius:16px;border:1px solid rgba(121,150,192,.2);background:linear-gradient(180deg,#0f1827d1,#0c1421eb);color:#d7e6fb;font-size:.88rem}.overlay-edit-context-menu{position:fixed;z-index:20;min-width:154px;padding:6px;border:1px solid rgba(121,150,192,.28);border-radius:14px;background:linear-gradient(180deg,#0e1725fa,#0b131ffc);box-shadow:0 16px 30px #0000005c}.overlay-edit-context-item{width:100%;min-height:40px;display:inline-flex;align-items:center;gap:10px;padding:9px 10px;border:0;border-radius:10px;background:transparent;color:#e8f1ff;font:inherit;font-size:.84rem;font-weight:700;text-align:left;cursor:pointer;transition:background-color .14s ease,color .14s ease}.overlay-edit-context-item:hover:not(:disabled){background:#1e304aeb}.overlay-edit-context-item.active{color:#ffe97a}.overlay-edit-context-item:disabled{opacity:.5;cursor:default}.overlay-edit-context-check{width:14px;flex:0 0 14px;text-align:center;color:#ffe97a}.overlay-edit-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;min-height:var(--overlay-edit-row-height);padding:10px 12px 10px 16px;border-radius:16px;border:1px solid rgba(121,150,192,.24);background:linear-gradient(180deg,#0f1827db,#0c1421f0);position:relative;overflow:hidden}.overlay-edit-row:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--overlay-accent, #2fb37d)}.overlay-edit-row.sync-needed{border-color:#f2aa488a}.overlay-edit-row.alert-disabled{filter:grayscale(1);opacity:.62}.overlay-edit-main{min-width:0;display:grid;gap:4px}.overlay-edit-head{min-width:0;display:flex;align-items:center;gap:8px}.overlay-edit-kind{flex:0 0 auto;padding:2px 7px;border-radius:999px;background:#1f3554c7;color:#8da4c5;font-size:.68rem;font-weight:800;letter-spacing:.06em}.overlay-edit-name{min-width:0;font-size:1rem;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#f8fbff}.overlay-edit-location{min-width:0;font-size:.78rem;line-height:1.3;color:#b8d3f6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.overlay-edit-time-btn{min-width:126px;min-height:40px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:7px 12px;border:1px solid rgba(121,150,192,.3);border-radius:12px;background:#111d2ee6;color:var(--overlay-accent, #75d9ab);font:inherit;font-size:1.02rem;font-weight:900;letter-spacing:.03em;cursor:pointer;transition:transform .14s ease,background-color .14s ease,border-color .14s ease,color .14s ease}.overlay-edit-time-btn:hover:not(:disabled){transform:translateY(-1px);border-color:#98bcef85;background:#1e304aeb}.overlay-edit-time-btn.sync-needed{border-color:#f2c94cad;color:#ffe97a}.overlay-edit-time-btn:disabled{opacity:.55;cursor:default}.overlay-edit-alert{color:#ffe55b}.overlay-boss-card{display:grid;grid-template-columns:minmax(0,1.05fr) auto minmax(0,1fr);align-items:center;gap:14px;min-height:0;padding:11px 14px 11px 18px;border-radius:16px;border:1px solid rgba(121,150,192,.24);background:linear-gradient(180deg,#0f1827db,#0c1421f0);position:relative;overflow:hidden}.overlay-boss-card:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--overlay-accent, #2fb37d)}.overlay-boss-card.sync-needed{border-color:#f2aa488a}.overlay-boss-primary{min-width:0;display:grid;gap:2px}.overlay-boss-label{font-size:.7rem;line-height:1;font-weight:800;letter-spacing:.08em;color:#8da4c5}.overlay-boss-name{min-width:0;font-size:1.08rem;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#f8fbff}.overlay-boss-time{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;font-size:1.55rem;font-weight:800;letter-spacing:.04em;line-height:1;color:var(--overlay-accent, #75d9ab)}.overlay-sync-indicator{width:22px;height:22px;flex:0 0 22px;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(242,201,76,.65);border-radius:999px;background:#6a521047;color:#ffe55b;font-size:.95rem;font-weight:900;line-height:1}.overlay-boss-location{min-width:0;font-size:.8rem;line-height:1.3;text-align:right;color:#b8d3f6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media(max-width:720px){.overlay-page{padding:8px}.overlay-header{align-items:flex-start}.overlay-body{grid-template-columns:1fr}.overlay-alert-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.overlay-toolbar{align-items:stretch}.overlay-edit-btn{margin-left:auto}.overlay-edit-row{gap:10px;padding:10px 10px 10px 15px}.overlay-edit-list{--overlay-edit-row-height: 78px}.overlay-edit-time-btn{min-width:98px;padding:7px 10px;font-size:.94rem}.overlay-boss-card{grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;padding:10px 13px 10px 17px}.overlay-boss-primary{gap:3px}.overlay-boss-name{grid-column:1 / 2}.overlay-boss-time{grid-column:2 / 3;grid-row:1 / 3;align-self:center}.overlay-boss-location{grid-column:1 / 2;text-align:left}}
