:root{color-scheme:light;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#20242c;background:#f7f8fb;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--ink: #20242c;--muted: #697281;--line: #dfe4ec;--surface: #ffffff;--soft: #eef2f6;--leave: #c84632;--leave-soft: #fde7e1;--wfh: #a16207;--wfh-soft: #fef3c7;--holiday: #7c3bb2;--holiday-soft: #f1e4fb;--weekend: #1f5f99;--weekend-soft: #e7f1fd;--blue: #315fbd;--amber: #b7791f;--shadow: 0 12px 30px rgba(32, 36, 44, .08)}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.6}.app{width:min(1480px,calc(100% - 32px));margin:0 auto;padding:28px 0 56px}.app.has-selection-toast{padding-bottom:260px}.topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding:8px 0 26px;border-bottom:1px solid var(--line)}.topbar h1{margin:4px 0 2px;font-size:clamp(2rem,4vw,4.4rem);line-height:1;letter-spacing:0}.topbar p{margin:0;color:var(--muted)}.eyebrow{display:inline-flex;align-items:center;gap:6px;color:var(--blue);font-size:.78rem;font-weight:800;letter-spacing:0;text-transform:uppercase}.topbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap}.year-picker,.field{display:grid;gap:7px;color:var(--muted);font-size:.82rem;font-weight:700}.year-picker input,.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);padding:10px 11px;outline:none;transition:border-color .14s ease,box-shadow .14s ease}.year-picker input{width:104px}.field textarea{resize:vertical}.field span{display:inline-flex;align-items:center;gap:6px}.year-picker input:focus,.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px #315fbd1f}.field input[readonly]{background:var(--soft);color:var(--muted)}.date-picker-field{align-content:start}.date-input-row{display:grid;grid-template-columns:minmax(0,1fr) 42px;gap:8px}.date-picker-toggle{width:42px;min-height:42px;padding:0}.date-picker-popover{width:min(100%,320px);border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:0 18px 46px #20242c2e;margin-top:8px;padding:12px}.date-picker-header{display:grid;grid-template-columns:34px minmax(0,1fr) 34px;align-items:center;gap:8px;margin-bottom:10px}.date-picker-header strong{color:var(--ink);font-size:.92rem;text-align:center}.date-picker-nav{width:34px;min-height:34px}.date-picker-weekdays,.date-picker-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.date-picker-weekdays{margin-bottom:5px}.date-picker-weekdays span{color:var(--muted);font-size:.7rem;font-weight:900;text-align:center}.date-picker-blank,.date-picker-day{aspect-ratio:1}.date-picker-day{border:1px solid transparent;border-radius:8px;background:#f8fafc;color:var(--ink);font-size:.8rem;font-weight:800}.date-picker-day:hover{border-color:#c4d4f4;background:#e8eefc}.date-picker-day.selected{border-color:var(--blue);background:var(--blue);color:#fff}.settings-button{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid #c4d4f4;border-radius:8px;background:#e8eefc;color:var(--blue);padding:0;align-self:end}.banner{display:flex;align-items:center;gap:9px;margin:18px 0 0;border-radius:8px;padding:12px 14px;font-weight:700}.error-banner{border:1px solid #f1b8ad;background:var(--leave-soft);color:#8f2f21}.toast{position:fixed;top:18px;right:18px;z-index:80;display:inline-flex;align-items:center;gap:9px;max-width:min(420px,calc(100% - 36px));border-radius:8px;padding:12px 14px;box-shadow:0 16px 42px #20242c2e;font-weight:800}.success-toast{border:1px solid #b8d5cf;background:#dff4ef;color:#0c5f57}.page-loading-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;display:grid;place-items:center;background:#f7f8fb9e;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.page-loading-card{display:inline-flex;align-items:center;gap:10px;border:1px solid #c4d4f4;border-radius:8px;background:#e8eefc;color:var(--blue);padding:16px 18px;box-shadow:0 18px 58px #20242c33;font-weight:900}.stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:20px 0}.stat-tile{border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:18px;box-shadow:var(--shadow)}.stat-tile span,.stat-tile small{display:block;color:var(--muted);font-size:.86rem;font-weight:700}.stat-tile strong{display:block;margin:8px 0 4px;font-size:2.2rem;line-height:1}.admin-workspace{display:grid;grid-template-columns:1fr;gap:16px;align-items:start;margin:22px 0;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.admin-primary{display:grid;gap:12px}.control-block{display:grid;gap:12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:14px}.block-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.block-heading h2,.record-list h2{margin:0;font-size:1rem}.employee-command{gap:0;width:100%;padding:18px 20px}.employee-command-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:stretch;gap:16px}.employee-fields{display:grid;grid-template-columns:minmax(0,1fr);align-items:end}.employee-fields .field{align-content:end}.employee-selector{border:1px solid var(--line);border-radius:8px;background:var(--surface);height:100%;min-height:78px;padding:12px 14px;grid-template-rows:auto minmax(0,1fr) auto;gap:0;align-content:stretch;transition:border-color .14s ease,box-shadow .14s ease}.employee-selector span,.employee-selector small{display:block;color:var(--muted);font-size:.86rem;font-weight:700}.employee-selector:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px #315fbd1f}.employee-fields .field input,.employee-fields .field select{min-height:48px}.employee-fields .employee-selector select{border:0;min-height:auto;align-self:center;padding:2px 0 0;background:transparent;box-shadow:none;font-size:1rem;font-weight:700;line-height:1.1}.employee-fields .employee-selector select:focus{box-shadow:none}.employee-stats{display:grid;grid-column:span 3;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.employee-stats .stat-tile{display:grid;align-content:center;height:100%;min-height:78px;padding:12px 14px;box-shadow:none}.employee-stats .stat-tile strong{margin:4px 0 2px;font-size:1.65rem}.selection-summary{display:flex;align-items:baseline;gap:7px;min-height:42px}.selection-summary strong{font-size:2rem;line-height:1}.selection-summary span{color:var(--muted);font-size:.86rem;font-weight:800}.mark-controls{display:grid;grid-template-columns:minmax(240px,320px) auto;align-items:center;gap:10px}.selection-toast{position:fixed;left:50%;bottom:18px;z-index:15;display:grid;grid-template-columns:1fr;align-items:stretch;gap:12px;width:min(520px,calc(100% - 32px));border:1px solid var(--line);border-radius:18px;background:#fffffff5;box-shadow:0 18px 60px #20242c2e;padding:16px;transform:translate(-50%);animation:selection-toast-in .18s ease-out both}.selection-toast.is-closing{pointer-events:none;animation:selection-toast-out .18s ease-in both}.selection-toast .selection-summary{justify-content:center;min-height:0;min-width:0}.selection-toast .segmented-control{width:100%;border-radius:14px;padding:4px}.selection-toast .segmented-control button{border-radius:11px;min-height:44px}.selection-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.selection-toast .primary-action,.selection-toast .secondary-action{width:100%;min-height:46px;border-radius:14px}.hint-copy{margin:0;color:var(--muted);font-size:.84rem;line-height:1.45}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;place-items:center;overflow:auto;background:#20242c57;padding:24px}.settings-modal{width:min(1040px,100%);max-height:min(900px,calc(100vh - 48px));overflow:auto;border:1px solid var(--line);border-radius:8px;background:#f7f8fb;box-shadow:0 24px 80px #20242c38}.modal-header{position:sticky;top:0;z-index:1;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line);background:#f7f8fbf5;padding:18px}.modal-header h2{margin:2px 0 0;font-size:1.4rem}.settings-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;border-bottom:1px solid var(--line);background:#f7f8fbf5;padding:12px 18px 0}.settings-tab{min-height:46px;border:1px solid var(--line);border-bottom:0;border-radius:8px 8px 0 0;background:var(--soft);color:var(--muted);font-weight:900}.settings-tab.active{background:var(--surface);color:var(--blue)}.settings-stack{display:grid;gap:16px;padding:18px}.settings-stack .control-block{padding:18px}.settings-stack .block-heading h2{font-size:1rem}.settings-stack .field{font-size:.82rem}.settings-stack .field input,.settings-stack .field select{min-height:42px;font-size:1rem;font-weight:400}.settings-stack .inline-control{justify-content:start}.settings-stack .inline-control.compact{grid-template-columns:192px 84px}.settings-stack .icon-button{width:42px;min-height:42px}.settings-stack .hint-copy{font-size:.84rem}.settings-stack .primary-action,.settings-stack .danger-action{width:100%;min-height:42px;font-size:1rem}.directory-widget{gap:16px}.employee-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:8px}.employee-table{width:100%;min-width:760px;border-collapse:collapse;background:var(--surface)}.employee-table th,.employee-table td{border-bottom:1px solid var(--line);padding:12px;text-align:left;vertical-align:middle}.employee-table th{color:var(--muted);font-size:.78rem;font-weight:900;text-transform:uppercase}.employee-table tr:last-child td{border-bottom:0}.employee-table tr.editing td{background:#e8eefc}.employee-table td strong,.employee-table td small{display:block}.employee-table td small{margin-top:2px;color:var(--muted)}.empty-table-cell{color:var(--muted);font-weight:800;text-align:center}.table-actions{display:flex;gap:8px;justify-content:flex-end}.settings-stack .table-actions .icon-button,.settings-stack .table-actions .danger-action{width:42px;min-height:42px;padding:0}.detail-modal-backdrop{z-index:30;background:#20242c6b}.employee-detail-modal{width:min(620px,100%);max-height:min(760px,calc(100vh - 48px));overflow:auto;border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:0 24px 80px #20242c3d}.employee-detail-form{display:grid;gap:14px;padding:18px}.employee-edit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.settings-stack .employee-edit-actions .primary-action,.settings-stack .employee-edit-actions .secondary-action{width:auto;min-width:140px;min-height:50px}.holiday-form-row{display:grid;grid-template-columns:minmax(150px,210px) minmax(0,1fr) 120px;align-items:end;gap:12px}.holiday-form-row .primary-action{width:auto}.holiday-settings-list{display:grid;gap:8px}.holiday-settings-item{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;border:1px solid var(--line);border-left:5px solid var(--holiday);border-radius:8px;background:var(--surface);padding:10px 12px}.holiday-settings-item strong,.holiday-settings-item small{display:block}.holiday-settings-item small{color:var(--muted);margin-top:2px}.holiday-settings-item .danger-action{width:44px;min-height:44px;padding:0}.inline-control{display:grid;grid-template-columns:minmax(0,1fr) 42px;gap:8px}.inline-control.compact{grid-template-columns:96px 42px}.icon-button,.primary-action,.secondary-action,.danger-action{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;border-radius:8px;border:1px solid transparent;font-weight:800}.icon-button{width:42px;background:var(--soft);color:var(--ink)}.primary-action{background:var(--blue);color:#fff;padding:0 14px}.secondary-action{background:var(--soft);color:var(--ink);padding:0 14px}.danger-action{background:var(--leave-soft);border-color:#f1b8ad;color:#8f2f21;padding:0 14px}.button-row{display:flex;gap:8px;flex-wrap:wrap}.segmented-control{display:grid;grid-template-columns:1fr 1fr;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:var(--soft);padding:3px}.segmented-control.three-way{grid-template-columns:repeat(3,1fr)}.segmented-control button{border:0;border-radius:6px;background:transparent;color:var(--muted);min-height:36px;font-weight:800}.segmented-control button.active{background:var(--surface);color:var(--ink);box-shadow:0 2px 8px #20242c14}.segmented-control button.active.leave{color:var(--leave)}.segmented-control button.active.wfh{color:var(--wfh)}.segmented-control button.active.worked{color:var(--blue)}.calendar-shell{margin:24px 0 0}.calendar-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:12px}.calendar-heading h2{margin:2px 0 0;font-size:1.7rem}.calendar-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.month-card{border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:12px;box-shadow:var(--shadow)}.month-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.month-header h3{margin:0;font-size:1rem}.weekday-row,.day-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.weekday-row{margin-bottom:6px}.weekday-row span{color:var(--muted);font-size:.72rem;font-weight:800;text-align:center}.day-blank,.day-cell{aspect-ratio:1;min-width:0}.day-cell{position:relative;display:grid;place-items:center;border:1px solid transparent;border-radius:8px;background:#f8fafc;color:#384150;font-size:.82rem;font-weight:800}.day-cell.weekday-saturday,.day-cell.weekday-sunday{background:var(--weekend-soft);border-color:#c5d8ef;color:var(--weekend)}button.day-cell{width:100%}.day-cell .join-star{color:#d99a00;filter:drop-shadow(0 1px 1px rgba(32,36,44,.18))}.day-cell.status-leave{background:var(--leave-soft);border-color:#f0b5aa;color:#8f2f21}.day-cell.status-wfh{background:var(--wfh-soft);border-color:#f3d37a;color:#7a4f01}.day-cell.status-holiday{background:var(--holiday-soft);border-color:#d9b7ef;color:var(--holiday)}.day-cell.joined-ente{border-color:#e0a800;box-shadow:inset 0 0 0 1px #e0a80059}.day-cell.today{border-color:var(--blue);box-shadow:inset 0 0 0 1px var(--blue)}.day-cell.selected{border-color:var(--blue);box-shadow:0 0 0 3px #315fbd29}.day-cell.interactive:hover{transform:translateY(-1px);box-shadow:0 6px 14px #20242c1f}.record-lists{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:22px}.record-list{display:grid;align-content:start;gap:8px;border-top:1px solid var(--line);padding-top:14px}.record-item{display:grid;gap:3px;width:100%;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);padding:12px;text-align:left}.record-item.leave{border-left:5px solid var(--leave)}.record-item.wfh{border-left:5px solid var(--wfh)}.record-item.holiday{border-left:5px solid var(--holiday)}.record-item:disabled{cursor:default;opacity:1}.record-item small,.empty-copy{color:var(--muted)}.center-state{min-height:100vh;display:grid;place-content:center;gap:12px;color:var(--muted);text-align:center}.center-state h1,.center-state p{margin:0}.error-state{color:#8f2f21}.spin{animation:spin .9s linear infinite}.center-state .spin{margin:0 auto}.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}@keyframes spin{to{transform:rotate(360deg)}}@keyframes selection-toast-in{0%{opacity:0;transform:translate(-50%,14px) scale(.98)}to{opacity:1;transform:translate(-50%) scale(1)}}@keyframes selection-toast-out{0%{opacity:1;transform:translate(-50%) scale(1)}to{opacity:0;transform:translate(-50%,12px) scale(.98)}}@media(max-width:1180px){.calendar-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.employee-command-row{grid-template-columns:1fr}.employee-stats{grid-column:auto}}@media(max-width:900px){.app{width:min(100% - 20px,1480px);padding-top:18px}.topbar,.admin-workspace,.record-lists{grid-template-columns:1fr}.topbar{display:grid}.topbar-actions{justify-content:flex-start}.calendar-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.employee-fields,.employee-edit-grid,.stats-grid{grid-template-columns:1fr}.selection-toast{bottom:10px;width:calc(100% - 20px)}.holiday-form-row{grid-template-columns:1fr}}@media(max-width:520px){.calendar-grid{grid-template-columns:1fr}.topbar h1{font-size:2.2rem}}
