:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#eef0f6;--bg-2:#fff;--surface:#fff;--surface-2:#f3f4fa;--surface-3:#e8eaf3;--border:#dcdee9;--border-strong:#c5c8d8;--text:#17172b;--text-muted:#6b6f8a;--text-faint:#9296ad;--primary:#e2001a;--primary-fg:#fff;--primary-hover:#b30015;--danger:#e74c3c;--danger-fg:#fff;--danger-hover:#c0392b;--success:#1f9254;--success-fg:#fff;--warn:#b6741a;--bday-bg:#ffe6ef;--bday-border:#ffc3d8;--bday-text:#8a2846;--holiday-bg:#dff2fb;--holiday-border:#b6e0f0;--holiday-text:#12556b;--out-bg:#eceef5;--out-text:#5f6480;--away-bg:#e5eeff;--away-text:#2d4d8f;--radius-sm:5px;--radius:8px;--radius-lg:14px;--shadow:0 1px 3px #14142d14, 0 4px 12px #14142d0d;--shadow-lg:0 6px 20px #14142d24, 0 16px 48px #14142d1a;--ring:0 0 0 3px color-mix(in srgb, var(--primary) 28%, transparent);--toolbar-h:56px;--panel-w:366px}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0b0b16;--bg-2:#16162a;--surface:#16162a;--surface-2:#1f1f38;--surface-3:#292947;--border:#2b2b4a;--border-strong:#3d3d63;--text:#eaeaf7;--text-muted:#9497b8;--text-faint:#6f7292;--primary:#ff3b30;--primary-fg:#fff;--primary-hover:#e2001a;--danger:#ff6b6b;--danger-fg:#1a0d0d;--danger-hover:#ee5a5a;--success:#2ecc71;--success-fg:#06240f;--warn:#e0a94a;--bday-bg:#3a1e2c;--bday-border:#5c2c42;--bday-text:#ffc7dc;--holiday-bg:#10303c;--holiday-border:#1d4c5e;--holiday-text:#a9e2f5;--out-bg:#23233d;--out-text:#a0a3c2;--away-bg:#1b2c4d;--away-text:#a8c6ff;--shadow:0 1px 3px #0006, 0 4px 12px #0000004d;--shadow-lg:0 6px 20px #00000080, 0 16px 48px #0006}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,sans-serif;font-size:14px;line-height:1.5}#root{height:100%}button{cursor:pointer;font:inherit;color:inherit;background:0 0;border:none}input,textarea,select{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:var(--radius-sm)}::placeholder{color:var(--text-faint)}.app{grid-template-columns:minmax(0,1fr);grid-template-rows:var(--toolbar-h) minmax(0, 1fr);background:var(--bg);height:100dvh;color:var(--text);display:grid;overflow:hidden}.main{grid-template-columns:minmax(0, 1fr) minmax(0, var(--panel-w));min-width:0;transition:grid-template-columns .22s;display:grid;overflow:hidden}.main.is-panel-hidden{grid-template-columns:minmax(0,1fr) 0}.main.is-panel-hidden .panel{opacity:0;pointer-events:none}@media (width<=1180px){:root{--panel-w:320px}}@media (width<=860px){.main{grid-template-rows:minmax(0,1fr) minmax(0,48dvh);grid-template-columns:minmax(0,1fr)}.main.is-panel-hidden{grid-template-rows:minmax(0,1fr) 0;grid-template-columns:minmax(0,1fr)}.panel{border-left:none;border-top:1px solid var(--border)}.wheel-area{gap:8px;padding:10px 10px 8px}.banner{border-radius:var(--radius-lg);padding:7px 12px;font-size:13px}.spin-btn{padding:11px 36px;font-size:16px}.stage-target{color:var(--text-muted);text-align:center;letter-spacing:.2px;font-size:12.5px;font-weight:600}.stage-note{font-size:12px}}.wheel-area{flex-direction:column;justify-content:center;align-items:center;gap:12px;min-width:0;min-height:0;padding:16px 16px 12px;display:flex;position:relative;overflow:hidden}.wheel-scene{flex:auto;justify-content:center;align-items:center;width:100%;min-width:0;min-height:0;display:flex;position:relative}.wheel-square{width:100%;height:100%;position:relative}.stage-footer{flex-direction:column;flex-shrink:0;align-items:center;gap:8px;width:100%;display:flex}.stage-target{color:var(--text-muted);text-align:center;letter-spacing:.2px;font-size:12.5px;font-weight:600}.stage-note{color:var(--text-muted);text-align:center;max-width:46ch;font-size:13px;line-height:1.4}.stage-note.is-warn{color:var(--warn);font-weight:500}.spin-btn{background:var(--primary);color:var(--primary-fg);letter-spacing:.6px;box-shadow:0 6px 20px color-mix(in srgb, var(--primary) 35%, transparent);border-radius:999px;flex-shrink:0;align-items:center;gap:8px;padding:12px 42px;font-size:17px;font-weight:700;transition:background .15s,transform .1s,box-shadow .15s,opacity .15s;display:inline-flex}.spin-btn:hover:not(:disabled){background:var(--primary-hover);box-shadow:0 8px 26px color-mix(in srgb, var(--primary) 45%, transparent);transform:translateY(-1px)}.spin-btn:active:not(:disabled){box-shadow:0 3px 10px color-mix(in srgb, var(--primary) 35%, transparent);transform:translateY(0)}.spin-btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.banner{text-align:center;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;gap:6px;max-width:100%;padding:9px 16px;font-size:14px;font-weight:600;display:flex}.banner.is-bday{background:var(--bday-bg);color:var(--bday-text);border:1px solid var(--bday-border)}.banner.is-holiday{background:var(--holiday-bg);color:var(--holiday-text);border:1px solid var(--holiday-border)}@media (prefers-reduced-motion:no-preference){.banner{animation:.35s ease-out banner-pop}}@keyframes banner-pop{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}.pointer-wrap{z-index:2;pointer-events:none;position:absolute;top:-6px;left:50%;transform:translate(-50%)}.pointer-svg{filter:drop-shadow(0 2px 4px #0000004d);display:block}@keyframes pointer-nudge{0%{transform:rotate(-18deg)}40%{transform:rotate(12deg)}70%{transform:rotate(-6deg)}to{transform:rotate(0)}}.pointer-svg.nudge{transform-origin:50% 0;animation:.18s ease-out forwards pointer-nudge}.toolbar{height:var(--toolbar-h);background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:10px;min-width:0;padding:0 10px 0 16px;display:flex}.toolbar-title{border-radius:var(--radius);letter-spacing:-.2px;background:0 0;border:1px solid #0000;outline:none;flex:1;min-width:0;padding:7px 10px;font-size:17px;font-weight:650;transition:background .12s,border-color .12s}.toolbar-title:hover{background:var(--surface-2)}.toolbar-title:focus{background:var(--surface-2);border-color:var(--border-strong)}.toolbar-actions{flex-shrink:0;align-items:center;gap:2px;display:flex}.toolbar-icon-btn{border-radius:var(--radius);width:36px;height:36px;color:var(--text-muted);flex-shrink:0;justify-content:center;align-items:center;transition:background .12s,color .12s;display:flex}.toolbar-icon-btn:hover{background:var(--surface-2);color:var(--text)}.toolbar-icon-btn.is-text{letter-spacing:.5px;width:auto;min-width:36px;padding:0 8px;font-size:12px;font-weight:700}.toolbar-share-btn{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);flex-shrink:0;align-items:center;gap:6px;margin-left:6px;padding:8px 14px;font-size:13px;font-weight:550;transition:background .12s,border-color .12s;display:flex}.toolbar-share-btn:hover{background:var(--surface-3);border-color:var(--border-strong)}@media (width<=620px){.toolbar{gap:4px;padding:0 6px 0 10px}.toolbar-share-btn span{display:none}.toolbar-share-btn{padding:8px 10px}}.panel{border-left:1px solid var(--border);background:var(--surface);flex-direction:column;min-width:0;transition:opacity .18s;display:flex;overflow:hidden}.wheels-bar{border-bottom:1px solid var(--border);background:var(--surface);flex-shrink:0;align-items:center;gap:6px;padding:10px 12px;display:flex}.wheels-select{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;flex:1;min-width:0;padding:7px 8px;font-size:13px;transition:border-color .12s}.wheels-select:hover{border-color:var(--border-strong)}.wheels-actions{flex-shrink:0;align-items:center;gap:1px;display:flex}.icon-btn{border-radius:var(--radius);width:32px;height:32px;color:var(--text-muted);flex-shrink:0;justify-content:center;align-items:center;transition:background .12s,color .12s;display:flex}.icon-btn:hover{background:var(--surface-2);color:var(--text)}.icon-btn.is-danger:hover{background:color-mix(in srgb, var(--danger) 15%, transparent);color:var(--danger)}.panel-tabs{background:var(--surface-2);border-radius:var(--radius);flex-shrink:0;grid-template-columns:repeat(5,1fr);gap:2px;margin:10px 12px 8px;padding:3px;display:grid}.panel-tab{border-radius:var(--radius-sm);color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:2px;min-width:0;padding:6px 1px;font-size:10.5px;font-weight:550;transition:background .12s,color .12s,box-shadow .12s;display:flex}.panel-tab span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.panel-tab:hover{color:var(--text)}.panel-tab.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}[data-theme=dark] .panel-tab.active{background:var(--surface-3)}.panel-stats{flex-wrap:wrap;flex-shrink:0;align-items:center;gap:6px;padding:0 14px 8px;display:flex}.stat-chip{background:var(--surface-2);color:var(--text-muted);white-space:nowrap;border-radius:999px;padding:3px 9px;font-size:11.5px;font-weight:600}.stat-chip.is-in{background:color-mix(in srgb, var(--success) 16%, transparent);color:color-mix(in srgb, var(--success) 78%, var(--text))}.stat-chip.is-out{background:var(--out-bg);color:var(--out-text)}.stat-chip.is-bday{background:var(--bday-bg);color:var(--bday-text)}.panel-search{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-faint);flex-shrink:0;align-items:center;gap:7px;margin:0 12px 8px;padding:0 10px;transition:border-color .12s;display:flex}.panel-search:focus-within{border-color:var(--border-strong)}.panel-search input{background:0 0;border:none;outline:none;flex:1;min-width:0;padding:7px 0;font-size:13px}.panel-list{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent;flex:1;padding:0 8px 8px;overflow-y:auto}.panel-empty{text-align:center;color:var(--text-muted);flex-direction:column;align-items:center;gap:10px;padding:34px 20px;font-size:13px;display:flex}.panel-hint{color:var(--text-muted);padding:0 14px 8px;font-size:12px;line-height:1.5}.panel-hint.is-flush{padding:0}.entry-row{border-radius:var(--radius);align-items:center;gap:6px;padding:4px 6px 4px 8px;transition:background .12s,opacity .15s;display:flex}.entry-row:hover,.entry-row:focus-within{background:var(--surface-2)}.entry-row.is-off{opacity:.62}.entry-row.is-off:hover{opacity:.85}.entry-color-dot{border-radius:50%;flex-shrink:0;width:11px;height:11px;transition:background .15s}.entry-color-dot.is-muted{border:1.5px dashed var(--border-strong);background:0 0}.entry-name-input{border-radius:var(--radius-sm);text-overflow:ellipsis;background:0 0;border:1px solid #0000;outline:none;flex:1;min-width:0;padding:5px 6px;font-size:14px;transition:background .12s,border-color .12s}.entry-name-input:hover{border-color:var(--border)}.entry-name-input:focus{background:var(--surface);border-color:var(--border-strong)}[data-theme=dark] .entry-name-input:focus{background:var(--surface-3)}.entry-row.is-birthday .entry-name-input{font-weight:650}.entry-tag{text-transform:uppercase;letter-spacing:.4px;background:var(--out-bg);color:var(--out-text);border-radius:999px;flex-shrink:0;padding:2px 6px;font-size:10.5px;font-weight:600}.entry-tag.is-away{background:var(--away-bg);color:var(--away-text);cursor:help;align-items:center;padding:3px 5px;display:inline-flex}.entry-tag.is-bday{cursor:help}.entry-row.is-away .entry-name-input{color:var(--text-muted)}.entry-tag.is-bday{background:var(--bday-bg);color:var(--bday-text);text-transform:none;letter-spacing:0}.entry-bday{border-radius:var(--radius-sm);width:24px;height:24px;color:var(--text-faint);cursor:pointer;opacity:0;flex-shrink:0;justify-content:center;align-items:center;transition:color .12s,background .12s,opacity .12s;display:flex;position:relative}.entry-row:hover .entry-bday,.entry-row:focus-within .entry-bday{opacity:.75}.entry-bday:hover{background:var(--surface-3);color:var(--text);opacity:1}.entry-bday.set{opacity:1;color:#d6336c}.entry-bday.today{opacity:1;color:#e8590c}@media (prefers-reduced-motion:no-preference){.entry-bday.today{animation:1.4s ease-in-out infinite bday-pulse}}@keyframes bday-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.18)}}.entry-bday-input{opacity:0;cursor:pointer;border:none;width:100%;height:100%;margin:0;padding:0;position:absolute;inset:0}.entry-weight{opacity:0;flex-shrink:0;align-items:center;gap:1px;transition:opacity .12s;display:flex}.entry-row:hover .entry-weight,.entry-row:focus-within .entry-weight,.entry-weight.has-weight{opacity:1}.entry-weight-btn{border-radius:var(--radius-sm);width:20px;height:20px;color:var(--text-muted);justify-content:center;align-items:center;font-size:14px;line-height:1;transition:background .12s,color .12s;display:flex}.entry-weight-btn:hover:not(:disabled){background:var(--surface-3);color:var(--text)}.entry-weight-btn:disabled{opacity:.35;cursor:default}.entry-weight-val{text-align:center;min-width:20px;color:var(--text-muted);cursor:default;font-size:11.5px;font-weight:600}.entry-switch{background:var(--border-strong);border-radius:999px;flex-shrink:0;width:32px;height:18px;transition:background .16s;position:relative}.entry-switch[aria-checked=true]{background:var(--success)}.entry-switch-knob{background:#fff;border-radius:50%;width:14px;height:14px;transition:transform .16s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #0000004d}.entry-switch[aria-checked=true] .entry-switch-knob{transform:translate(14px)}.entry-del-btn{border-radius:var(--radius-sm);color:#0000;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;transition:color .12s,background .12s;display:flex}.entry-row:hover .entry-del-btn,.entry-row:focus-within .entry-del-btn{color:var(--text-faint)}.entry-del-btn:hover{background:color-mix(in srgb, var(--danger) 15%, transparent);color:var(--danger)!important}@media (hover:none){.entry-bday,.entry-weight{opacity:1}.entry-del-btn{color:var(--text-faint)}}.panel-controls{border-top:1px solid var(--border);background:var(--surface);flex-shrink:0;align-items:center;gap:4px;padding:10px 12px;display:flex}.panel-controls .add-btn{background:var(--primary);color:var(--primary-fg);border-radius:var(--radius);flex:1;justify-content:center;align-items:center;gap:5px;padding:8px 10px;font-size:13px;font-weight:600;transition:background .15s;display:flex}.panel-controls .add-btn:hover{background:var(--primary-hover)}.bulk-textarea{resize:none;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);outline:none;flex:1;width:calc(100% - 24px);margin:0 12px 12px;padding:10px 12px;font-size:14px;line-height:1.7;transition:border-color .12s}.bulk-textarea:focus{border-color:var(--border-strong)}.btn{border-radius:var(--radius);cursor:pointer;white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:6px;padding:9px 16px;font-size:14px;font-weight:550;transition:background .15s,border-color .15s,transform .1s;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--primary);color:var(--primary-fg)}.btn-primary:hover:not(:disabled){background:var(--primary-hover)}.btn-danger{background:var(--danger);color:var(--danger-fg)}.btn-danger:hover:not(:disabled){background:var(--danger-hover)}.btn-ghost{color:var(--text-muted);border-color:var(--border);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--surface-2);color:var(--text);border-color:var(--border-strong)}.btn-sm{padding:6px 12px;font-size:13px}.modal-backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:100;background:#0808148c;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:100%;min-width:300px;max-width:440px;padding:24px;animation:.18s ease-out modal-in}@keyframes modal-in{0%{opacity:0;transform:scale(.94)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}.modal-title{margin-bottom:10px;font-size:18px;font-weight:700}.modal-title.is-centered{color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;justify-content:center;align-items:center;gap:8px;margin-bottom:0;font-size:15px;display:flex}.modal-text{color:var(--text-muted);margin-bottom:4px;font-size:13.5px}.modal-winner-name{text-align:center;color:var(--primary);word-break:break-word;padding:12px 0 6px;font-size:34px;font-weight:800;line-height:1.15}.modal-quip{text-align:center;color:var(--text-muted);margin-bottom:4px;font-size:13.5px;font-style:italic}.modal-actions{flex-wrap:wrap;gap:8px;margin-top:20px;display:flex}.modal-actions.is-end{justify-content:flex-end}.modal-actions.is-stacked{flex-direction:column;align-items:stretch;gap:10px}.modal-actions-row{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.toast-wrap{z-index:200;pointer-events:none;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.toast{background:var(--text);color:var(--bg);box-shadow:var(--shadow-lg);border-radius:999px;padding:9px 18px;font-size:13px;font-weight:550;animation:.2s ease-out toast-in,.2s ease-in 1.8s forwards toast-out}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes toast-out{0%{opacity:1}to{opacity:0}}.loading{height:100dvh;color:var(--text-muted);justify-content:center;align-items:center;gap:10px;font-size:15px;font-weight:550;display:flex}.loading-spinner{border:2px solid var(--border-strong);border-top-color:var(--primary);border-radius:50%;width:16px;height:16px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.login-page{background:var(--bg);justify-content:center;align-items:center;min-height:100dvh;padding:24px;display:flex}.login-box{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:360px;box-shadow:var(--shadow-lg);flex-direction:column;gap:14px;padding:28px 24px;display:flex}.login-title{text-align:center;color:var(--text);margin:0 0 4px;font-size:20px;font-weight:700}.login-input{width:100%;color:var(--text);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);outline:none;padding:10px 12px;font-size:15px;transition:border-color .12s}.login-input:focus{border-color:var(--primary)}.login-error{color:var(--danger);margin:0;font-size:13px}.absences-manager{flex-direction:column;flex:1;gap:14px;padding:4px 12px 14px;display:flex;overflow-y:auto}.absence-dates{grid-template-columns:1fr 1fr;gap:8px;display:grid}.absence-dates label{min-width:0;color:var(--text-muted);flex-direction:column;gap:4px;font-size:11.5px;font-weight:600;display:flex}.holidays-manager{flex-direction:column;flex:1;gap:14px;padding:4px 12px 14px;display:flex;overflow-y:auto}.holidays-form{flex-direction:column;gap:8px;display:flex}.holidays-repeat{color:var(--text-muted);cursor:pointer;align-items:center;gap:7px;font-size:13px;display:flex}.holidays-submit{background:var(--primary);color:var(--primary-fg);border-radius:var(--radius);justify-content:center;align-items:center;gap:6px;padding:9px 12px;font-size:13px;font-weight:600;transition:background .15s,opacity .15s;display:flex}.holidays-submit:hover:not(:disabled){background:var(--primary-hover)}.holidays-submit:disabled{opacity:.45;cursor:not-allowed}.holidays-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.holiday-empty{color:var(--text-muted);padding:4px 0;font-size:13px}.holiday-row{border-radius:var(--radius);background:var(--surface-2);align-items:center;gap:8px;padding:8px 10px;display:flex}.holiday-name{min-width:0;color:var(--text);text-overflow:ellipsis;white-space:nowrap;flex:1;font-weight:600;overflow:hidden}.holiday-date{color:var(--text-muted);white-space:nowrap;font-size:11.5px}.holiday-del{width:22px;height:22px;color:var(--text-faint);border-radius:var(--radius-sm);flex-shrink:0;justify-content:center;align-items:center;transition:background .12s,color .12s;display:flex}.holiday-del:hover{background:color-mix(in srgb, var(--danger) 15%, transparent);color:var(--danger)}.history-panel{flex-direction:column;flex:1;padding:0 8px 8px;display:flex;overflow-y:auto}.history-empty{color:var(--text-muted);text-align:center;padding:24px 12px;font-size:13px}.history-list{flex:1}.history-day-list{margin:0;padding:0;list-style:none}.history-row{border-bottom:1px solid var(--border);align-items:baseline;gap:8px;padding:9px 8px;display:flex}.history-row:last-child{border-bottom:none}.history-winner{color:var(--text);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:600;overflow:hidden}.history-date{color:var(--text-faint);white-space:nowrap;font-size:11.5px}.history-wheel{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;padding:0 8px 8px;font-size:11.5px;overflow:hidden}.history-day{z-index:1;text-transform:uppercase;letter-spacing:.6px;color:var(--text-faint);background:var(--surface);padding:10px 8px 4px;font-size:11px;font-weight:700;position:sticky;top:0}.history-pagination{color:var(--text-muted);border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;padding:10px 4px 0;font-size:12px;display:flex}.page-btn{border-radius:var(--radius-sm);color:var(--text-muted);padding:4px 10px;font-size:12px;transition:background .12s,color .12s}.page-btn:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.page-btn:disabled{opacity:.4;cursor:not-allowed}
