.busy-users,.calendar-proposals{gap:4px;min-width:0;display:grid}.busy-users span,.calendar-proposal{text-overflow:ellipsis;white-space:nowrap;border-radius:999px;padding:4px 8px;font-size:12px;font-weight:900;overflow:hidden}.busy-users span{background:var(--busy-chip);color:var(--busy-text)}.calendar-proposal{border-radius:8px}.events-day-header>div,.event-details{gap:3px;min-width:0;display:grid}.events-day-header span,.events-day-header small,.event-details span,.event-details small{color:var(--muted);font-weight:800}.events-day-header span{text-transform:capitalize;font-size:13px}.events-day-header small,.event-details small{font-size:12px}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:#172033;--page:#f3f5f8;--surface:#fff;--surface-soft:#f8fafc;--surface-muted:#eef2f7;--text:#172033;--muted:#64748b;--border:#d7dee9;--primary:#2563eb;--primary-hover:#1d4ed8;--on-primary:#fff;--danger:#b91c1c;--danger-bg:#fee2e2;--danger-text:#991b1b;--busy-bg:#fff1f2;--busy-chip:#ffe4e6;--busy-text:#9f1239;--shadow:0 12px 30px #0f172a0f;--theme-flash:#ffffffc2;--theme-frame-edge:#2563eb2e;background:#f3f5f8;font-family:Inter,system-ui,Arial,sans-serif}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:#f4f7fb;--page:#111316;--surface:#1b2027;--surface-soft:#222936;--surface-muted:#171b22;--text:#f4f7fb;--muted:#a9b4c4;--border:#343d4d;--primary:#7dd3fc;--primary-hover:#38bdf8;--on-primary:#082f49;--danger:#fca5a5;--danger-bg:#4a1f23;--danger-text:#fecaca;--busy-bg:#3a2026;--busy-chip:#5b2730;--busy-text:#fecdd3;--shadow:0 14px 34px #0000004d;--theme-flash:#111316b8;--theme-frame-edge:#7dd3fc33;background:#111316}*{box-sizing:border-box}html,body,#root{height:100%;min-height:100%}html{-webkit-text-size-adjust:100%}body{background:var(--page);color:var(--text);margin:0;overflow:hidden}body:before{content:"";z-index:9999;pointer-events:none;opacity:0;background:linear-gradient(180deg, transparent 0%, var(--theme-frame-edge) 18%, var(--theme-flash) 46%, var(--theme-frame-edge) 74%, transparent 100%);position:fixed;inset:0;transform:translateY(-100%)}:root[data-theme-changing=true] body:before{animation:.42s steps(4,end) theme-frame-sweep}body,button,input,select,.card,.slot-item,.proposal-item,.user-item,.secondary,.view-toggle,.toggle,.status-pill,.role-pill,.result-bar,.result-bar i,.weekday,.day-cell,.mini-month,.mini-month-title,.mini-weekdays span,.mini-day,.busy-users span,.calendar-proposal,.calendar-event,.event-kind,.user-meta span{transition:background-color .22s,color .22s,border-color .22s,box-shadow .22s}button{cursor:pointer;background:var(--primary);color:var(--on-primary);border:0;border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:40px;padding:10px 14px;font-weight:700;display:inline-flex}button:hover{background:var(--primary-hover)}button:disabled{cursor:not-allowed;opacity:.55}button:disabled:hover{background:var(--primary)}.secondary:disabled:hover{background:var(--surface-muted)}.icon:disabled:hover{background:var(--danger-bg);filter:none}input,select{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);font:inherit;border-radius:8px;margin:6px 0 14px;padding:11px 12px}.card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:8px;padding:22px}.auth-page{place-items:center;height:100dvh;padding:20px;display:grid;position:relative;overflow:hidden}.auth-card{width:min(420px,100%)}.auth-page>.theme-toggle{position:absolute;top:20px;right:20px}.logo{color:var(--primary);align-items:center;gap:10px;font-weight:900;display:flex}.link{color:var(--primary);background:0 0;padding-left:0}.link:hover{color:var(--primary-hover);background:0 0}.error{color:var(--danger);margin:0 0 12px;font-weight:700}.app{flex-direction:column;width:min(1500px,100%);height:100dvh;margin:auto;padding:20px;display:flex;overflow:hidden}header{flex:none;justify-content:space-between;align-items:center;gap:20px;margin-bottom:14px;display:flex}h1{margin:0 0 6px}h2{margin:0 0 14px}p{color:var(--muted);margin:0 0 8px}.user-meta{color:var(--muted);align-items:center;gap:8px;font-weight:800;display:inline-flex}.user-meta span{background:var(--primary);color:var(--on-primary);border-radius:999px;padding:3px 8px;font-size:12px}.secondary{background:var(--surface-muted);color:var(--text);border:1px solid var(--border)}.secondary:hover{background:var(--surface-soft)}.theme-toggle{overflow:hidden}.theme-toggle svg{transform-origin:50%}:root[data-theme-changing=true] .theme-toggle svg{animation:.42s steps(4,end) theme-icon-swap}.header-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.mobile-tabs{display:none}.layout{flex:auto;grid-template-columns:minmax(360px,430px) minmax(0,1fr);align-items:stretch;gap:18px;min-height:0;display:grid}.side-column{grid-template-rows:auto minmax(0,1fr);gap:12px;min-height:0;display:grid}.side-tabs{border:1px solid var(--border);background:var(--surface-muted);border-radius:8px;gap:4px;padding:4px;display:flex}.side-tabs .toggle{flex:1;min-width:0}.slots-card,.proposals-card,.admin-users-card,.calendar-card{min-height:0}.slots-card{flex-direction:column;display:flex;overflow:hidden}.slot-form{flex:none;margin-bottom:14px}.slot-form label{color:var(--text);font-weight:800}.slot-list{flex:auto;align-content:start;gap:10px;min-height:0;padding-right:2px;display:grid;overflow:visible}.slot-item{border:1px solid var(--border);background:var(--surface-soft);border-radius:8px;justify-content:space-between;align-items:flex-start;gap:12px;padding:12px;display:flex}.slot-edit{gap:4px;width:100%;display:grid}.slot-edit label{color:var(--text);font-weight:800}.slot-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.icon{background:var(--danger-bg);color:var(--danger-text);padding:9px}.icon:hover{background:var(--danger-bg);filter:brightness(.96)}.action-icon{width:38px;min-height:38px;padding:8px}.proposals-card{flex-direction:column;display:flex;overflow:hidden}.proposal-form{flex:none;margin-bottom:14px}.proposal-form label,.participant-field{color:var(--text);font-weight:800}.participant-field{gap:8px;display:grid}.participant-options{border:1px solid var(--border);background:var(--surface);border-radius:8px;gap:6px;padding:8px;display:grid}.participant-option{min-height:28px;color:var(--text);align-items:center;gap:8px;font-weight:800;display:flex}.participant-option input{width:auto;min-height:auto;accent-color:var(--primary);margin:0}.participant-option span{overflow-wrap:anywhere;min-width:0}.participant-empty{color:var(--muted);font-size:13px}.proposal-list{flex:auto;align-content:start;gap:10px;min-height:0;padding-right:2px;display:grid;overflow:visible}.empty-state{border:1px dashed var(--border);color:var(--muted);text-align:center;border-radius:8px;margin:0;padding:12px;font-weight:800}.proposal-item{border:1px solid var(--border);background:var(--surface-soft);border-radius:8px;gap:10px;padding:12px;display:grid}.proposal-item.closed{background:var(--surface)}.proposal-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.proposal-head>div{gap:3px;min-width:0;display:grid}.proposal-head b{overflow-wrap:anywhere}.proposal-head span,.proposal-head small,.proposal-vote-note{color:var(--muted);font-weight:800}.proposal-head small{font-size:12px}.status-pill{background:var(--surface-muted);color:var(--muted);border-radius:999px;flex:none;padding:4px 8px;font-size:12px;font-weight:900}.status-pill.open{color:#1d4ed8;background:#dbeafe}.status-pill.closed{background:var(--busy-chip);color:var(--busy-text)}:root[data-theme=dark] .status-pill.open{color:#7dd3fc;background:#12324d}.proposal-votes,.proposal-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.proposal-votes button{flex:120px}.vote-yes.active{box-shadow:inset 0 0 0 2px #ffffffb8}.vote-no.active{color:var(--danger-text);border-color:var(--danger-text);background:var(--danger-bg)}.proposal-vote-note{margin:-2px 0 0;font-size:13px}.proposal-results{gap:8px;display:grid}.result-row{grid-template-columns:56px minmax(0,1fr) auto;align-items:center;gap:8px;font-size:13px;font-weight:900;display:grid}.result-bar{background:var(--surface-muted);border-radius:999px;height:10px;overflow:hidden}.result-bar i{border-radius:inherit;height:100%;display:block}.result-bar.yes i{background:var(--primary)}.result-bar.no i{background:var(--danger-text)}.admin-users-card{flex-direction:column;display:flex;overflow:hidden}.user-form{flex:none;margin-bottom:14px}.user-form label,.user-edit label{color:var(--text);font-weight:800}.checkbox-label{align-items:center;gap:8px;margin:6px 0 14px;display:flex}.checkbox-label input{width:auto;min-height:auto;accent-color:var(--primary);margin:0}.user-list{flex:auto;align-content:start;gap:10px;min-height:0;padding-right:2px;display:grid;overflow:visible}.user-item{border:1px solid var(--border);background:var(--surface-soft);border-radius:8px;gap:10px;padding:12px;display:grid}.user-summary{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.user-summary>div{gap:3px;min-width:0;display:grid}.user-summary b{overflow-wrap:anywhere}.user-summary small{color:var(--muted);font-size:12px;font-weight:800}.role-pill{background:var(--primary);color:var(--on-primary);border-radius:999px;flex:none;padding:4px 8px;font-size:12px;font-weight:900}.user-edit{gap:4px;display:grid}.user-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.side-card{display:none}.side-card.desktop-active{scrollbar-gutter:stable;display:block;overflow:auto}.calendar-card{flex-direction:column;display:flex;overflow:hidden}.calendar-nav{flex-wrap:wrap;flex:none;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.calendar-nav strong{text-transform:capitalize;font-size:20px}.nav-group{flex-wrap:wrap;gap:8px;display:flex}.icon-only{width:42px;padding:10px}.view-toggle{border:1px solid var(--border);background:var(--surface-muted);border-radius:8px;gap:4px;padding:4px;display:inline-flex}.toggle{color:var(--muted);background:0 0;border:0;min-height:36px}.toggle:hover{background:var(--surface-soft)}.toggle.active{background:var(--primary);color:var(--on-primary)}.month-calendar{border:1px solid var(--border);border-radius:8px;flex:auto;grid-template-rows:auto minmax(0,1fr);min-width:0;min-height:0;display:grid;overflow:hidden}.weekday-row,.month-grid{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.weekday{background:var(--surface-soft);color:var(--muted);text-align:center;border-right:1px solid var(--border);border-bottom:1px solid var(--border);padding:10px;font-size:13px;font-weight:900}.weekday:last-child{border-right:0}.month-grid{grid-template-rows:repeat(6,minmax(0,1fr));min-height:0}.day-cell{border-right:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--surface);flex-direction:column;gap:8px;min-height:0;padding:8px;display:flex;overflow:hidden}.day-cell:nth-child(7n){border-right:0}.day-number{width:28px;height:28px;color:var(--text);border-radius:50%;place-items:center;font-weight:900;display:inline-grid}.outside-month{background:var(--surface-muted);color:var(--muted)}.outside-month .day-number{color:var(--muted)}.today .day-number{background:var(--primary);color:var(--on-primary)}.busy-day{background:var(--busy-bg)}.proposal-pending-day:not(.busy-day){background:#fffbeb}.proposal-accepted-day:not(.busy-day){background:#f0fdf4}:root[data-theme=dark] .proposal-pending-day:not(.busy-day){background:#2f2818}:root[data-theme=dark] .proposal-accepted-day:not(.busy-day){background:#17281d}.busy-users{gap:4px;min-width:0;display:grid}.busy-users span{text-overflow:ellipsis;white-space:nowrap;background:var(--busy-chip);color:var(--busy-text);border-radius:999px;padding:4px 8px;font-size:12px;font-weight:900;overflow:hidden}.calendar-proposals{gap:4px;min-width:0;display:grid}.calendar-proposal{text-overflow:ellipsis;white-space:nowrap;border-radius:8px;padding:4px 8px;font-size:12px;font-weight:900;overflow:hidden}.calendar-proposal.pending{color:#92400e;background:#fef3c7}.calendar-proposal.accepted{color:#166534;background:#dcfce7}:root[data-theme=dark] .calendar-proposal.pending{color:#fef3c7;background:#713f12}:root[data-theme=dark] .calendar-proposal.accepted{color:#dcfce7;background:#14532d}.events-calendar{scrollbar-gutter:stable;flex:auto;align-content:start;gap:14px;min-height:0;padding:0 6px 8px 0;display:grid;overflow:auto}.events-empty{margin:0}.events-day{gap:8px;min-width:0;display:grid}.events-day-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-end;gap:12px;padding:8px 0;display:flex}.events-day-header>div{gap:2px;min-width:0;display:grid}.events-day-header strong{font-size:16px;font-weight:900}.events-day-header span{color:var(--muted);text-transform:capitalize;font-size:13px;font-weight:900}.events-day-header small{color:var(--muted);flex:none;font-size:12px;font-weight:900}.events-list{gap:8px;min-width:0;display:grid}.calendar-event{border:1px solid var(--border);background:var(--surface-soft);border-radius:8px;grid-template-columns:auto minmax(0,1fr);align-items:flex-start;gap:10px;padding:10px;display:grid}.calendar-event.busy{background:var(--busy-bg);border-color:var(--busy-chip)}.calendar-event.pending{background:#fffbeb;border-color:#fde68a}.calendar-event.accepted{background:#f0fdf4;border-color:#bbf7d0}:root[data-theme=dark] .calendar-event.pending{background:#2f2818;border-color:#713f12}:root[data-theme=dark] .calendar-event.accepted{background:#17281d;border-color:#14532d}.event-kind{white-space:nowrap;background:var(--surface-muted);color:var(--muted);border-radius:999px;padding:4px 8px;font-size:12px;font-weight:900}.event-kind.busy{background:var(--busy-chip);color:var(--busy-text)}.event-kind.pending{color:#92400e;background:#fef3c7}.event-kind.accepted{color:#166534;background:#dcfce7}:root[data-theme=dark] .event-kind.pending{color:#fef3c7;background:#713f12}:root[data-theme=dark] .event-kind.accepted{color:#dcfce7;background:#14532d}.event-details{gap:3px;min-width:0;display:grid}.event-details b{overflow-wrap:anywhere}.event-details span,.event-details small{color:var(--muted);font-weight:800}.event-details small{font-size:12px}.year-calendar{scrollbar-gutter:stable;flex:auto;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));grid-auto-rows:max-content;align-content:start;align-items:start;gap:12px;min-height:0;padding:0 6px 8px 0;display:grid;overflow:auto}.mini-month{border:1px solid var(--border);background:var(--surface);border-radius:8px;grid-template-rows:auto auto auto;align-self:start;min-width:0;display:grid;overflow:hidden}.mini-month-title{background:var(--surface-soft);width:100%;color:var(--text);text-transform:capitalize;border-radius:0;justify-content:flex-start}.mini-month-title:hover{background:var(--surface-muted)}.mini-weekdays,.mini-grid{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.mini-grid{grid-template-rows:repeat(6,30px)}.mini-weekdays span{text-align:center;background:var(--surface-muted);color:var(--muted);padding:6px 0;font-size:11px;font-weight:900}.mini-day{border-top:1px solid var(--border);border-right:1px solid var(--border);min-height:30px;color:var(--text);place-items:center;font-size:11px;font-weight:800;line-height:1;display:grid;position:relative}.mini-day:nth-child(7n){border-right:0}.mini-day.busy-marker{background:var(--busy-bg);color:var(--busy-text)}.mini-day.busy-marker:after{content:"";background:var(--busy-text);border-radius:50%;width:5px;height:5px;position:absolute;bottom:4px}@keyframes theme-frame-sweep{0%{opacity:0;transform:translateY(-100%)}25%{opacity:.7;transform:translateY(-35%)}50%{opacity:.42;transform:translateY(0)}75%{opacity:.22;transform:translateY(38%)}to{opacity:0;transform:translateY(100%)}}@keyframes theme-icon-swap{0%{transform:rotate(0)scale(1)}25%{transform:rotate(45deg)scale(.86)}50%{transform:rotate(90deg)scale(1.12)}75%{transform:rotate(135deg)scale(.94)}to{transform:rotate(180deg)scale(1)}}@media (prefers-reduced-motion:reduce){body,button,input,select,.card,.slot-item,.proposal-item,.user-item,.secondary,.view-toggle,.toggle,.status-pill,.role-pill,.result-bar,.result-bar i,.weekday,.day-cell,.mini-month,.mini-month-title,.mini-weekdays span,.mini-day,.busy-users span,.calendar-proposal,.calendar-event,.event-kind,.user-meta span{transition:none}:root[data-theme-changing=true] body:before,:root[data-theme-changing=true] .theme-toggle svg{animation:none}}@media (width<=950px){body{overflow:auto}.app{height:auto;min-height:100svh;padding:12px;overflow:visible}header{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:10px;margin-bottom:10px;display:grid}header h1{font-size:22px}header p{display:none}.header-actions{justify-content:flex-start}.header-actions .secondary{min-height:36px;padding:8px 10px}.mobile-tabs{border:1px solid var(--border);background:var(--surface-muted);z-index:10;border-radius:8px;flex:none;gap:4px;margin-bottom:10px;padding:4px;display:flex;position:sticky;top:8px;overflow-x:auto}.mobile-tabs .toggle{flex:1 0 112px;min-height:38px}.layout{flex:0 auto;grid-template-columns:minmax(0,1fr);gap:0;min-height:0}.side-column{display:contents}.side-tabs,.side-card.desktop-active,.slots-card,.proposals-card,.admin-users-card,.calendar-card{display:none}.slots-card.mobile-active,.proposals-card.mobile-active,.admin-users-card.mobile-active,.calendar-card.mobile-active{display:flex;overflow:visible}.slots-card{gap:2px}.slot-list,.proposal-list,.user-list{padding-right:0;overflow:visible}.calendar-nav{grid-template-columns:1fr;gap:8px;margin-bottom:10px;display:grid}.calendar-nav strong{text-align:center;font-size:17px}.nav-group{grid-template-columns:1fr 42px 1fr;gap:8px;display:grid}.view-toggle{width:100%}.view-toggle .toggle{flex:1}.calendar-nav .icon-label{font-size:0}.calendar-nav .icon-label svg{width:18px;height:18px}.month-calendar{flex:none;min-height:auto;overflow:hidden}.month-grid{grid-template-rows:repeat(6,minmax(58px,auto))}.weekday{padding:7px 2px;font-size:11px}.day-cell{gap:4px;min-height:58px;padding:5px}.day-number{width:24px;height:24px;font-size:12px}.busy-users{flex-wrap:wrap;gap:3px;display:flex}.busy-users span{text-indent:20px;border-radius:50%;width:7px;height:7px;padding:0;overflow:hidden}.calendar-proposals{flex-wrap:wrap;gap:3px;display:flex}.calendar-proposal{text-indent:20px;border-radius:50%;width:7px;height:7px;padding:0;overflow:hidden}.calendar-year-view.mobile-active{overflow:hidden}.events-calendar{flex:none;min-height:auto;padding:0;overflow:visible}.year-calendar{grid-template-columns:repeat(2,minmax(210px,1fr));gap:8px;max-height:calc(100svh - 220px);padding:0 4px 8px 0;overflow:auto}.mini-grid{grid-template-rows:repeat(6,28px)}.mini-month-title{min-height:34px;padding:7px 9px;font-size:12px}.mini-weekdays span{padding:4px 0;font-size:10px}.mini-day{min-height:28px;font-size:10px}}@media (width<=640px){.app{padding:10px}.auth-page{height:auto;min-height:100svh;padding:72px 12px 16px;overflow:auto}.auth-page>.theme-toggle{top:12px;right:12px}.card{padding:12px}.auth-card{padding:20px}button{min-height:44px;padding:10px 12px}input,select{min-height:44px;font-size:16px}header{grid-template-columns:minmax(0,1fr)}header h1{font-size:20px;line-height:1.15}.theme-toggle{padding:8px 10px}.theme-toggle svg{width:16px;height:16px}.header-actions{grid-template-columns:44px minmax(0,1fr);justify-content:stretch;width:100%;display:grid}.header-actions .theme-toggle{width:44px;padding:8px;font-size:0}.header-actions .theme-toggle svg{margin:0}.header-actions .secondary:not(.theme-toggle){width:100%}.user-meta{font-size:13px}.mobile-tabs .toggle{gap:6px;padding-inline:6px;font-size:12px}.mobile-tabs .toggle svg{width:16px;height:16px}.slot-form input,.slot-form select{margin-bottom:9px}.slot-item,.proposal-item,.user-item{padding:10px}.calendar-event{grid-template-columns:minmax(0,1fr)}.event-kind{white-space:normal;width:max-content;max-width:100%}.events-day-header{align-items:flex-start}.slot-item{flex-direction:column}.slot-item>div:first-child{overflow-wrap:anywhere;min-width:0}.slot-actions,.proposal-actions,.user-actions{justify-content:flex-end;width:100%}.proposal-head,.user-summary{grid-template-columns:minmax(0,1fr);display:grid}.proposal-votes button{flex-basis:0}.result-row{grid-template-columns:52px minmax(0,1fr)}.result-row strong{grid-column:2}.nav-group button,.view-toggle button,.icon-label{min-width:0}.month-grid{grid-template-rows:repeat(6,minmax(50px,auto))}.day-cell{min-height:50px}.year-calendar{grid-template-columns:minmax(0,1fr);max-height:calc(100svh - 244px)}}@media (width<=380px){.app{padding:8px}.card{padding:10px}.mobile-tabs .toggle,.view-toggle .toggle{gap:6px;padding-inline:8px}.view-toggle .toggle{gap:0;font-size:0}.view-toggle .toggle svg{width:18px;height:18px}.month-grid{grid-template-rows:repeat(6,minmax(46px,auto))}.day-cell{min-height:46px;padding:4px}.day-number{width:22px;height:22px;font-size:11px}.year-calendar{max-height:calc(100svh - 232px)}.mini-grid{grid-template-rows:repeat(6,26px)}.mini-day{min-height:26px}}
