@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:#111827;font-synthesis:none;text-rendering:optimizelegibility;--blue:#2a55b2;--blue-dark:#203e86;--blue-soft:#eef3ff;--navy:#111b35;--muted:#6b7280;--line:#e5e9f1;--surface:#fff;--green:#1d8a5b;--shadow:0 16px 42px #19274b12;--state-done:#1d8a5b;--state-done-ink:#10704b;--state-done-bg:#e6f6ee;--state-done-line:#bfe6d2;--state-open:#d99b1c;--state-open-ink:#8d641d;--state-open-bg:#fff6e3;--state-open-line:#f1e0bc;--state-problem:#d8574c;--state-problem-ink:#a03a30;--state-problem-bg:#fdeceb;--state-problem-line:#f0cfcb;--state-sick:#d05a7e;--state-sick-ink:#9b4058;--state-sick-bg:#fff3f6;--state-plus:#1d8a5b;--state-minus:#5a6478;--state-presence:#0e7490;--state-presence-ink:#0b5c72;--state-presence-bg:#e3f2f7;--state-presence-line:#bfdfe8;background:#f5f7fb;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(circle at 8% 4%,#2a55b212,#0000 28rem),#f7f8fb;min-width:320px;min-height:100vh;margin:0}button,input,select{font:inherit}button,select{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible{outline-offset:2px;outline:3px solid #2a55b238}.app-shell{min-height:100vh}.auth-screen{place-items:center;min-height:100vh;padding:24px;display:grid}.auth-card{border:1px solid var(--line);background:var(--surface);width:min(100%,440px);box-shadow:var(--shadow);border-radius:20px;padding:36px}.auth-card img{width:100px;max-width:100%;margin-bottom:28px;display:block}.auth-card h1{color:var(--navy);margin:12px 0;font-size:clamp(24px,5vw,30px);line-height:1.2}.auth-card p{color:var(--muted);margin-bottom:24px;line-height:1.6}.auth-card a{text-decoration:none}.admin-email{color:var(--muted);margin-top:2px;font-size:13px;display:block}.topbar{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);z-index:10;background:#fffffff0;border-bottom:1px solid #e5e9f1e6;grid-template-columns:1fr auto 1fr;justify-content:space-between;align-items:center;height:88px;padding:0 clamp(24px,5vw,72px);display:grid;position:sticky;top:0}.app-navigation{border:1px solid var(--line);background:#f3f5f9;border-radius:13px;align-items:center;gap:3px;padding:4px;display:flex}.app-navigation button{color:#667085;background:0 0;border:0;border-radius:9px;align-items:center;gap:7px;min-height:38px;padding:0 14px;font-size:12px;font-weight:650;display:flex}.app-navigation button.active{color:var(--blue-dark);background:#fff;box-shadow:0 4px 12px #19274b14}.brand{color:inherit;align-items:center;gap:14px;text-decoration:none;display:flex}.brand img{object-fit:contain;border-radius:3px;width:48px;height:48px}.brand-copy{gap:2px;display:grid}.brand-copy strong{letter-spacing:-.01em;font-size:15px}.brand-copy small{color:var(--muted);font-size:12px}.page-content{width:min(1180px,100% - 40px);margin:0 auto;padding:54px 0 80px}.welcome-row{justify-content:space-between;align-items:flex-end;gap:32px;margin-bottom:32px;display:flex}.eyebrow,.section-label{color:var(--blue);letter-spacing:.1em;text-transform:uppercase;margin:0 0 7px;font-size:11px;font-weight:700;display:block}h1,h2,h3,p{margin-top:0}h1{letter-spacing:-.045em;color:var(--navy);margin-bottom:9px;font-size:clamp(30px,4vw,42px);line-height:1.08}.intro{color:var(--muted);margin-bottom:0;font-size:15px}.employee-picker{background:var(--surface);border:1px solid var(--line);border-radius:17px;align-items:center;gap:11px;min-width:252px;height:68px;padding:9px 14px 9px 10px;display:flex;position:relative;box-shadow:0 8px 24px #19274b0d}.avatar{color:#fff;background:linear-gradient(145deg, var(--blue), #577ad0);border-radius:13px;flex:none;place-items:center;width:46px;height:46px;font-size:13px;font-weight:700;display:grid}.employee-picker-copy{flex:1;gap:1px;display:grid}.employee-picker-copy small{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:10px;font-weight:600}.employee-picker-copy strong{color:var(--navy);text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:650;overflow:hidden}.week-card,.entry-card,.week-summary-card,.balance-card,.student-hours-card,.team-overview-bar,.presence-planner,.team-calendar-card,.vacation-allowance-card,.vacation-calendar-card,.vacation-request-card,.vacation-history-card{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow)}.team-calendar-view{gap:20px;display:grid}.team-overview-bar{border-radius:20px;grid-template-columns:1fr auto auto;align-items:center;gap:14px;padding:20px 24px;display:grid}.team-overview-intro,.team-today-stat{align-items:center;gap:12px;display:flex}.team-overview-icon{width:46px;height:46px;color:var(--blue);background:var(--blue-soft);border-radius:13px;place-items:center;display:grid}.team-overview-intro h2,.presence-planner h2,.team-calendar-toolbar h2{color:var(--navy);letter-spacing:-.025em;margin-bottom:0;font-size:18px}.team-today-stat{border-radius:13px;min-width:142px;padding:12px 14px}.team-today-stat.vacation-stat{color:#8a641c;background:#fff8e8}.team-today-stat.presence-stat{color:#257454;background:#eefaf4}.team-today-stat div{gap:1px;display:grid}.team-today-stat strong{color:var(--navy);font-size:17px}.team-today-stat span{font-size:9px;font-weight:600}.presence-planner{border-radius:20px;padding:22px 24px}.presence-planner.active{border-color:#bfdccb;box-shadow:0 16px 42px #25745414}.presence-planner-heading{justify-content:space-between;align-items:center;gap:20px;display:flex}.presence-planner-heading p{color:var(--muted);margin:5px 0 0;font-size:10px}.presence-planner-controls{border-top:1px solid var(--line);grid-template-columns:minmax(130px,1fr) 150px 150px auto;align-items:end;gap:12px;margin-top:18px;padding-top:18px;display:grid}.planning-selection{background:#f6faf8;border:1px solid #dcece4;border-radius:12px;align-content:center;gap:4px;min-height:64px;padding:12px 14px;display:grid}.planning-selection span{color:var(--muted);font-size:9px}.planning-selection strong{color:#246b4e;font-size:13px}.presence-planner-controls .primary-button{width:auto;min-height:46px;margin-bottom:1px}.planning-error{color:#a64040;grid-column:2/-1;margin:0;font-size:9px}.team-calendar-card{border-radius:22px;padding:26px}.team-calendar-toolbar,.team-toolbar-actions,.team-filters,.calendar-view-toggle{align-items:center;display:flex}.team-calendar-toolbar{justify-content:space-between;gap:20px}.team-toolbar-actions{gap:10px}.calendar-view-toggle,.team-filters{background:#f3f5f8;border-radius:11px;gap:3px;padding:4px}.calendar-view-toggle button,.team-filters button{color:#69758a;background:0 0;border:0;border-radius:8px;align-items:center;gap:5px;min-height:32px;padding:0 11px;font-size:10px;font-weight:650;display:flex}.calendar-view-toggle button.active,.team-filters button.active{color:var(--blue-dark);background:#fff;box-shadow:0 3px 9px #19274b14}.team-filters{width:fit-content;margin:18px 0}.planning-mode-hint{color:#257454;margin-left:6px;padding:0 8px;font-size:9px;font-weight:650}.team-week-grid{grid-template-columns:repeat(7,minmax(130px,1fr));gap:8px;padding-bottom:3px;display:grid;overflow-x:auto}.team-week-day{background:#fafbfc;border:1px solid #edf0f4;border-radius:14px;min-height:210px;padding:10px}.team-week-day.today{background:#f7f9ff;border-color:#cdd9f4}.team-week-day.planning-selected,.team-month-day.planning-selected{background:#eefaf4;border-color:#80c5a6;box-shadow:inset 0 0 0 1px #80c5a6}.team-day-heading{color:#7a8598;background:0 0;border:0;border-bottom:1px solid #e9edf3;align-items:center;gap:7px;width:100%;min-height:47px;padding:4px 7px 9px;display:flex}.team-day-heading span{text-transform:uppercase;font-size:9px;font-weight:700}.team-day-heading strong{color:var(--navy);font-size:17px}.team-day-heading svg{color:#26815d;margin-left:auto}.team-day-events{gap:7px;margin-top:9px;display:grid}.mini-avatar{color:#fff;background:#8090ad;border-radius:8px;place-items:center;width:25px;height:25px;font-size:7px;font-weight:700;display:grid}.team-day-empty{color:#a1a9b7;text-align:center;place-items:center;min-height:110px;font-size:9px;display:grid}.team-month-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;display:grid}.team-month-day{min-height:76px;color:var(--navy);background:#fafbfc;border:1px solid #0000;border-radius:11px;align-content:space-between;justify-items:start;padding:8px;display:grid}.team-month-day.outside{opacity:.36}.team-month-day.today{border-color:#9fb5e9}.team-month-day.selected:not(.planning-selected){box-shadow:inset 0 0 0 2px var(--blue)}.team-month-day.has-events{background:#fff;border-color:#e3e8f0}.team-month-day>strong{font-size:11px}.team-selected-day{background:#f8f9fc;border-radius:13px;grid-template-columns:210px 1fr;gap:18px;margin-top:16px;padding:16px;display:grid}.team-selected-day h3{color:var(--navy);margin-bottom:0;font-size:13px}.team-selected-day .team-day-events{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin-top:0}.team-selected-day .team-day-empty{justify-items:start;min-height:auto}.team-calendar-legend{color:var(--muted);flex-wrap:wrap;align-items:center;gap:14px;margin-top:17px;font-size:9px;display:flex}.team-calendar-legend span{align-items:center;gap:6px;display:flex}.team-calendar-legend i{border-radius:3px;width:9px;height:9px}.team-calendar-legend small{color:#98a1b0;margin-left:auto;font-size:8px}.missing-days-notice{background:linear-gradient(110deg,#fffaf0,#fffdf8);border:1px solid #f2dfb6;border-radius:18px;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;margin-bottom:18px;padding:17px 18px;display:grid;box-shadow:0 10px 28px #6f4e140f}.missing-notice-icon{color:#94631a;background:#fff1cc;border-radius:12px;place-items:center;width:42px;height:42px;display:grid}.missing-notice-copy .section-label{color:#9b6a20;margin-bottom:3px}.missing-notice-copy h2{color:var(--navy);letter-spacing:-.015em;margin-bottom:7px;font-size:15px}.missing-date-list{flex-wrap:wrap;gap:5px;display:flex}.missing-date-list span{color:#7e5b23;background:#ffefc9ad;border-radius:7px;padding:4px 7px;font-size:9px;font-weight:650}.missing-action{color:#805816;background:#fff;border:1px solid #ead39f;border-radius:11px;align-items:center;gap:5px;min-height:40px;padding:0 14px;font-size:10px;font-weight:700;display:flex;box-shadow:0 5px 14px #6f4e1412}.vacation-view{gap:22px;display:grid}.vacation-allowance-card{border-radius:22px;grid-template-columns:auto 1fr auto;align-items:center;gap:18px;padding:24px 28px;display:grid;position:relative;overflow:hidden}.allowance-icon{width:54px;height:54px;color:var(--blue);background:var(--blue-soft);border-radius:16px;place-items:center;display:grid}.allowance-copy h2,.vacation-card-heading h2,.vacation-request-card h2{color:var(--navy);letter-spacing:-.025em;margin-bottom:4px;font-size:21px}.allowance-copy p{color:var(--muted);margin-bottom:0;font-size:12px}.vacation-layout{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:22px;display:grid}.vacation-calendar-card,.vacation-request-card,.vacation-history-card{border-radius:22px;padding:26px}.vacation-card-heading{justify-content:space-between;align-items:center;gap:18px;display:flex}.calendar-hint{color:#51617c;background:#f7f9fc;border-radius:11px;align-items:center;gap:9px;margin:20px 0 18px;padding:11px 13px;font-size:11px;display:flex}.calendar-hint svg{color:var(--blue);flex:none}.month-calendar{grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;display:grid}.calendar-weekday{color:#8a94a8;text-align:center;text-transform:uppercase;padding:4px 0 9px;font-size:10px;font-weight:700}.calendar-day{min-height:58px;color:var(--navy);background:#fafbfc;border:1px solid #0000;border-radius:11px;place-content:center;gap:2px;padding:7px 4px;font-size:12px;font-weight:650;transition:all .15s;display:grid}.calendar-day:not(:disabled):hover{color:var(--blue-dark);background:var(--blue-soft);border-color:#cbd9fa;transform:translateY(-1px)}.calendar-day.outside{opacity:.38}.calendar-day.closed,.calendar-day.past{color:#aeb5c2;background:#f7f7f8}.calendar-day.today:not(.range-start):not(.range-end){border-color:#9fb5e9}.calendar-day.in-range{color:var(--blue-dark);background:#eaf1ff;border-radius:5px}.calendar-day.range-start,.calendar-day.range-end{color:#fff;background:linear-gradient(145deg, var(--blue), #5278ce);border-color:#0000;border-radius:11px;box-shadow:0 7px 16px #2a55b238}.calendar-day.booked-approved{color:var(--state-done-ink);background:var(--state-done-bg);opacity:1}.calendar-day.booked-pending{color:var(--state-open-ink);background:var(--state-open-bg);opacity:1}.calendar-day small{font-size:7px;font-weight:700}.team-away-dots{justify-content:center;gap:2px;margin-top:1px;display:flex}.team-away-dots i{border-radius:999px;width:4px;height:4px;display:block}.team-overlap-note{color:var(--state-open-ink);background:var(--state-open-bg);border:1px solid var(--state-open-line);border-radius:12px;align-items:flex-start;gap:10px;padding:11px 13px;display:flex}.team-overlap-note svg{flex:none;margin-top:1px}.team-overlap-note div{flex-direction:column;gap:2px;min-width:0;display:flex}.team-overlap-note strong{font-size:12.5px}.team-overlap-note span{opacity:.85;font-size:11.5px}.calendar-legend{color:var(--muted);flex-wrap:wrap;gap:15px;margin-top:16px;font-size:9px;display:flex}.calendar-legend span{align-items:center;gap:6px;display:flex}.calendar-legend i{border-radius:3px;width:10px;height:10px;display:block}.legend-selected{background:var(--blue)}.legend-approved{background:var(--state-done)}.legend-pending{background:var(--state-open)}.legend-closed{background:#d7dbe4}.legend-team{background:linear-gradient(90deg,#2a55b2 33%,#0f9d76 33% 66%,#c2410c 66%)}.presence-legend{background:var(--state-presence)}.vacation-request-card{position:sticky;top:110px}.request-period{background:#f7f9fc;border-radius:13px;grid-template-columns:1fr auto 1fr;align-items:center;gap:7px;margin:20px 0 14px;padding:15px;display:grid}.request-period>div{gap:4px;display:grid}.request-period span,.request-balance span,.vacation-note>span{color:var(--muted);font-size:9px;font-weight:600}.request-period strong{color:var(--navy);font-size:10px}.request-period svg{color:#9aa4b7}.request-balance{background:var(--blue-soft);border-radius:11px;justify-content:space-between;align-items:center;padding:13px 15px;display:flex}.request-balance strong{color:var(--blue-dark);font-size:12px}.vacation-note{gap:7px;margin-top:17px;display:grid}.vacation-note>span{color:#4b5870;font-size:10px}.vacation-note small{color:#9aa4b7;font-weight:500}.vacation-note textarea{resize:vertical;min-height:76px;color:var(--navy);border:1px solid var(--line);font:inherit;background:#fff;border-radius:11px;padding:11px 12px;font-size:11px}.vacation-note textarea:focus-visible{border-color:#a9bdea;outline:3px solid #2a55b229}.selection-help{color:var(--blue);margin:12px 0 0;font-size:10px}.request-submit{margin-top:17px}.primary-button:disabled{cursor:not-allowed;opacity:.45;box-shadow:none}.prototype-disclaimer{color:#8a94a8;text-align:center;margin:11px 4px 0;font-size:9px;line-height:1.45}.pending-count{color:#7b5c1c;background:#fff8e6;border-radius:999px;padding:7px 10px;font-size:10px;font-weight:650}.request-list{gap:8px;margin-top:18px;display:grid}.request-list-item{background:#fafbfc;border:1px solid #eef1f5;border-radius:13px;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:13px 14px;display:grid}.request-icon{width:38px;height:38px;color:var(--blue);background:var(--blue-soft);border-radius:10px;place-items:center;display:grid}.request-list-item>div{gap:3px;display:grid}.request-list-item strong{color:var(--navy);font-size:11px}.request-list-item>div span{color:var(--muted);font-size:9px}.request-status{color:#84631f;background:#fff8e7;border-radius:999px;align-items:center;gap:5px;padding:7px 9px;font-size:9px;font-weight:650;display:flex}.week-card{border-radius:22px;margin-bottom:22px;padding:22px 24px 20px}.week-heading{justify-content:space-between;align-items:center;gap:20px;margin-bottom:18px;display:flex}.week-heading strong{color:var(--navy);font-size:15px}.week-navigation{align-items:center;gap:6px;display:flex}.week-navigation button{color:#526079;border:1px solid var(--line);background:#f7f8fb;border-radius:10px;place-items:center;width:36px;height:36px;display:grid}.week-navigation .today-button{width:auto;padding:0 13px;font-size:12px;font-weight:650}.day-strip{grid-template-columns:repeat(7,minmax(74px,1fr));gap:9px;display:grid}.day-button{color:#738096;background:#f8f9fc;border:1px solid #0000;border-radius:14px;justify-items:center;gap:4px;min-height:94px;padding:12px 7px 10px;transition:all .16s;display:grid;position:relative}.day-button:hover{border-color:#dfe5f0;transform:translateY(-1px)}.day-button>span{text-transform:uppercase;font-size:10px;font-weight:700}.day-button>strong{color:#2c364d;font-size:22px;line-height:1}.day-button>small{min-height:12px;font-size:10px}.day-button.active{color:#fff;background:linear-gradient(145deg, var(--blue-dark), var(--blue));border-color:#0000;box-shadow:0 9px 22px #2a55b23b}.day-button.active>strong{color:#fff}.day-button.complete:not(.active){color:var(--state-done);background:#f2fbf6}.day-button.sick.complete:not(.active){color:var(--state-sick-ink);background:var(--state-sick-bg);border-color:#f1dce2}.day-button.sick.complete:not(.active)>strong{color:#7d3a4d}.day-button.missing:not(.active){color:var(--state-open-ink);background:var(--state-open-bg);border-color:var(--state-open-line)}.day-button.missing:not(.active)>strong{color:#835c1d}.day-check{position:absolute;top:8px;right:8px}.main-grid{grid-template-columns:minmax(0,1fr) 330px;align-items:start;gap:22px;display:grid}.entry-card,.week-summary-card,.balance-card,.student-hours-card{border-radius:22px}.entry-card{flex-direction:column;padding:28px;display:flex}.entry-card>*+*{margin-top:20px}.entry-card-heading{border-bottom:1px solid var(--line);align-items:center;gap:13px;padding-bottom:22px;display:flex}.date-icon,.summary-icon{color:var(--blue);background:var(--blue-soft);place-items:center;display:grid}.date-icon{border-radius:12px;width:43px;height:43px}.entry-card-heading .section-label{margin-bottom:3px}.entry-card-heading h2,.summary-heading h2{color:var(--navy);margin-bottom:0}.entry-card-heading h2{letter-spacing:-.02em;font-size:17px}.recorded-badge{color:var(--green);background:#edfaf3;border-radius:999px;align-items:center;gap:5px;margin-left:auto;padding:6px 9px;font-size:11px;font-weight:700;display:flex}.entry-mode-selector{background:#f1f3f7;border-radius:12px;gap:4px;width:fit-content;padding:4px;display:flex}.entry-mode-selector button{color:#657087;background:0 0;border:0;border-radius:9px;align-items:center;gap:7px;min-height:37px;padding:0 14px;font-size:11px;font-weight:700;display:inline-flex}.entry-mode-selector button.active{color:var(--blue-dark);background:#fff;box-shadow:0 3px 9px #1b2a4c14}.entry-mode-selector button:disabled{cursor:not-allowed;opacity:.42}.text-button{color:var(--blue);background:0 0;border:0;border-radius:9px;align-items:center;gap:7px;padding:8px 10px;font-size:12px;font-weight:650;display:flex}.text-button:hover{background:var(--blue-soft)}.duration-summary{background:#fbfcff;border:1px solid #dfe6f3;border-radius:14px;justify-content:space-between;align-items:center;margin:15px 0 20px;padding:17px 20px;display:flex}.duration-summary>div:nth-child(2){text-align:center}.duration-summary>div{gap:3px;display:grid}.duration-summary>div:last-child{text-align:right}.duration-summary span{color:var(--muted);font-size:11px}.duration-summary strong{color:var(--navy);font-size:19px}.duration-summary>div:last-child strong{font-size:14px}.privacy-inline-note{color:#69758b;background:#f8fafc;border-radius:10px;align-items:center;gap:8px;margin-bottom:17px;padding:10px 12px;font-size:9px;display:flex}.privacy-inline-note svg{color:#7788a6;flex:none}.week-entry b.negative{color:var(--state-minus)}.primary-button,.secondary-button,.danger-button{border-radius:12px;justify-content:center;align-items:center;gap:8px;min-height:46px;padding:0 18px;font-size:13px;font-weight:700;transition:all .15s;display:inline-flex}.primary-button{color:#fff;background:linear-gradient(135deg, var(--blue-dark), var(--blue));border:0;width:100%;box-shadow:0 9px 20px #2a55b22e}.primary-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 12px 24px #2a55b23d}.primary-button:disabled{cursor:not-allowed;opacity:.46}.secondary-button{color:#39465c;border:1px solid var(--line);background:#f8fafc}.danger-button{color:#b54747;background:#fff7f7;border:1px solid #f3dede}.entry-actions{gap:10px;display:flex}.entry-actions .secondary-button{flex:1}.rules-hint{color:var(--muted);align-items:center;gap:8px;font-size:10px;line-height:1.5;display:flex}.rules-hint svg{color:#b6bfcd;flex:none}.week-summary-card{padding:24px}.sidebar-stack{gap:16px;display:grid}.balance-card,.student-hours-card{padding:24px}.student-hours-card .summary-heading h2{font-size:26px}.student-hours-card .summary-icon{color:var(--blue);background:var(--blue-soft)}.student-limit-row{color:var(--muted);justify-content:space-between;align-items:center;margin:18px 0 9px;font-size:10px;display:flex}.student-limit-row strong{color:var(--navy);font-size:11px}.student-progress span{background:linear-gradient(90deg, var(--blue), #5c82d6)}.student-remaining{color:var(--muted);margin:10px 0 0;font-size:10px}.student-remaining strong{color:var(--blue-dark)}.balance-card .summary-heading h2{font-size:26px}.balance-card.green .summary-icon{color:#16794e;background:#edfaf3}.balance-card.yellow .summary-icon{color:#966311;background:#fff7df}.balance-card.red .summary-icon{color:#ad3f3f;background:#fff0f0}.balance-status-row{background:#f8f9fc;border-radius:13px;align-items:center;gap:12px;margin-top:18px;padding:13px;display:flex}.traffic-signals{background:#1d2433;border-radius:999px;align-items:center;gap:5px;padding:6px 8px;display:flex}.traffic-signals span{opacity:.2;border-radius:50%;width:9px;height:9px}.traffic-signals span.green{background:#35c07d}.traffic-signals span.yellow{background:#f4b942}.traffic-signals span.red{background:#ed6666}.traffic-signals span.active{opacity:1;box-shadow:0 0 0 3px #ffffff1f}.balance-status-row>div:last-child{gap:2px;display:grid}.balance-status-row strong{color:var(--navy);font-size:11px}.balance-status-row small{color:var(--muted);font-size:9px}.summary-heading{justify-content:space-between;align-items:center;display:flex}.summary-heading h2{letter-spacing:-.04em;font-size:28px}.summary-icon{border-radius:12px;width:43px;height:43px}.progress-track{background:#ecf0f6;border-radius:999px;height:7px;margin:19px 0 9px;overflow:hidden}.progress-track span{background:linear-gradient(90deg, var(--blue-dark), #5d83dd);border-radius:inherit;height:100%;transition:width .25s;display:block}.week-summary-card>p{color:var(--muted);margin-bottom:20px;font-size:11px}.week-entry-list{gap:7px;display:grid}.week-entry{text-align:left;width:100%;color:inherit;background:#fafbfc;border:1px solid #0000;border-radius:11px;grid-template-columns:36px 1fr auto;align-items:center;gap:10px;padding:10px;display:grid}.week-entry:hover{border-color:#dfe5ef}.entry-day{width:34px;height:34px;color:var(--blue);background:var(--blue-soft);text-transform:uppercase;border-radius:9px;place-items:center;font-size:10px;font-weight:800;display:grid}.week-entry>span:nth-child(2){gap:2px;display:grid}.week-entry strong,.week-entry b{color:var(--navy);font-size:11px}.week-entry small{color:var(--muted);font-size:9px}.week-entry b{font-weight:700}.empty-state{text-align:center;color:#8290a5;background:#fafbfc;border:1px dashed #dfe4ed;border-radius:14px;align-content:center;place-items:center;gap:7px;min-height:152px;padding:24px;display:grid}.empty-state strong{color:#48556c;font-size:12px}.empty-state span{max-width:190px;font-size:10px;line-height:1.5}.privacy-note{color:#8490a3;border-top:1px solid var(--line);gap:5px;margin-top:20px;padding-top:18px;font-size:9px;line-height:1.5;display:grid}.privacy-note span{color:#536177;font-size:10px;font-weight:700}.toast{z-index:20;color:#fff;opacity:0;pointer-events:none;background:#14213d;border-radius:13px;align-items:center;gap:9px;padding:11px 16px 11px 11px;font-size:12px;font-weight:650;transition:all .2s;display:flex;position:fixed;bottom:26px;left:50%;transform:translate(-50%,18px);box-shadow:0 15px 40px #0f193240}.toast.visible{opacity:1;transform:translate(-50%)}.toast span{color:#fff;background:#2bb673;border-radius:8px;place-items:center;width:26px;height:26px;display:grid}@media (width<=900px){.team-overview-bar{grid-template-columns:1fr 1fr}.team-overview-intro{grid-column:1/-1}.presence-planner-controls{grid-template-columns:1fr 1fr}.presence-planner-controls .primary-button{width:100%}.planning-error{grid-column:1/-1}.vacation-layout{grid-template-columns:1fr}.vacation-request-card{position:static}.main-grid{grid-template-columns:1fr}.sidebar-stack{order:-1}.week-entry-list{grid-template-columns:repeat(2,1fr)}.privacy-note{grid-column:1/-1}}@media (width<=680px){.topbar{-webkit-backdrop-filter:none;backdrop-filter:none;grid-template-columns:1fr;justify-items:center;height:64px;padding:0 18px}.brand img{width:40px;height:40px}.brand-copy{display:none}.app-navigation{width:calc(100% - 16px);min-height:64px;left:8px;right:8px;bottom:calc(8px + env(safe-area-inset-bottom));z-index:30;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#f7f9fdf5;border-color:#d5dce9f2;border-radius:20px;justify-content:stretch;justify-self:auto;padding:6px;position:fixed;box-shadow:0 16px 42px #13224633}.app-navigation button{text-align:center;flex-direction:column;flex:1;justify-content:center;gap:3px;min-width:0;min-height:50px;padding:5px 4px;font-size:9px;line-height:1.1}.app-navigation button svg{width:18px;height:18px}.page-content{width:min(100% - 24px,580px);padding:28px 0 104px}.welcome-row{align-items:stretch;margin-bottom:22px;display:grid}.employee-picker{width:100%}.week-card{padding:18px 14px 14px;overflow:hidden}.missing-days-notice{grid-template-columns:auto 1fr;padding:15px}.missing-action{grid-column:1/-1;justify-content:center;width:100%}.day-strip{grid-template-columns:repeat(7,minmax(58px,1fr));margin:0 -2px;padding:2px;overflow-x:auto}.day-button{min-width:58px;min-height:84px}.day-check{display:none}.entry-card,.balance-card,.student-hours-card,.week-summary-card,.vacation-calendar-card,.vacation-request-card,.vacation-history-card{padding:20px}.team-calendar-card,.presence-planner{padding:18px}.team-overview-bar{padding:17px}.presence-planner-heading,.team-calendar-toolbar{flex-direction:column;align-items:stretch}.planner-toggle{width:100%}.presence-planner-controls{grid-template-columns:1fr}.team-toolbar-actions{justify-content:space-between}.team-filters{max-width:100%;overflow-x:auto}.planning-mode-hint{white-space:nowrap}.team-week-grid{grid-template-columns:repeat(7,minmax(150px,1fr))}.team-month-day{min-height:58px;padding:6px}.team-month-markers span{padding:2px 3px}.team-selected-day{grid-template-columns:1fr}.team-calendar-legend small{width:100%;margin-left:0}.entry-mode-selector{width:100%}.entry-mode-selector button{flex:1;justify-content:center;gap:5px;padding:0 8px}.absence-summary{grid-template-columns:1fr}.absence-summary>div{border-right:0;border-bottom:1px solid var(--line);min-height:54px}.absence-summary>div:last-child{border-bottom:0}.vacation-allowance-card{grid-template-columns:auto 1fr;padding:20px}.allowance-meter{display:none}.calendar-day{border-radius:9px;min-height:48px}.calendar-hint{align-items:flex-start}.request-list-item{grid-template-columns:auto 1fr}.request-status{grid-column:2;justify-self:start}.standard-title-row{align-items:flex-start}.text-button{padding-right:0}.timeline{padding:18px 14px}.timeline-item{text-align:center;justify-items:center;min-width:70px;display:grid}.timeline-line{margin:0 5px}.timeline-item div:last-child{display:none}.time-fields{grid-template-columns:1fr 1fr;gap:9px}.live-calculation{grid-template-columns:40px 1fr}.live-calculation>small{grid-column:2}.edit-actions{flex-direction:column-reverse}.edit-actions button,.edit-actions .primary-button{width:100%}.week-entry-list{grid-template-columns:1fr}}@media (width<=420px){.topbar{grid-template-columns:1fr;gap:0;height:60px;min-height:60px;padding:8px 0}.brand{justify-self:center}.brand img{width:34px;height:34px}.app-navigation button{justify-content:center;padding:4px 2px;font-size:9px}.team-overview-bar{grid-template-columns:1fr}.team-overview-intro{grid-column:auto}.team-today-stat{min-width:0}.team-toolbar-actions{flex-direction:column;align-items:stretch}.calendar-view-toggle button{flex:1;justify-content:center}.team-month-day{min-height:48px}.team-month-markers svg{display:none}.app-navigation button{gap:5px}.vacation-card-heading{align-items:flex-start}.vacation-calendar-card .today-button{display:none}.calendar-day{min-height:42px;font-size:11px}.calendar-day small{display:none}.request-period{grid-template-columns:1fr}.request-period>svg{display:none}.week-heading{align-items:flex-start}.week-navigation .today-button{display:none}.entry-card-heading{align-items:flex-start}.recorded-badge{padding:6px}.recorded-badge svg{margin:0}.duration-summary{padding:14px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important}}.time-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;display:grid}.time-grid.compact{grid-template-columns:repeat(2,minmax(0,1fr))}.time-input{flex-direction:column;gap:6px;display:flex}.time-input>label{color:var(--muted);letter-spacing:.03em;text-transform:uppercase;font-size:11px;font-weight:650}.time-input-control{border:1.5px solid var(--line);background:#fbfcfe;border-radius:12px;align-items:center;transition:border-color .14s,box-shadow .14s,background .14s;display:flex}.time-input.focused .time-input-control{border-color:var(--blue);background:#fff;box-shadow:0 0 0 4px #2a55b21f}.time-input.invalid .time-input-control{border-color:#d8574c;box-shadow:0 0 0 4px #d8574c1f}.time-input-control input{width:100%;min-width:0;color:var(--navy);font-variant-numeric:tabular-nums;letter-spacing:.02em;text-align:center;background:0 0;border:none;outline:none;padding:11px 4px;font-size:20px;font-weight:700}.time-input-control input::placeholder{color:#c3c9d4;font-weight:600}.time-input-control button{width:34px;height:40px;color:var(--muted);background:0 0;border:none;border-radius:10px;place-items:center;transition:all .13s;display:grid}.time-input-control button:hover{color:var(--blue);background:var(--blue-soft)}.time-input>small{color:var(--muted);font-size:10px}.day-tag{color:var(--state-open-ink);background:var(--state-open-bg);border-radius:999px;margin-top:5px;padding:3px 9px;font-size:10px;font-weight:700;display:inline-block}.work-panel{flex-direction:column;gap:17px;display:flex}.work-panel-toolbar{flex-wrap:wrap;gap:8px;display:flex}.chip-button{color:var(--navy);border:1px solid var(--line);background:#f4f6fa;border-radius:999px;align-items:center;gap:6px;padding:7px 13px;font-size:12px;font-weight:650;transition:all .13s;display:inline-flex}.chip-button:hover:not(:disabled){color:var(--blue-dark);background:var(--blue-soft);border-color:#cbd9fa}.chip-button:disabled{opacity:.45;cursor:not-allowed}.chip-button.primary-chip{color:var(--blue-dark);background:var(--blue-soft);border-color:#cbd9fa}.issue-fix{color:var(--state-problem-ink);border-color:var(--state-problem-line);background:#fff;margin-top:4px}.issue-fix:hover:not(:disabled){color:var(--state-problem-ink);background:var(--state-problem-bg);border-color:var(--state-problem-line)}.saved-state{color:var(--state-done-ink);background:var(--state-done-bg);border:1px solid var(--state-done-line);border-radius:13px;align-items:center;gap:7px;padding:12px 18px;font-size:14px;font-weight:650;display:inline-flex}.next-open-day{width:100%;color:var(--state-open-ink);background:var(--state-open-bg);border:1px solid var(--state-open-line);border-radius:13px;justify-content:space-between;align-items:center;gap:12px;padding:12px 15px;font-size:13px;font-weight:600;transition:all .13s;display:flex}.next-open-day:hover{background:#fdefd2}.day-bar{flex-direction:column;gap:7px;display:flex}.day-bar-track{background:#eef1f6;border-radius:999px;height:12px;display:flex;overflow:hidden}.day-bar-track .segment{height:100%;transition:width .18s}.day-bar-track .segment.work{background:linear-gradient(120deg, var(--blue), #5278ce)}.day-bar-track .segment.pause{background:repeating-linear-gradient(-45deg,#d9dfea,#d9dfea 4px,#eef1f6 4px 8px)}.day-bar-labels{color:var(--muted);font-variant-numeric:tabular-nums;justify-content:space-between;font-size:11px;font-weight:600;display:flex}.day-bar-labels .pause-label{align-items:center;gap:4px;display:inline-flex}.duration-summary small{color:var(--muted);margin-top:2px;font-size:10.5px;font-weight:600;display:block}.duration-summary strong.positive{color:var(--state-plus)}.duration-summary strong.negative{color:var(--state-minus)}.absence-panel{border:1px solid var(--line);background:#fbfcfe;border-radius:16px;grid-template-columns:auto 1fr;gap:16px;padding:20px;display:grid}.absence-panel h3{margin:0 0 6px;font-size:16px}.absence-panel p{color:var(--muted);margin:0;font-size:13px;line-height:1.55}.absence-icon{color:#fff;border-radius:14px;place-items:center;width:46px;height:46px;display:grid}.absence-icon.sick{background:linear-gradient(140deg,#d05a7e,#b2436a)}.absence-icon.vacation{background:linear-gradient(140deg,#22a06b,#148053)}.absence-actions{grid-column:1/-1;justify-content:flex-end;gap:10px;display:flex}.mini-balance{flex-wrap:wrap;gap:8px 20px;margin-top:13px;display:flex}.mini-balance span{color:var(--muted);flex-direction:column;font-size:11px;font-weight:650;display:flex}.mini-balance strong{color:var(--navy);font-variant-numeric:tabular-nums;font-size:15px}.mini-balance strong.negative{color:var(--state-minus)}.panel-error{color:var(--state-problem-ink);align-items:center;gap:7px;margin:12px 0 0;font-size:12.5px;font-weight:600;display:flex}.panel-footnote{color:var(--muted);margin:14px 0 0;font-size:12px;line-height:1.55}.issue-box{background:var(--state-open-bg);border:1px solid var(--state-open-line);color:var(--state-open-ink);border-radius:13px;gap:11px;padding:13px 15px;display:flex}.issue-box.error{background:var(--state-problem-bg);border-color:var(--state-problem-line);color:var(--state-problem-ink)}.issue-box svg{flex:none;margin-top:1px}.issue-box p{margin:0 0 5px;font-size:12.5px;font-weight:600;line-height:1.5}.issue-box p:last-child{margin-bottom:0}.issue-box.compact{align-items:center;padding:10px 13px}.inline-note{color:#33507f;background:var(--blue-soft);border-radius:12px;align-items:center;gap:9px;padding:11px 14px;font-size:12.5px;font-weight:600;display:flex}.inline-note svg{flex:none}.balance-toggle{width:100%;color:var(--blue-dark);border:1px solid var(--line);background:#fff9;border-radius:11px;justify-content:space-between;align-items:center;margin-top:14px;padding:9px 12px;font-size:12px;font-weight:650;display:flex}.balance-toggle svg{transition:transform .16s}.balance-toggle.open svg{transform:rotate(180deg)}.balance-breakdown{border:1px solid var(--line);background:#ffffffbf;border-radius:13px;margin-top:11px;padding:13px 14px}.balance-row{border-bottom:1px dashed var(--line);justify-content:space-between;align-items:flex-start;gap:14px;padding:7px 0;display:flex}.balance-row:last-of-type{border-bottom:none}.balance-row span{color:var(--navy);flex-direction:column;font-size:12.5px;font-weight:600;display:flex}.balance-row span small{color:var(--muted);font-size:10.5px;font-weight:500}.balance-row strong{color:var(--navy);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:13.5px}.balance-row.total{border-top:1.5px solid var(--line);border-bottom:none;margin-top:5px;padding-top:11px;font-weight:700}.balance-row.total strong{font-size:16px}.balance-footnote{color:var(--muted);margin:11px 0 0;font-size:11px;line-height:1.5}.balance-open-days{text-align:left;width:100%;color:var(--state-open-ink);background:var(--state-open-bg);border:1px solid var(--state-open-line);border-radius:12px;align-items:center;gap:10px;margin-top:13px;padding:11px 13px;display:flex}.balance-open-days span{flex-direction:column;gap:2px;display:flex}.balance-open-days strong{font-size:12.5px}.balance-open-days small{opacity:.85;font-size:11px}.topbar-right{justify-content:flex-end;align-items:center;gap:10px;display:flex}.nav-badge{color:#fff;text-align:center;background:#d8574c;border-radius:999px;min-width:18px;margin-left:6px;padding:1px 5px;font-size:10px;font-weight:700;display:inline-block}.icon-button{width:38px;height:38px;color:var(--muted);border:1px solid var(--line);background:#f3f5f9;border-radius:11px;place-items:center;transition:all .13s;display:grid}.icon-button:hover{color:var(--blue);background:var(--blue-soft);border-color:#cbd9fa}.dialog-backdrop{z-index:40;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#111b356b;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.dialog{background:var(--surface);border-radius:20px;width:min(560px,100%);max-height:90vh;overflow-y:auto;box-shadow:0 30px 70px #111b3547}.dialog-heading{border-bottom:1px solid var(--line);align-items:center;gap:13px;padding:20px 22px;display:flex}.dialog-heading h2{margin:2px 0 0;font-size:17px}.dialog-heading .icon-button{margin-left:auto}.dialog-icon{color:#fff;background:linear-gradient(140deg, var(--blue), #5278ce);border-radius:13px;place-items:center;width:42px;height:42px;display:grid}.dialog-body{flex-direction:column;gap:18px;padding:22px;display:flex}.field{flex-direction:column;gap:6px;display:flex}.field>span{color:var(--navy);font-size:12.5px;font-weight:650}.field input{color:var(--navy);border:1.5px solid var(--line);background:#fbfcfe;border-radius:12px;padding:11px 13px;font-size:15px;font-weight:600}.field input:focus{border-color:var(--blue);outline:none}.field small{color:var(--muted);font-size:11.5px;line-height:1.5}.field-group{border:1px solid var(--line);border-radius:14px;margin:0;padding:15px}.field-group legend{color:var(--navy);padding:0 7px;font-size:12.5px;font-weight:650}.dialog-footer{border-top:1px solid var(--line);background:#fafbfd;border-radius:0 0 20px 20px;justify-content:space-between;align-items:center;gap:12px;padding:16px 22px;display:flex}.dialog-footer>div{gap:10px;display:flex}.danger-text{color:var(--state-problem-ink)}.allowance-bar{background:#eaeef5;border-radius:999px;grid-column:1/-1;height:10px;display:flex;overflow:hidden}.allowance-bar span{height:100%}.allowance-approved{background:var(--state-done)}.allowance-pending{background:repeating-linear-gradient(-45deg,#e8b53c,#e8b53c 5px,#f3d488 5px 10px)}.allowance-legend{color:var(--muted);flex-wrap:wrap;grid-column:1/-1;gap:16px;font-size:11px;display:flex}.allowance-legend span{align-items:center;gap:6px;display:flex}.allowance-legend .dot{border-radius:999px;width:9px;height:9px;display:block}.allowance-legend .dot.approved{background:var(--state-done)}.allowance-legend .dot.pending{background:var(--state-open)}.allowance-legend .dot.free{background:#dfe4ec}.holiday-flag{color:var(--state-open-ink);text-overflow:ellipsis;white-space:nowrap;font-size:8px;font-weight:700;line-height:1.2;display:block;overflow:hidden}.request-status.status-pending{color:var(--state-open-ink);background:var(--state-open-bg)}.request-status.status-approved{color:var(--state-done-ink);background:var(--state-done-bg)}.request-status.status-rejected{color:var(--state-problem-ink);background:var(--state-problem-bg)}.request-status.status-withdrawn{color:#64748b;background:#f1f3f7}.request-main{flex-direction:column;gap:3px;min-width:0;display:flex}.decision-note{color:var(--muted);font-size:11.5px;font-style:italic}.decision-banner{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);border-radius:15px;align-items:center;gap:12px;padding:14px 18px;display:flex}.decision-banner.approved{border-left:4px solid var(--state-done)}.decision-banner.rejected{border-left:4px solid var(--state-problem)}.decision-banner p{color:var(--navy);flex:1;margin:0;font-size:13px}.decision-banner .text-button{margin-left:auto}.approvals-view{flex-direction:column;gap:18px;display:flex}.approvals-header{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:18px;align-items:center;gap:15px;padding:20px 22px;display:flex}.approvals-header h2{margin:3px 0 5px;font-size:19px}.approvals-header p{color:var(--muted);margin:0;font-size:13px}.approvals-icon{color:#fff;background:linear-gradient(140deg, var(--blue), #5278ce);border-radius:14px;place-items:center;width:46px;height:46px;display:grid}.approval-list{grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:15px;display:grid}.approval-card{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:16px;flex-direction:column;gap:13px;padding:18px;display:flex}.approval-card header{align-items:center;gap:11px;display:flex}.approval-card header div{flex-direction:column;min-width:0;display:flex}.approval-card header strong{font-size:14.5px}.approval-card header span:not(.mini-avatar):not(.request-status){color:var(--muted);font-size:12px}.approval-card header .request-status{margin-left:auto}.approval-note{color:var(--navy);background:#f7f9fd;border-radius:11px;margin:0;padding:11px 13px;font-size:12.5px;font-style:italic}.approval-decision-note{flex-direction:column;gap:6px;display:flex}.approval-decision-note>span{color:var(--navy);font-size:11.5px;font-weight:650}.approval-decision-note>span small{color:var(--muted);font-weight:500}.approval-decision-note input{border:1.5px solid var(--line);background:#fbfcfe;border-radius:11px;padding:10px 12px;font-size:13px}.approval-decision-note input:focus{border-color:var(--blue);outline:none}.approval-actions{gap:10px;display:flex}.approval-actions button{flex:1;justify-content:center}.team-today-names{flex-wrap:wrap;grid-column:1/-1;gap:8px;display:flex}.muted-text{color:var(--muted);font-size:12.5px}.person-chip{background:var(--state-done-bg);border:1px solid var(--state-done-line);border-left:3px solid var(--person);max-width:100%;color:var(--state-done-ink);border-radius:999px;align-items:center;gap:7px;padding:4px 10px 4px 4px;font-size:11.5px;font-weight:650;display:inline-flex}.person-chip.presence{background:var(--state-presence-bg);border-color:var(--state-presence-line);color:var(--state-presence-ink)}.person-chip.pending{background:repeating-linear-gradient(-45deg, var(--state-open-bg), var(--state-open-bg) 5px, #fffdf7 5px, #fffdf7 10px);border-color:var(--state-open-line);border-left-color:var(--person);color:var(--state-open-ink);border-left-style:solid}.person-chip.detailed{border-radius:11px;width:100%;padding:6px 9px 6px 5px}.person-chip-copy{flex-direction:column;min-width:0;line-height:1.25;display:flex}.person-chip-copy strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.person-chip-copy small{opacity:.8;font-size:10px;font-weight:600}.person-chip .mini-avatar{color:#fff;border-radius:999px;flex:none;place-items:center;width:22px;height:22px;font-size:9px;font-weight:700;display:grid}.chip-remove{color:var(--muted);background:0 0;border:none;border-radius:7px;place-items:center;margin-left:auto;padding:3px;display:grid}.chip-remove:hover{color:var(--state-problem-ink);background:var(--state-problem-bg)}.month-day-number{justify-content:space-between;align-items:center;gap:4px;font-size:12px;display:flex}.month-day-events{flex-direction:column;gap:2px;min-width:0;display:flex}.month-chip{text-overflow:ellipsis;white-space:nowrap;color:var(--state-done-ink);background:var(--state-done-bg);border-left:2px solid var(--person);text-align:left;border-radius:4px;padding:1px 5px;font-size:9px;font-weight:700;overflow:hidden}.month-chip.presence{color:var(--state-presence-ink);background:var(--state-presence-bg)}.month-chip.pending{color:var(--state-open-ink);background:repeating-linear-gradient(-45deg, var(--state-open-bg), var(--state-open-bg) 4px, #fffdf7 4px, #fffdf7 8px)}.month-chip.more{color:var(--muted);background:#eef1f6;border-left-color:#c8cfdb}.team-week-day.closed,.team-month-day.closed{background:#f7f8fa}.team-week-day.holiday .team-day-heading strong,.team-month-day.holiday strong{color:var(--state-open-ink)}.team-month-day{text-align:left;align-content:start;gap:3px;min-height:82px}.day-button.vacation small{color:var(--state-done)}.day-button.vacation-pending small{color:var(--state-open-ink)}.day-button.closed:not(.active){opacity:.75;background:#f7f8fa}.week-entry.current{background:var(--blue-soft);border-color:#cbd9fa}.week-entry b.positive{color:var(--state-plus)}.missing-date-list button{color:var(--state-open-ink);background:var(--state-open-bg);border:1px solid var(--state-open-line);border-radius:999px;padding:4px 10px;font-size:11px;font-weight:650}.missing-date-list button:hover{background:#fdefd2}.missing-date-list button.ghost{color:var(--muted);background:0 0;border-style:dashed}.empty-state.block{text-align:center;flex-direction:column;align-items:center;gap:6px;padding:26px;display:flex}@media (width<=640px){.time-grid,.time-grid.compact{grid-template-columns:repeat(2,minmax(0,1fr))}.approval-list{grid-template-columns:1fr}.dialog-footer{flex-direction:column;align-items:stretch}.dialog-footer>div{justify-content:flex-end}}.team-calendar-card,.team-week-grid,.team-month-grid,.entry-card,.main-grid,.sidebar-stack{min-width:0}@media (width<=680px){.team-week-grid{grid-template-columns:1fr;overflow-x:visible}.team-week-day{min-height:0}.team-week-day .team-day-heading{flex-direction:row;align-items:baseline;gap:8px}.team-month-day{min-height:62px}.month-chip{font-size:8px}}.admin-view{flex-direction:column;gap:18px;display:flex}.admin-stats{grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:14px;display:grid}.admin-stat{text-align:left;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:16px;align-items:center;gap:13px;padding:17px 19px;display:flex}.admin-stat.clickable:hover{border-color:#cbd9fa;transform:translateY(-1px)}.admin-stat span:last-child{flex-direction:column;min-width:0;display:flex}.admin-stat strong{color:var(--navy);font-variant-numeric:tabular-nums;font-size:25px;font-weight:700;line-height:1.1}.admin-stat small{color:var(--muted);font-size:11.5px;font-weight:600}.admin-stat-icon{width:40px;height:40px;color:var(--blue);background:var(--blue-soft);border-radius:12px;flex:none;place-items:center;display:grid}.admin-stat.warn .admin-stat-icon{color:var(--state-open-ink);background:var(--state-open-bg)}.admin-stat.alert .admin-stat-icon{color:var(--state-problem-ink);background:var(--state-problem-bg)}.admin-table-card,.admin-detail-card,.admin-form-card,.admin-company-card{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:18px;padding:20px 22px}.admin-table-scroll{margin-top:6px;overflow-x:auto}.admin-table{border-collapse:collapse;width:100%;font-size:13px}.admin-table th,.admin-table td{text-align:left;vertical-align:middle;white-space:nowrap;padding:11px 12px}.admin-table thead th{color:var(--muted);letter-spacing:.05em;text-transform:uppercase;border-bottom:1px solid var(--line);font-size:10px;font-weight:700}.admin-table tbody tr{cursor:pointer;border-bottom:1px solid #f1f3f7;transition:background .13s}.admin-table tbody tr:hover{background:#fafbfd}.admin-table tbody tr.selected{background:var(--blue-soft)}.admin-table tbody th{align-items:center;gap:10px;font-weight:600;display:flex}.admin-table td small{color:var(--muted);font-size:10.5px;font-weight:500;display:block}.admin-table .mini-avatar{color:#fff;border-radius:999px;flex:none;place-items:center;width:28px;height:28px;font-size:10px;font-weight:700;display:grid}.admin-person{flex-direction:column;min-width:0;display:flex}.admin-person small{color:var(--muted);font-size:10.5px;font-weight:500}.balance-pill,.open-pill{font-variant-numeric:tabular-nums;border-radius:999px;align-items:center;gap:5px;padding:3px 10px;font-size:12px;font-weight:700;display:inline-flex}.balance-pill.green{color:var(--state-done-ink);background:var(--state-done-bg)}.balance-pill.yellow{color:var(--state-open-ink);background:var(--state-open-bg)}.balance-pill.red{color:var(--state-problem-ink);background:var(--state-problem-bg)}.open-pill{color:var(--state-open-ink);background:var(--state-open-bg)}.admin-table-hint{color:var(--muted);margin:12px 0 0;font-size:11.5px}.admin-detail-grid{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:start;gap:18px;margin-top:6px;display:grid}.admin-detail-side{flex-direction:column;gap:13px;display:flex}.admin-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px 16px;margin:0;display:grid}.admin-facts>div{flex-direction:column;gap:2px;display:flex}.admin-facts dt{color:var(--muted);letter-spacing:.03em;text-transform:uppercase;font-size:10.5px;font-weight:650}.admin-facts dd{color:var(--navy);font-variant-numeric:tabular-nums;margin:0;font-size:14px;font-weight:650}.week-entry.static{cursor:default}.week-entry.static:hover{background:inherit}.admin-company-card{grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:16px;display:grid}.admin-company-copy h2{margin:3px 0 4px;font-size:18px}.admin-company-copy p{color:var(--muted);margin:0;font-size:12.5px}.admin-company-error{grid-column:1/-1;margin:0}.field.inline{width:150px}.field.inline>span{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;font-size:11px}.admin-settings-layout{grid-template-columns:minmax(210px,260px) minmax(0,1fr);align-items:start;gap:18px;display:grid}.admin-people-list{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:18px;flex-direction:column;gap:5px;padding:10px;display:flex}.admin-people-list button{text-align:left;background:0 0;border:1px solid #0000;border-radius:12px;align-items:center;gap:10px;padding:9px 11px;transition:all .13s;display:flex}.admin-people-list button:hover{background:#f6f8fc}.admin-people-list button.active{background:var(--blue-soft);border-color:#cbd9fa}.admin-people-list .mini-avatar{color:#fff;border-radius:999px;flex:none;place-items:center;width:30px;height:30px;font-size:10px;font-weight:700;display:grid}.admin-people-list strong{font-size:13px}.admin-form-card{flex-direction:column;gap:17px;display:flex}.admin-form-grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:15px;display:grid}.admin-form-grid select{color:var(--navy);border:1.5px solid var(--line);background:#fbfcfe;border-radius:12px;padding:11px 13px;font-size:14px;font-weight:600}.switch-field{color:var(--navy);align-items:center;gap:8px;font-size:12.5px;font-weight:650;display:flex}.switch-field input{width:17px;height:17px;accent-color:var(--blue)}.readonly-facts{border:1px solid var(--line);background:#f7f9fd;border-radius:14px;padding:15px 16px}.readonly-facts h3{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;align-items:center;gap:7px;margin:0 0 13px;font-size:11px;font-weight:700;display:flex}.readonly-facts p{color:var(--muted);margin:13px 0 0;font-size:11.5px;line-height:1.5}@media (width<=900px){.admin-detail-grid,.admin-settings-layout{grid-template-columns:1fr}.admin-company-card{grid-template-columns:auto minmax(0,1fr)}.field.inline{width:auto}.admin-people-list{flex-direction:row;overflow-x:auto}.admin-people-list button{flex:none}}:root{--state-closure:#6d5bd0;--state-closure-ink:#4c3fa0;--state-closure-bg:#efedfc;--state-closure-line:#d6d1f5}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--state-closure:#9d90ea;--state-closure-ink:#b7ade9;--state-closure-bg:#241f47;--state-closure-line:#37307a}}.closure-legend{background:var(--state-closure)}.day-button.company-closed:not(.active){background:var(--state-closure-bg);border-color:var(--state-closure-line);opacity:1}.day-button.company-closed:not(.active) small,.day-button.company-closed:not(.active)>strong{color:var(--state-closure-ink)}.team-week-day.company-closed,.team-month-day.company-closed{background:var(--state-closure-bg);border-color:var(--state-closure-line)}.team-week-day.company-closed .holiday-flag,.team-month-day.company-closed .holiday-flag,.team-week-day.company-closed .team-day-heading strong,.team-month-day.company-closed strong{color:var(--state-closure-ink)}.calendar-day.holiday small.holiday-flag{color:var(--state-open-ink)}.closure-intro{color:var(--muted);max-width:74ch;margin:0;font-size:13px;line-height:1.55}.closure-form{grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr) auto;align-items:end;gap:12px;display:grid}.closure-form .primary-button{white-space:nowrap;height:45px}.closure-hint{color:var(--muted);margin:0;font-size:12.5px}.closure-list{background:var(--line);border:1px solid var(--line);border-radius:13px;gap:1px;margin:0;padding:0;list-style:none;display:grid;overflow:hidden}.closure-list li{background:var(--surface);align-items:center;gap:12px;padding:12px 14px;display:flex}.closure-icon{width:34px;height:34px;color:var(--state-closure-ink);background:var(--state-closure-bg);border-radius:11px;flex:none;place-items:center;display:grid}.closure-copy{flex-direction:column;flex:1;min-width:0;display:flex}.closure-copy strong{font-family:var(--sans,inherit);text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:650;overflow:hidden}.closure-copy small{color:var(--muted);font-size:11.5px;font-weight:500}.closure-list .icon-button:hover{color:var(--state-problem-ink);background:var(--state-problem-bg);border-color:var(--state-problem-line)}@media (width<=780px){.closure-form{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.closure-form .field:first-child,.closure-form .primary-button{grid-column:1/-1}}.absence-icon.closure{background:linear-gradient(140deg, var(--state-closure), #5344b5)}.closure-panel{background:var(--state-closure-bg);border-color:var(--state-closure-line)}
