@import"https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600&family=Sora:wght@400;500;600&display=swap";:root{color-scheme:dark;--bg: #0b0f14;--bg-2: #0f141d;--surface: #141a26;--surface-2: #1a2130;--surface-3: #20283a;--ink: #f7f8fb;--muted: #a2adbf;--accent: #66d0ff;--accent-strong: #3aa7ff;--success: #22c55e;--danger: #ef4444;--status-working: #6ee7b7;--status-weekend: #9fb3d6;--status-no-evening: #f9d58a;--status-holiday: #fda4af;--status-unknown: #a2adbf;--line: #2a3446;--shadow: 0 32px 70px -50px rgba(5, 8, 12, .9);--radius-xl: 24px;--radius-lg: 16px}*{box-sizing:border-box}html,body,#root{max-width:100%}body{margin:0;font-family:Sora,system-ui,sans-serif;color:var(--ink);background:radial-gradient(58rem 28rem at 14% -8%,rgba(102,208,255,.12),transparent 54%),linear-gradient(180deg,#0f1521,#0b0f14 56%,#090c12);background-attachment:fixed;line-height:1.45;overflow-x:hidden}a{color:inherit;text-decoration:none}.skip-links{position:fixed;left:.5rem;top:.35rem;z-index:120;display:grid;gap:.25rem;pointer-events:none}.skip-link{pointer-events:auto;padding:.34rem .62rem;border-radius:10px;border:1px solid rgba(102,208,255,.7);background:#0b1118f0;color:#d9f4ff;font-size:.74rem;font-weight:600;transform:translateY(-170%);transition:transform .16s ease}.skip-link:focus-visible{transform:translateY(0)}button,input,select{font:inherit}button{border:none;background:none;color:inherit;cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid rgba(102,208,255,.7);outline-offset:2px}h1,h2,h3{margin:0;font-family:Space Grotesk,sans-serif;line-height:1.2}.page-state{min-height:100vh;display:grid;place-items:center;color:var(--muted)}.app-shell{min-height:100vh;display:grid;grid-template-rows:auto 1fr;padding-bottom:1rem;overflow-x:clip}.app-header{width:min(1120px,94vw);margin:0 auto;padding:.55rem .75rem;position:sticky;top:.35rem;z-index:40;display:flex;align-items:center;justify-content:space-between;gap:.7rem;flex-wrap:nowrap;border:1px solid rgba(42,52,70,.7);border-radius:14px;background:#0c121dd6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 16px 32px -30px #000000f2;min-width:0}.brand{display:flex;align-items:center;gap:.55rem;min-width:0}.brand-copy{min-width:0}.brand-mark{width:24px;height:24px;border-radius:9px;background:conic-gradient(from 120deg,#66d0ff,#34d399,#66d0ff);box-shadow:0 8px 18px -14px #66d0ffcc}.brand-title{font-family:Space Grotesk,sans-serif;font-size:.95rem;font-weight:600;letter-spacing:.01em;white-space:nowrap}.header-actions{display:flex;align-items:center;gap:.55rem;flex-wrap:nowrap;justify-content:flex-end;min-width:0}.tabs{display:inline-flex;background:var(--surface-2);border-radius:999px;padding:.2rem;border:1px solid var(--line);box-shadow:inset 0 1px #f8fafc08}.tab{padding:.34rem .72rem;border-radius:999px;font-weight:600;font-size:.78rem;color:var(--muted);position:relative}.tab.active{background:var(--accent);color:#0b1118;box-shadow:0 8px 18px -14px #66d0ffcc}.tab.active:after{content:"";position:absolute;left:22%;right:22%;bottom:.22rem;height:2px;border-radius:999px;background:#0b11186b}.header-edit-toggle{padding:.3rem .62rem;border-radius:999px;border:1px solid rgba(248,113,113,.45);background:#7f1d1d57;color:#fecaca;font-size:.74rem;font-weight:700;letter-spacing:.01em;transition:transform .12s ease,background-color .12s ease,border-color .12s ease}.header-edit-toggle:hover:not(:disabled){transform:translateY(-1px);background:#991b1b6b}.header-edit-toggle.active{background:#dc2626ad;border-color:#f87171d9;color:#fff;box-shadow:0 10px 20px -16px #f87171bf}.header-edit-toggle:disabled{opacity:.48;cursor:not-allowed}.user-pill{display:inline-flex;align-items:center;gap:.45rem;padding:.28rem .5rem;border-radius:11px;border:1px solid var(--line);background:var(--surface-2);font-size:.78rem;box-shadow:inset 0 1px #f8fafc08;max-width:100%;min-width:0}.user-name{max-width:140px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-actions{display:inline-flex;align-items:center;gap:.24rem}.app-main{width:min(1280px,92vw);margin:0 auto 2.5rem;display:grid;gap:1.6rem;align-items:start}.notice-layer{position:fixed;right:clamp(.5rem,2vw,1rem);bottom:clamp(.5rem,2vw,1rem);width:min(420px,calc(100vw - 1rem));display:grid;gap:.45rem;z-index:90;pointer-events:none}.notice{width:100%;padding:.55rem .75rem;border-radius:10px;border:1px solid var(--line);font-size:.82rem;box-shadow:0 14px 28px -22px #000000e6;animation:noticeIn .22s ease;pointer-events:auto}.notice.success{background:#22c55e24;border-color:#22c55e59;color:#bbf7d0}.notice.error{background:#ef444424;border-color:#ef444459;color:#fecaca}.notice.info{background:#66d0ff1f;border-color:#66d0ff59;color:#d3f1ff}.notice.undo{background:#10b98124;border-color:#6ee7b76b;color:#d1fae5;display:grid;gap:.28rem}.undo-title{font-weight:700;font-size:.8rem}.undo-line{font-size:.74rem;color:#bdebd9}.undo-row{display:flex;align-items:center;justify-content:space-between;gap:.55rem}.undo-time{font-size:.7rem;color:#a7f3d0}.undo-btn{border:1px solid rgba(167,243,208,.55);background:#10b9813d;color:#ecfdf5;border-radius:999px;padding:.2rem .58rem;font-size:.72rem;font-weight:700}.undo-btn:disabled{opacity:.55;cursor:not-allowed}.notice.subtle{opacity:.86;font-size:.76rem}.calendar-simple{display:grid;justify-items:center}.btn,.ghost{padding:.45rem .9rem;border-radius:999px;font-weight:600;font-size:.85rem;transition:transform .16s ease,box-shadow .16s ease,background-color .16s ease}.btn{background:var(--accent);color:#0b1118;box-shadow:0 14px 28px -20px #66d0ffb3}.btn.danger{background:color-mix(in srgb,var(--danger) 90%,transparent);color:#0b1118;box-shadow:0 14px 28px -20px #ef4444a6}.ghost{background:var(--surface-2);color:var(--ink);border:1px solid var(--line);box-shadow:none}.btn:hover,.ghost:hover,.tab:hover{transform:translateY(-1px)}.btn:active,.ghost:active{transform:translateY(0)}.btn.sm,.ghost.sm{padding:.3rem .7rem;font-size:.75rem}.btn:disabled,.ghost:disabled,select:disabled,input:disabled{opacity:.55;cursor:not-allowed}.muted{color:var(--muted)}.month-card{background:var(--surface);border-radius:var(--radius-xl);padding:1.4rem;border:1px solid var(--line);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px)}.month-card.single{width:min(980px,100%);position:relative;overflow:visible;display:grid;gap:1rem}.task-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,340px);gap:.95rem;align-items:start}.calendar-stage{min-width:0;display:grid;gap:.35rem}.task-panel{display:grid;gap:.75rem;align-content:start}.month-header{display:flex;justify-content:space-between;align-items:center;gap:.8rem;margin-bottom:.85rem;padding-bottom:.75rem;border-bottom:1px solid rgba(42,52,70,.75)}.month-title{display:flex;flex-direction:column;gap:.2rem;font-family:Space Grotesk,sans-serif;font-weight:600}.month-title>span:first-child{font-size:1.05rem}.month-caption{font-size:.65rem;text-transform:uppercase;letter-spacing:.14em;color:var(--muted)}.month-actions{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.month-toolbar{display:inline-flex;align-items:stretch;border:1px solid var(--line);border-radius:12px;overflow:visible;background:var(--bg-2)}.month-step{min-width:40px;padding:.35rem .5rem;display:grid;place-items:center;color:var(--muted);transition:background-color .15s ease,color .15s ease}.month-toolbar .month-step:first-child{border-top-left-radius:11px;border-bottom-left-radius:11px}.month-toolbar .month-step:last-child{border-top-right-radius:11px;border-bottom-right-radius:11px}.month-step svg{width:18px;height:18px}.month-step:hover{background:#66d0ff1f;color:var(--ink)}.month-step:disabled{opacity:.5}.month-picker-wrap{position:relative;min-width:190px;display:grid;border-left:1px solid var(--line);border-right:1px solid var(--line)}.month-picker-trigger{min-height:38px;padding:.32rem .7rem;display:flex;align-items:center;justify-content:space-between;gap:.45rem;color:var(--ink);font-size:.84rem;background:transparent}.month-picker-trigger:hover{background:#66d0ff14}.month-picker-trigger svg,.year-step svg{width:16px;height:16px}.month-picker-popover{position:absolute;top:calc(100% + 8px);left:0;z-index:20;width:min(320px,78vw);padding:.75rem;border-radius:14px;border:1px solid var(--line);background:#111a28;box-shadow:0 24px 34px -24px #000000e6;animation:popIn .14s ease}.year-row{display:grid;grid-template-columns:34px 1fr 34px;align-items:center;gap:.5rem;margin-bottom:.6rem}.year-step{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;border:1px solid var(--line);background:var(--surface-2);color:var(--muted)}.year-step:hover{color:var(--ink);background:#66d0ff1f}.year-label{text-align:center;font-family:Space Grotesk,sans-serif;font-weight:600}.month-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem}.month-grid-item{min-height:34px;padding:.35rem .4rem;border-radius:10px;border:1px solid var(--line);background:var(--surface-2);font-size:.76rem;color:var(--muted);transition:transform .12s ease,background-color .12s ease}.month-grid-item:hover{background:#66d0ff24;color:var(--ink);transform:translateY(-1px)}.month-grid-item.active{border-color:#66d0ff80;background:#66d0ff38;color:#d4f2ff}.calendar-loading{margin-top:.35rem;margin-bottom:.55rem;font-size:.8rem;color:var(--muted);padding:.35rem .55rem;border:1px dashed rgba(102,208,255,.28);border-radius:10px;background:#66d0ff0f;width:fit-content}.calendar-empty{margin:.7rem 0 .3rem;padding:.7rem .8rem;border:1px dashed rgba(102,208,255,.32);border-radius:12px;color:var(--muted);background:#66d0ff0f}.employee-dock{margin:0;display:grid;gap:.62rem;align-items:stretch;padding:.8rem;border:1px solid rgba(42,52,70,.78);border-radius:14px;background:#0d131ea3}.employee-chip-row{display:flex;flex-wrap:wrap;gap:.55rem;align-items:center;width:100%}.editor-head{display:flex;align-items:center;justify-content:space-between;gap:.55rem}.editor-title{font-size:.78rem;text-transform:uppercase;letter-spacing:.11em;color:var(--muted)}.editor-mode-badge{padding:.18rem .55rem;border-radius:999px;border:1px solid rgba(148,163,184,.35);background:#94a3b824;color:#d8deea;font-size:.68rem;font-weight:600;letter-spacing:.03em}.editor-mode-badge.active{border-color:#f871718c;background:#b91c1c4d;color:#fecaca}.editor-empty{color:var(--muted);font-size:.78rem;line-height:1.35;padding:.5rem .6rem;border-radius:12px;border:1px dashed rgba(148,163,184,.35);background:#94a3b81a}.editor-empty.compact{font-size:.75rem;padding:.42rem .55rem}.editor-block{display:grid;gap:.44rem}.editor-block-title{font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.desktop-task-hint,.mobile-task-hint{padding:.4rem .56rem;border-radius:11px;border:1px dashed rgba(102,208,255,.36);background:#66d0ff14;color:#d6f2ff;font-size:.74rem;line-height:1.3}.mobile-task-row{width:100%;display:flex;align-items:center;gap:.35rem;flex-wrap:wrap}.mobile-task{flex:1 1 0;min-width:80px;padding:.28rem .45rem;border-radius:999px;border:1px solid rgba(148,163,184,.38);background:#94a3b81f;color:#dbe4f4;font-size:.72rem;font-weight:600}.mobile-task.active{border-color:#f87171ad;background:#b91c1c70;color:#fee2e2}.swap-source-banner{display:flex;align-items:center;justify-content:space-between;gap:.55rem;padding:.4rem .55rem;border-radius:11px;border:1px dashed rgba(102,208,255,.45);background:#66d0ff1a;color:#d8f4ff;font-size:.76rem}.quick-assign-banner{width:100%;display:flex;align-items:center;justify-content:space-between;gap:.7rem;padding:.45rem .6rem;border-radius:12px;border:1px dashed rgba(102,208,255,.4);background:#66d0ff1a;color:#d6f2ff;font-size:.8rem}.mobile-apply-panel{display:grid;gap:.45rem;width:100%;padding:.45rem .55rem;border-radius:12px;border:1px dashed rgba(248,113,113,.46);background:#b91c1c29}.mobile-apply-summary{font-size:.76rem;color:#fde8e8;line-height:1.35}.mobile-apply-actions{display:flex;align-items:center;gap:.42rem}.mobile-apply-actions .ghost.sm,.mobile-apply-actions .btn.sm{flex:1;text-align:center}.month-stats{margin:.25rem 0 1rem;padding:.7rem .8rem;border:1px solid var(--line);border-radius:14px;background:#1018269e;box-shadow:inset 0 1px #f8fafc05}.month-stats.bottom{margin-top:1rem;margin-bottom:0}.month-stats-title{font-size:.72rem;text-transform:uppercase;letter-spacing:.11em;color:var(--muted);margin-bottom:.45rem}.month-stats-grid{display:grid;gap:.45rem;grid-template-columns:repeat(3,minmax(0,1fr))}.month-stats-item{display:grid;grid-template-columns:10px minmax(0,1fr) auto;gap:.45rem;align-items:center;font-size:.82rem;padding:.5rem .55rem;border-radius:12px;border:1px solid rgba(42,52,70,.7);background:#18213094;align-content:start;transition:transform .12s ease,border-color .12s ease,background-color .12s ease}.month-stats-item:hover{transform:translateY(-1px);border-color:#66d0ff59;background:#1c2638bd}.month-stats-dot{width:10px;height:10px;border-radius:999px;border:1px solid rgba(248,250,252,.5)}.month-stats-name{font-weight:600}.month-stats-values{grid-column:1 / -1;color:var(--muted);font-size:.78rem;margin-top:.15rem;line-height:1.3}.month-stats-total{font-family:Space Grotesk,sans-serif;font-weight:700;font-size:1.05rem;color:var(--ink)}.month-stats-progress{grid-column:1 / -1;height:6px;border-radius:999px;background:#a2adbf38;overflow:hidden}.month-stats-progress>span{display:block;height:100%;border-radius:inherit;box-shadow:0 0 0 1px #ffffff47 inset}.month-stats-empty{color:var(--muted);font-size:.84rem;padding:.5rem .2rem}.employee-chip{padding:.45rem .9rem;border-radius:999px;font-size:.82rem;font-weight:600;color:#0b1118;cursor:pointer;border:1px solid rgba(15,23,42,.3);box-shadow:0 10px 20px -16px #0f172a66;transition:transform .12s ease,box-shadow .12s ease;max-width:180px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-height:34px}.employee-chip.active{outline:2px solid rgba(255,255,255,.75);outline-offset:2px;box-shadow:0 16px 24px -20px #f8fafcd9}.employee-chip:focus-visible{outline:2px solid rgba(102,208,255,.85);outline-offset:2px}.employee-chip:active{cursor:pointer}.employee-chip:hover{transform:translateY(-1px);box-shadow:0 12px 24px -16px #0f172a80}.employee-chip[draggable=true]{cursor:grab}.employee-chip[draggable=true]:active{cursor:grabbing}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.weekday-row,.week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.35rem}.weekday{text-align:center;font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.weeks{display:grid;gap:.35rem}.day-inspector{margin-top:0;padding:.9rem;border:1px solid rgba(42,52,70,.85);border-radius:16px;background:#0d131e9e;display:grid;grid-template-columns:1fr;gap:.8rem;align-items:start}.day-info{display:grid;gap:.45rem}.day-date{font-family:Space Grotesk,sans-serif;font-size:1.08rem;font-weight:600;letter-spacing:.01em}.day-detail{font-size:.95rem;color:var(--ink)}.day-tags{display:flex;gap:.4rem;flex-wrap:wrap}.tag{padding:.2rem .6rem;border-radius:999px;font-size:.7rem;font-weight:600;display:inline-flex;align-items:center;gap:.28rem;background:#1b2332;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.status-marker{width:10px;height:10px;border-radius:999px;display:inline-block;flex:0 0 auto;border:1px solid rgba(255,255,255,.58);box-shadow:0 0 0 1px #0f172a4d}.status-marker.working{background:var(--status-working)}.status-marker.weekend{background:var(--status-weekend);border-radius:3px}.status-marker.holiday{background:var(--status-holiday);border-radius:2px;transform:rotate(45deg)}.status-marker.no-evening{background:var(--status-no-evening);border-radius:0;clip-path:polygon(50% 0,100% 100%,0 100%)}.status-marker.unknown{background:transparent;border:1px dashed rgba(248,250,252,.65);box-shadow:none}.tag.weekend{background:color-mix(in srgb,var(--status-weekend) 22%,transparent);color:color-mix(in srgb,var(--status-weekend) 88%,white 12%)}.tag.holiday{background:color-mix(in srgb,var(--status-holiday) 22%,transparent);color:color-mix(in srgb,var(--status-holiday) 88%,white 12%)}.tag.no-evening{background:color-mix(in srgb,var(--status-no-evening) 22%,transparent);color:color-mix(in srgb,var(--status-no-evening) 88%,white 12%)}.tag.past{background:#2a2f3b;color:var(--muted)}.tag.editable{background:#66d0ff26;color:#d1f1ff}.day-actions{display:grid;gap:.6rem}.action-preview{padding:.72rem .78rem;border-radius:14px;border:1px solid rgba(248,113,113,.42);background:#7f1d1d42;display:grid;gap:.42rem}.action-preview-title{font-size:.72rem;text-transform:uppercase;letter-spacing:.09em;color:#fca5a5}.action-preview-subtitle{font-size:.82rem;font-weight:700;color:#fee2e2}.action-preview-line{font-size:.75rem;color:#fecaca}.action-preview-warning{font-size:.72rem;color:#fecdd3}.action-preview-actions{display:flex;justify-content:flex-end;gap:.4rem;margin-top:.2rem}.chip-row{display:flex;flex-wrap:wrap;gap:.5rem;width:100%;margin-left:0;padding-top:.15rem}.chip{padding:.3rem .65rem;border-radius:999px;font-size:.72rem;font-weight:600;border:1px solid transparent;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.chip-content{display:inline-flex;align-items:center;gap:.32rem}.chip.success{background:color-mix(in srgb,var(--success) 18%,transparent);color:#bbf7d0;border-color:color-mix(in srgb,var(--success) 35%,transparent)}.chip.danger{background:color-mix(in srgb,var(--danger) 18%,transparent);color:#fecaca;border-color:color-mix(in srgb,var(--danger) 35%,transparent)}.chip.neutral{background:#94a3b82e;color:#e2e8f0;border-color:#94a3b859}.chip:hover{transform:translateY(-1px);box-shadow:0 10px 20px -18px #0f172a99}.chip:active{cursor:pointer}.chip:disabled{opacity:.5;cursor:not-allowed}.chip.active{border-color:#f87171c7;box-shadow:inset 0 0 0 1px #fee2e240}.chip[draggable=true]{cursor:grab}.chip[draggable=true]:active{cursor:grabbing}.action-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.6rem;align-items:center}.action-row.compact{grid-template-columns:repeat(2,minmax(0,1fr))}.drop-zone{margin-top:.45rem;padding:.6rem;border-radius:12px;border:1px dashed rgba(102,208,255,.4);color:var(--muted);font-size:.78rem;text-align:center;background:#66d0ff14;transition:background-color .12s ease,border-color .12s ease}.drop-zone.active{background:#66d0ff2e;border-color:#66d0ffb3;color:#d1f1ff}.day{min-height:84px;border-radius:16px;padding:.45rem .55rem;background-color:var(--day-color, #d7dde8);background-image:linear-gradient(145deg,#ffffff2e,#00000026);background-blend-mode:overlay;display:flex;flex-direction:column;justify-content:space-between;gap:.35rem;width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid rgba(15,23,42,.25);color:#0b1118;text-align:left;transition:transform .12s ease,box-shadow .12s ease,filter .14s ease;overflow:hidden;box-shadow:inset 0 1px #ffffff1f}.day:hover{transform:translateY(-2px);box-shadow:0 12px 24px -18px #0f172a73}.day.draggable{cursor:grab}.day.draggable:active{cursor:grabbing}.day.drop-target{outline:2px dashed rgba(102,208,255,.7);outline-offset:-2px}.day.non_working{background-color:#253044;color:var(--muted)}.day.non_working.weekend,.day.non_working.holiday{background-color:#1b2434}.day.non_working.no-evening{background-color:#2b3a52}.day.unknown{background-color:#1a2230;color:var(--muted)}.day.empty{background:transparent;border:none;pointer-events:none}.day.outside-month{color:#a2adbfad;border:1px solid rgba(58,72,97,.35);box-shadow:none;filter:saturate(46%) brightness(.64);opacity:.74;position:relative;isolation:isolate}.day.outside-month:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:#080c1280;pointer-events:none;z-index:0}.day.outside-month .day-num,.day.outside-month .day-name,.day.outside-month .day-nonwork{position:relative;z-index:1}.day.outside-month .day-num{color:#f1f5ffeb;text-shadow:0 1px 2px rgba(0,0,0,.6)}.day.outside-month .day-name{color:#dfe6f2e0;text-shadow:0 1px 2px rgba(0,0,0,.55)}.day.outside-month .day-num{font-size:.92rem;font-weight:500}.day.outside-month:hover{transform:none;box-shadow:none;opacity:.8}.day.today{outline:2px solid rgba(247,248,251,.8);outline-offset:-2px;box-shadow:inset 0 0 0 1px #f7f8fb59}.day.selected{outline:3px solid var(--accent);outline-offset:-3px;box-shadow:0 14px 26px -16px #66d0fff2;transform:translateY(-1px)}.day.touch-source{outline:3px solid rgba(249,250,251,.96);outline-offset:-3px;box-shadow:0 16px 28px -16px #f8fafcb8}.day.touch-target{outline:3px solid rgba(248,113,113,.95);outline-offset:-3px;box-shadow:0 16px 28px -16px #f87171ad}.day-num{font-weight:600;font-size:1rem}.day-name{font-size:.78rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.2;text-shadow:0 1px 1px rgba(0,0,0,.42)}.day-nonwork{font-size:.6rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;opacity:.8;display:inline-flex;align-items:center;gap:.24rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.2;text-shadow:0 1px 1px rgba(0,0,0,.38)}.day-nonwork .status-marker,.tag .status-marker{width:8px;height:8px}.day-nonwork.weekend{color:var(--status-weekend)}.day-nonwork.no-evening{color:var(--status-no-evening)}.day-nonwork.holiday{color:var(--status-holiday)}.day-nonwork.unknown{color:var(--status-unknown)}.field-label{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.rotation-board{background:var(--surface);border-radius:var(--radius-xl);padding:1.6rem;border:1px solid var(--line);box-shadow:var(--shadow);display:grid;gap:1.2rem}.rotation-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}.rotation-list{display:grid;gap:.8rem}.rotation-item{display:grid;grid-template-columns:14px 1fr auto auto;align-items:center;gap:.8rem;padding:.6rem .8rem;border-radius:var(--radius-lg);border:1px solid var(--line);background:linear-gradient(180deg,#1e2738f2,#182130f2);transition:transform .12s ease,border-color .12s ease}.rotation-item:hover{transform:translateY(-1px);border-color:#66d0ff52}.rotation-name{font-weight:600}.rotation-controls{display:inline-flex;gap:.3rem}.badge{width:12px;height:12px;border-radius:999px;background:var(--day-color, #d7dde8)}.auth-body{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at top,#1a2230,#0f1116 70%)}.auth-card{background:var(--surface);padding:2rem;border-radius:var(--radius-xl);width:min(430px,92vw);box-shadow:var(--shadow);display:grid;gap:1.05rem;border:1px solid var(--line)}.weeks.month-transition{animation:monthSlideIn .22s ease}.weeks.skeleton .week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.35rem}.day-skeleton{min-height:84px;border-radius:16px;border:1px solid rgba(42,52,70,.7);background:linear-gradient(90deg,#1b2332b8,#293448c7,#1b2332b8);background-size:220% 100%;animation:shimmer 1.1s ease-in-out infinite}.auth-head{display:grid;gap:.36rem}.auth-kicker{margin:0;font-size:.7rem;text-transform:uppercase;letter-spacing:.13em;color:var(--accent)}.auth-card h1{margin:0;font-size:1.5rem}.auth-subtitle{margin:0;color:var(--muted);font-size:.9rem}.auth-form{display:grid;gap:.95rem}.auth-field{display:grid;gap:.35rem}.auth-field span{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.auth-form input,select,.rotation-item input{padding:.6rem .75rem;border-radius:12px;border:1px solid var(--line);background:var(--bg-2);color:var(--ink);font-size:.92rem}.auth-form input:focus{border-color:#66d0ffa6;box-shadow:0 0 0 3px #66d0ff29}.auth-submit{margin-top:.2rem}.auth-error{margin:0;color:#fecaca;background:#7f1d1d59;border:1px solid rgba(248,113,113,.4);border-radius:12px;padding:.55rem .75rem;font-weight:600}.rotation-item input{width:64px;text-align:center}.help-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#060a10a8;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:grid;place-items:center;z-index:60;padding:1rem}.help-modal{width:min(560px,100%);border-radius:var(--radius-lg);border:1px solid var(--line);background:#101826f5;box-shadow:0 32px 54px -38px #000000f2;padding:1rem;animation:popIn .16s ease}.password-modal{width:min(460px,100%)}.password-form{display:grid;gap:.8rem}.password-actions{display:flex;justify-content:flex-end}.password-error{margin:0;color:#fecaca;background:#7f1d1d59;border:1px solid rgba(248,113,113,.4);border-radius:12px;padding:.45rem .7rem;font-size:.82rem}.help-title-row{display:flex;align-items:center;justify-content:space-between;gap:.8rem;margin-bottom:.75rem}.help-grid{display:grid;grid-template-columns:auto 1fr;gap:.45rem .8rem;align-items:center}.help-key{font-family:Space Grotesk,sans-serif;font-size:.8rem;color:#d6e4ff;background:#94a3b829;border:1px solid rgba(148,163,184,.35);border-radius:8px;padding:.2rem .45rem;width:fit-content}.help-desc{color:var(--muted);font-size:.86rem}@media (max-width: 720px){.app-header{top:.2rem;padding:.45rem .55rem;gap:.45rem;border-radius:12px;flex-wrap:wrap}.brand{gap:.45rem}.brand-mark{width:20px;height:20px;border-radius:7px}.brand-title{font-size:.86rem}.header-actions{margin-left:auto;gap:.35rem}.header-edit-toggle{padding:.26rem .52rem;font-size:.7rem}.tabs{padding:.16rem}.tab{padding:.3rem .52rem;font-size:.74rem}.month-card{padding:1.1rem}.task-layout{grid-template-columns:1fr;gap:.72rem}.task-panel{gap:.62rem}.month-header{flex-direction:column;align-items:flex-start;gap:.65rem}.month-actions{width:100%;justify-content:space-between}.month-toolbar{flex:1;min-width:0}.month-picker-wrap{min-width:0;flex:1}.month-stats-item{grid-template-columns:10px minmax(0,1fr) auto}.month-stats-values{grid-column:1 / -1}.month-stats-grid,.action-row,.action-row.compact{grid-template-columns:1fr}.day{min-height:70px}.user-pill{padding:.2rem .35rem;border-radius:10px;row-gap:0}.user-name{display:none}.user-actions{margin-left:0}.user-pill .ghost.sm{padding:.24rem .5rem;font-size:.72rem}.employee-dock{padding:.45rem;gap:.4rem}.employee-chip-row,.chip-row{display:flex;flex-wrap:wrap;overflow:visible;gap:.35rem}.employee-chip{flex:0 1 auto;max-width:100%;min-height:30px;padding:.32rem .62rem;font-size:.74rem}.chip{flex:0 1 auto;width:auto;min-height:30px;padding:.24rem .52rem;font-size:.68rem;white-space:nowrap}.quick-assign-banner{flex-wrap:nowrap;gap:.4rem;padding:.28rem .42rem;font-size:.72rem}.quick-assign-banner span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mobile-apply-panel{padding:.34rem .42rem;gap:.32rem}.mobile-apply-summary{font-size:.72rem}.mobile-task{min-width:0;font-size:.7rem}.mobile-task-hint,.desktop-task-hint,.editor-empty,.swap-source-banner{font-size:.72rem}.action-preview{padding:.58rem .62rem;gap:.34rem}.action-preview-actions{justify-content:stretch}.action-preview-actions .ghost.sm,.action-preview-actions .btn.sm{flex:1;text-align:center}.help-grid{grid-template-columns:1fr;gap:.35rem}.day-skeleton{min-height:70px}.notice-layer{right:.5rem;bottom:.5rem;width:min(380px,calc(100vw - 1rem))}}@keyframes popIn{0%{opacity:0;transform:translateY(-4px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-20% 0}}@keyframes monthSlideIn{0%{opacity:.25;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes noticeIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important}}@media (max-width: 520px){.app-header{padding:.4rem .5rem;gap:.4rem}.brand-mark{display:none}.brand-title{font-size:.82rem}.header-actions{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:.25rem}.tabs{grid-column:1 / 2;min-width:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.header-edit-toggle{grid-column:2 / 3;padding:.24rem .44rem;font-size:.66rem}.tab{text-align:center;padding:.32rem .36rem;font-size:.72rem}.user-pill{grid-column:3 / 4;justify-self:end;padding:.08rem;border:none;background:transparent;box-shadow:none}.user-pill .ghost.sm{padding:.2rem .38rem;font-size:.68rem}.user-actions{gap:.18rem}.month-actions{gap:.55rem}.task-layout{gap:.58rem}.month-step{min-width:36px}.month-picker-trigger{font-size:.8rem}.month-picker-popover{width:min(320px,calc(100vw - 2rem));left:auto;right:0}.auth-card{padding:1.3rem}.employee-dock{padding:.38rem;gap:.32rem}.employee-chip-row,.chip-row{gap:.32rem}.editor-head{gap:.4rem}.editor-mode-badge{font-size:.64rem;padding:.16rem .4rem}.mobile-task-row{gap:.28rem}.mobile-task{font-size:.66rem;padding:.24rem .32rem}.mobile-apply-summary{font-size:.68rem}.action-preview-title{font-size:.66rem}.action-preview-subtitle{font-size:.74rem}.action-preview-line,.action-preview-warning{font-size:.68rem}.undo-title{font-size:.74rem}.undo-line{font-size:.68rem}.employee-chip{min-height:28px;padding:.28rem .52rem;font-size:.72rem}.chip{min-height:28px;padding:.22rem .46rem;font-size:.66rem}.notice-layer{width:calc(100vw - 1rem)}.day{min-height:62px}.day-name{font-size:.62rem}.day-nonwork{font-size:.55rem}}
