:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:16px}}@media (prefers-color-scheme:dark){:root{--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}#social .button-icon{filter:invert()brightness(2)}}#root{text-align:left;box-sizing:border-box;flex-direction:column;width:100%;max-width:none;min-height:100svh;margin:0;display:flex}body{margin:0}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}.app-layout{--shell-bg:#0d1117;--shell-surface:#161b22;--shell-border:#30363d;--shell-text:#8b949e;--shell-text-h:#f0f6fc;--shell-accent:#58a6ff;--shell-accent-muted:#58a6ff26;--shell-row-hover:#21262d;--text:var(--shell-text);--text-h:var(--shell-text-h);--bg:var(--shell-bg);--border:var(--shell-border);--code-bg:var(--shell-surface);--accent:var(--shell-accent);--accent-bg:var(--shell-accent-muted);--accent-border:#58a6ff73;--social-bg:#161b2299;background:var(--shell-bg);min-height:100vh;color:var(--shell-text);flex-direction:row;align-items:stretch;font-size:16px;line-height:1.45;display:flex}.app-layout-sidebar{border-right:1px solid var(--shell-border);background:var(--shell-surface);flex-direction:column;flex-shrink:0;gap:1.25rem;width:220px;padding:1rem .75rem;display:flex}.app-layout-brand{color:var(--shell-text-h);border-radius:.5rem;padding:.5rem .75rem;font-size:1.1rem;font-weight:700;text-decoration:none;display:block}.app-layout-brand:hover{background:var(--shell-row-hover);color:var(--shell-accent)}.app-layout-nav{flex-direction:column;flex:1;gap:.25rem;display:flex}.app-layout-link{color:var(--shell-text);border-radius:.5rem;align-items:center;gap:.65rem;padding:.55rem .75rem;font-size:.9rem;text-decoration:none;display:flex}.app-layout-link:hover{background:var(--shell-row-hover);color:var(--shell-text-h)}.app-layout-link-active{background:var(--shell-accent-muted);color:var(--shell-accent)}.app-layout-link-active:hover{color:var(--shell-accent)}.app-layout-icon{opacity:.95;flex-shrink:0}.app-layout-sidebar-footer{border-top:1px solid var(--shell-border);margin-top:auto;padding-top:.5rem}.app-layout-signout{border:1px solid var(--shell-border);width:100%;color:var(--shell-text-h);font:inherit;cursor:pointer;text-align:left;background:0 0;border-radius:.5rem;padding:.5rem .75rem;font-size:.875rem}.app-layout-signout:hover{background:var(--shell-row-hover);border-color:var(--shell-accent);color:var(--shell-accent)}.app-layout-main{background:var(--shell-bg);flex:1;min-width:0;overflow:auto}@media (width<=640px){.app-layout-sidebar{width:64px;padding:.75rem .5rem}.app-layout-brand{text-align:center;padding:.35rem;font-size:.7rem}.app-layout-link span{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app-layout-link{justify-content:center;padding:.6rem}.app-layout-signout{text-align:center;padding:.45rem .25rem;font-size:.65rem}}.calendar-page{--cal-border:#30363d;--cal-surface:#161b22;--cal-cell:#0d1117;--cal-text:#c9d1d9;--cal-muted:#8b949e;--cal-task:#a371f7;--cal-task-bg:#a371f738;--cal-shift:#3fb950;--cal-shift-bg:#3fb95033;--cal-today:#58a6ff;--cal-today-ring:#58a6ff73;max-width:min(100%,92rem);color:var(--cal-text);text-align:left;margin:0 auto;padding:1.75rem 1.5rem 3rem}.calendar-page--week-view{max-width:100%;padding-bottom:1.5rem;padding-left:1rem;padding-right:1rem}.calendar-page h1{color:#f0f6fc;letter-spacing:normal;margin:0 0 .35rem;font-size:1.5rem;font-weight:600}.calendar-page-header{margin-bottom:1.25rem}.calendar-sub{color:var(--cal-muted);max-width:42rem;margin:0;font-size:.875rem;line-height:1.45}.calendar-error{color:#ff7b72;background:#f851491f;border:1px solid #f8514959;border-radius:.5rem;margin-bottom:1rem;padding:.75rem 1rem;font-size:.9rem}.calendar-toolbar{border:1px solid var(--cal-border);background:var(--cal-surface);border-radius:.75rem;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.25rem;padding:.85rem 1rem;display:flex}.calendar-month-title{color:#f0f6fc;font-size:1.125rem;font-weight:600}.calendar-toolbar-cluster{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.calendar-view-switch{border:1px solid var(--cal-border);background:var(--cal-cell);border-radius:.5rem;gap:.2rem;padding:.2rem;display:inline-flex}.calendar-view-btn{color:var(--cal-muted);font:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:.35rem;padding:.35rem .65rem;font-size:.8125rem}.calendar-view-btn:hover{color:#f0f6fc}.calendar-view-btn--active{color:#f0f6fc;background:#21262d;font-weight:600}.calendar-nav{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.calendar-btn{border:1px solid var(--cal-border);background:var(--cal-cell);min-width:2.25rem;color:var(--cal-text);font:inherit;cursor:pointer;border-radius:.5rem;padding:.45rem .85rem;font-size:.875rem}.calendar-btn:hover{border-color:var(--cal-today);color:#f0f6fc;background:#21262d}.calendar-loading{color:var(--cal-muted);font-size:.9rem}.calendar-footnote{color:var(--cal-muted);max-width:40rem;margin:1.25rem 0 0;font-size:.8rem;line-height:1.4}.calendar-month{border:1px solid var(--cal-border);background:var(--cal-surface);border-radius:.75rem;overflow:hidden}.calendar-month-weekdays{border-bottom:1px solid var(--cal-border);background:#21262d;grid-template-columns:repeat(7,minmax(0,1fr));gap:0;display:grid}.calendar-month-weekdays--day{grid-template-columns:1fr}.calendar-month-weekdays--day .calendar-month-weekday{text-align:center;text-transform:none;letter-spacing:normal;color:#e6edf3;font-size:.8rem;font-weight:600}.calendar-month-weekday{text-transform:uppercase;letter-spacing:.04em;color:var(--cal-muted);text-align:center;padding:.55rem .4rem;font-size:.75rem;font-weight:600}.calendar-month-cells{grid-template-columns:repeat(7,minmax(0,1fr));grid-auto-rows:8rem;gap:0;display:grid}.calendar-month--layout-week{flex-direction:column;min-height:calc(100vh - 10rem);display:flex}.calendar-month--layout-week .calendar-month-weekdays{flex-shrink:0}.calendar-month--layout-week .calendar-month-cells--week{flex:auto;grid-auto-rows:minmax(16rem,1fr);min-height:0}.calendar-month-cells--day{grid-template-columns:1fr;grid-auto-rows:minmax(18rem,auto)}.calendar-month-cells--day .calendar-cell{border-right:none}.calendar-cell{border-right:1px solid var(--cal-border);border-bottom:1px solid var(--cal-border);background:var(--cal-cell);flex-direction:column;gap:.25rem;min-width:0;min-height:0;padding:.35rem .4rem .5rem;display:flex;overflow:hidden}.calendar-cell:nth-child(7n){border-right:none}.calendar-cell-outside{opacity:.45}.calendar-cell-today{box-shadow:inset 0 0 0 2px var(--cal-today-ring)}.calendar-cell-header{flex-wrap:wrap;flex-shrink:0;align-items:center;gap:.25rem;min-width:0;min-height:1.5rem;display:flex}.calendar-cell-daynum{color:#f0f6fc;font-size:.875rem;font-weight:600}.calendar-cell-today-badge{text-transform:uppercase;letter-spacing:.04em;background:var(--cal-today);color:#0d1117;border-radius:999px;padding:.12rem .35rem;font-size:.6rem;font-weight:600}.calendar-cell-body{flex-direction:column;flex:1;gap:.2rem;min-height:0;display:flex}.calendar-cell-more{font:inherit;text-align:center;color:var(--cal-muted);cursor:pointer;background:0 0;border:none;flex-shrink:0;align-self:stretch;margin:auto 0 0;padding:.2rem .25rem;font-size:.65rem}.calendar-cell-pills{flex-direction:column;flex:1;gap:.2rem;min-width:0;min-height:0;margin:0;padding:0;list-style:none;display:flex;overflow:hidden}.calendar-cell-pills>li{min-width:0}.calendar-pill{box-sizing:border-box;border:1px solid #0000;border-radius:.35rem;min-width:0;max-width:100%;padding:.2rem .35rem;font-size:.65rem;line-height:1.25;overflow:hidden}.calendar-pill-task{background:var(--cal-task-bg);color:#e6d9fd;border-color:#a371f773}.calendar-pill-shift{background:var(--cal-shift-bg);color:#aff5c9;border-color:#3fb95073}.calendar-pill-vacation-wished{color:#fde68a;background:#fbbf242e;border-color:#fbbf2480}.calendar-pill-vacation-planned{color:#bae6fd;background:#38bdf829;border-color:#38bdf873}.calendar-pill-vacation-rejected{color:#fca5a5;opacity:.92;background:#94a3b81f;border-color:#f8717159}.calendar-pill-vacation-cancelled{color:#cbd5e1;opacity:.92;background:#94a3b81a;border-color:#94a3b859}.calendar-pill-dayoff{color:#fbcfe8;background:#f472b624;border-color:#f472b673}.calendar-pill-title{white-space:nowrap;text-overflow:ellipsis;min-width:0;font-weight:600;display:block;overflow:hidden}.calendar-pill-time{opacity:.85;white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:.6rem;display:block;overflow:hidden}.calendar-pill-button{text-align:left;cursor:pointer;width:100%;min-width:0;max-width:100%;font:inherit;z-index:1;-webkit-tap-highlight-color:transparent;touch-action:manipulation;box-sizing:border-box;margin:0;display:block;position:relative}.calendar-pill-button.calendar-pill-task:hover,.calendar-pill-button.calendar-pill-vacation-planned:hover,.calendar-pill-button.calendar-pill-shift:hover{filter:brightness(1.08)}.calendar-pill-employees{opacity:.88;white-space:nowrap;text-overflow:ellipsis;min-width:0;margin-top:.1rem;font-size:.55rem;display:block;overflow:hidden}.calendar-btn-secondary{color:var(--cal-text);border-color:var(--cal-border);background:0 0}.calendar-btn-secondary:hover{border-color:var(--cal-today);color:#f0f6fc}.create-shift-task-list{border:1px solid var(--cal-border);background:var(--cal-cell);border-radius:.5rem;max-height:11rem;margin:0;padding:0;list-style:none;overflow:auto}.create-shift-task-row{border:none;border-bottom:1px solid var(--cal-border);width:100%;color:var(--cal-text);font:inherit;text-align:left;cursor:pointer;background:0 0;flex-direction:column;align-items:flex-start;gap:.15rem;padding:.55rem .65rem;font-size:.875rem;display:flex}.create-shift-task-row:last-child{border-bottom:none}.create-shift-task-row:hover{background:#21262d}.create-shift-task-row-selected{background:#58a6ff1f;box-shadow:inset 0 0 0 1px #58a6ff59}.create-shift-task-title{color:#f0f6fc;font-weight:600}.create-shift-task-meta{color:var(--cal-muted);font-size:.75rem}.create-shift-task-picker-row{border-bottom:1px solid var(--cal-border);justify-content:space-between;align-items:center;gap:.5rem;padding:.55rem .65rem;display:flex}.create-shift-task-picker-row:last-child{border-bottom:none}.create-shift-task-row-text{flex-direction:column;flex:1;align-items:flex-start;gap:.15rem;min-width:0;display:flex}.create-shift-date-row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.create-shift-date-input{border:1px solid var(--cal-border);background:var(--cal-cell);color:var(--cal-text);font:inherit;border-radius:.5rem;padding:.4rem .55rem;font-size:.875rem}.create-shift-time-row{flex-wrap:wrap;gap:1rem;display:flex}.create-shift-time-label{color:var(--cal-muted);flex-direction:column;gap:.25rem;font-size:.8rem;display:flex}.create-shift-time-input{border:1px solid var(--cal-border);background:var(--cal-cell);color:var(--cal-text);font:inherit;border-radius:.5rem;padding:.4rem .55rem;font-size:.875rem}.create-shift-textarea{box-sizing:border-box;border:1px solid var(--cal-border);background:var(--cal-cell);width:100%;color:var(--cal-text);font:inherit;resize:vertical;border-radius:.5rem;min-height:4.5rem;padding:.5rem .6rem;font-size:.875rem}.calendar-modal-root{--cal-border:#30363d;--cal-surface:#161b22;--cal-cell:#0d1117;--cal-text:#c9d1d9;--cal-muted:#8b949e;--cal-shift:#3fb950;--cal-today:#58a6ff;z-index:10050;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.calendar-modal-backdrop{z-index:1;cursor:pointer;background-color:#010409c7;border:none;margin:0;padding:0;position:absolute;inset:0}.calendar-modal{z-index:2;border:1px solid var(--cal-border);background:var(--cal-surface);width:100%;max-width:28rem;max-height:min(90vh,34rem);color:var(--cal-text);text-align:left;border-radius:.75rem;padding:1.35rem 1.5rem 1.5rem;position:relative;overflow:auto;box-shadow:0 16px 48px #00000073}.calendar-modal-shift-detail{max-width:min(100%,40rem);max-height:min(90vh,40rem)}.calendar-modal-shift-fields{flex-direction:column;gap:.85rem;margin:0 0 1rem;display:flex}.calendar-modal-field{flex-direction:column;gap:.35rem;display:flex}.calendar-modal-field-label{color:var(--cal-muted);letter-spacing:.02em;margin:0;font-size:.75rem;font-weight:600}.calendar-modal-field-input,.calendar-modal-field-textarea{box-sizing:border-box;border:1px solid var(--cal-border);background:var(--cal-cell);width:100%;color:var(--cal-text);font:inherit;cursor:default;border-radius:.5rem;margin:0;padding:.5rem .65rem;font-size:.875rem;line-height:1.45}.calendar-modal-field-input:focus,.calendar-modal-field-textarea:focus{border-color:var(--cal-today);outline:none;box-shadow:0 0 0 1px #58a6ff59}.calendar-modal-field-textarea{resize:vertical;white-space:pre-wrap;word-break:break-word;min-height:4.5rem}.calendar-modal-close{width:2rem;height:2rem;color:var(--cal-muted);cursor:pointer;background:0 0;border:none;border-radius:.35rem;font-size:1.35rem;line-height:1;position:absolute;top:.65rem;right:.65rem}.calendar-modal-close:hover{color:#f0f6fc;background:#21262d}.calendar-modal-title{color:#f0f6fc;letter-spacing:normal;margin:0 2rem 1rem 0;font-size:1.2rem;font-weight:600}.calendar-modal-dl{grid-template-columns:7rem 1fr;gap:.35rem .75rem;margin:0 0 1rem;font-size:.875rem;display:grid}.calendar-modal-dl dt{color:var(--cal-muted);margin:0;font-weight:500}.calendar-modal-dl dd{color:var(--cal-text);margin:0}.calendar-modal-desc{white-space:pre-wrap;grid-column:1/-1}.calendar-modal-section{margin:1rem 0}.calendar-modal-h3{color:#f0f6fc;margin:0 0 .5rem;font-size:.95rem}.calendar-modal-assigned-list{flex-direction:column;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.calendar-modal-assigned-row{justify-content:space-between;align-items:center;gap:.5rem;font-size:.875rem;display:flex}.calendar-modal-assigned-tag{text-transform:uppercase;color:var(--cal-shift);font-size:.7rem;font-weight:600}.calendar-modal-remove{border:1px solid var(--cal-border);color:var(--cal-muted);font:inherit;cursor:pointer;background:0 0;border-radius:.35rem;flex-shrink:0;padding:.2rem .45rem;font-size:.75rem}.calendar-modal-remove:hover{color:#f85149;border-color:#f85149}.calendar-modal-actions{flex-wrap:wrap;gap:.5rem;margin-top:1.25rem;display:flex}.calendar-modal-error{color:#ff7b72;background:#f851491f;border:1px solid #f8514959;border-radius:.35rem;margin:0 0 .75rem;padding:.5rem .65rem;font-size:.85rem}.calendar-modal-back{color:var(--cal-today);font:inherit;cursor:pointer;text-align:left;background:0 0;border:none;margin:0 0 .75rem;padding:0;font-size:.875rem}.calendar-modal-hint{color:var(--cal-muted);margin:0 0 1rem;font-size:.8rem;line-height:1.4}.calendar-modal-muted{color:var(--cal-muted);font-size:.85rem}.calendar-modal-employee-list{max-height:14rem;margin:0;padding:0;list-style:none;overflow:auto}.calendar-modal-employee-row{border-bottom:1px solid var(--cal-border);justify-content:space-between;align-items:center;gap:.5rem;padding:.45rem 0;font-size:.875rem;display:flex}.calendar-modal-employee-name{min-width:0}.calendar-modal-icon-btn{border:1px solid var(--cal-border);background:var(--cal-cell);color:#f0f6fc;cursor:pointer;border-radius:.35rem;flex-shrink:0;width:1.85rem;height:1.85rem;font-size:1.1rem;line-height:1}.calendar-modal-icon-btn:hover{border-color:var(--cal-today);color:var(--cal-today)}.calendar-cell-pills--month-compact .calendar-pill-time,.calendar-cell-pills--month-compact .calendar-pill-employees{display:none}.calendar-cell-pills--month-compact .calendar-pill-title{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}@media (width<=720px){.calendar-month-cells{grid-auto-rows:minmax(6rem,auto)}.calendar-cell{min-height:6rem;padding:.25rem}.calendar-pill{font-size:.6rem}.calendar-cell-today-badge{display:none}}.weekday-fieldset{border:1px solid var(--border);border-radius:.5rem;grid-column:1/-1;margin:0;padding:.75rem 1rem}.weekday-legend{color:var(--text-h);padding:0 .35rem;font-size:.8rem}.weekday-grid{flex-wrap:wrap;gap:.5rem 1rem;margin-top:.5rem;display:flex}.weekday-item{cursor:pointer;align-items:center;gap:.35rem;font-size:.875rem;display:flex}.contracts-page{max-width:960px;margin:0 auto;padding:2rem 1.5rem 3rem}.contracts-page h1{color:var(--text-h);margin:0 0 .5rem;font-size:1.5rem}.contracts-sub{opacity:.85;margin:0 0 1.5rem;font-size:.9rem}.contracts-error{color:#b91c1c;background:#b91c1c1f;border-radius:.5rem;margin-bottom:1rem;padding:.75rem 1rem;font-size:.9rem}.contracts-form{border:1px solid var(--border);background:var(--code-bg);border-radius:.75rem;flex-wrap:wrap;align-items:flex-end;gap:.75rem;margin-bottom:2rem;padding:1rem;display:flex}.contracts-form label{color:var(--text-h);flex-direction:column;flex:1;gap:.35rem;min-width:200px;font-size:.875rem;display:flex}.contracts-input{border:1px solid var(--border);background:var(--bg);color:var(--text-h);font:inherit;border-radius:.5rem;padding:.5rem .65rem}.contracts-btn{background:var(--accent);color:#fff;font:inherit;cursor:pointer;border:none;border-radius:999px;padding:.5rem 1rem;font-size:.875rem;font-weight:600}.contracts-btn:disabled{opacity:.6;cursor:not-allowed}.contracts-btn-ghost{color:var(--accent);border:1px solid var(--accent-border);background:0 0}.contracts-btn-danger{color:#b91c1c;background:0 0;border:1px solid #b91c1c66}.contracts-list{flex-direction:column;gap:.75rem;margin:0;padding:0;list-style:none;display:flex}.contracts-row{border:1px solid var(--border);background:var(--code-bg);border-radius:.75rem;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:1rem 1.25rem;display:flex}.contracts-row-main{flex:1;min-width:200px}.contracts-row-title{color:var(--text-h);font-weight:600;text-decoration:none}.contracts-row-title:hover{color:var(--accent)}.contracts-row-actions{flex-wrap:wrap;gap:.5rem;display:flex}.contracts-back{color:var(--accent);margin-bottom:1rem;font-size:.9rem;text-decoration:none;display:inline-block}.contracts-back:hover{text-decoration:underline}.contracts-task-grid{flex-direction:column;gap:1rem;display:flex}.contracts-task-card{border:1px solid var(--border);background:var(--code-bg);border-radius:.75rem;padding:1rem 1.25rem}.contracts-task-card h3{color:var(--text-h);margin:0 0 .5rem;font-size:1rem}.contracts-task-meta{opacity:.85;margin-bottom:.75rem;font-size:.85rem}.contracts-inline-form{gap:.75rem;margin-top:.75rem;display:grid}@media (width>=640px){.contracts-inline-form{grid-template-columns:1fr 1fr}}.contracts-inline-form label{color:var(--text-h);flex-direction:column;gap:.35rem;font-size:.8rem;display:flex}.contracts-inline-form textarea{resize:vertical;min-height:4rem}.contracts-select{border:1px solid var(--border);background:var(--bg);color:var(--text-h);font:inherit;border-radius:.5rem;padding:.45rem .5rem}.contracts-empty{opacity:.75;text-align:center;border:1px dashed var(--border);border-radius:.75rem;padding:2rem;font-size:.95rem}.contracts-h2{color:var(--text-h);margin:2rem 0 1rem;font-size:1.125rem}.dashboard{text-align:left;max-width:960px;color:var(--text);margin:0 auto;padding:1.75rem 1.5rem 3rem}.dashboard-header{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:2rem;padding-bottom:1.5rem;display:flex}.dashboard-kicker{text-transform:uppercase;letter-spacing:.06em;opacity:.85;margin:0 0 .25rem;font-size:.75rem}.dashboard-title{color:var(--text-h);letter-spacing:normal;margin:0;font-size:1.75rem;font-weight:600}.dashboard-meta{opacity:.85;word-break:break-all;margin:.5rem 0 0;font-size:.875rem}.dashboard-signout{border:1px solid var(--border);color:var(--text-h);font:inherit;cursor:pointer;background:0 0;border-radius:999px;padding:.5rem 1rem}.dashboard-signout:hover{border-color:var(--accent);color:var(--accent)}.dashboard-section{margin-top:.5rem}.dashboard-section-title{color:var(--text-h);margin:0 0 1rem;font-size:1.125rem}.dashboard-placeholders{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.dashboard-card{border:1px solid var(--border);background:var(--code-bg);border-radius:.75rem;flex-direction:column;gap:.35rem;padding:1rem 1.25rem;display:flex}.dashboard-card strong{color:var(--text-h)}.dashboard-card span{opacity:.88;font-size:.9rem}.dashboard-link{color:inherit;flex-direction:column;gap:.35rem;text-decoration:none;display:flex}.dashboard-link:hover strong{color:var(--accent)}.day-off-page{max-width:960px;margin:0 auto;padding:2rem 1.5rem 3rem}.day-off-page h1{color:var(--text-h);margin:0 0 .5rem;font-size:1.5rem}.day-off-sub{opacity:.85;margin:0 0 1.25rem;font-size:.9rem}.day-off-toolbar{flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1.25rem;display:flex}.day-off-error{color:#b91c1c;background:#b91c1c1f;border-radius:.5rem;margin-bottom:1rem;padding:.75rem 1rem;font-size:.9rem}.day-off-btn{background:var(--accent);color:#fff;font:inherit;cursor:pointer;border:none;border-radius:999px;padding:.5rem 1rem;font-size:.875rem;font-weight:600}.day-off-btn:disabled{opacity:.6;cursor:not-allowed}.day-off-btn-ghost{color:var(--accent);border:1px solid var(--accent-border);background:0 0}.day-off-btn-success{background:#15803d}.day-off-btn-success:hover:not(:disabled){filter:brightness(1.05)}.day-off-btn-danger{color:#b91c1c;background:0 0;border:1px solid #b91c1c73}.day-off-btn-danger:hover:not(:disabled){background:#b91c1c14}.day-off-empty{border:1px dashed var(--border);opacity:.9;border-radius:.75rem;margin:0;padding:1.25rem;font-size:.95rem}.day-off-table-wrap{border:1px solid var(--border);background:var(--code-bg);border-radius:.75rem;overflow-x:auto}.day-off-table{border-collapse:collapse;width:100%;font-size:.875rem}.day-off-table th,.day-off-table td{text-align:left;vertical-align:top;border-bottom:1px solid var(--border);padding:.65rem .85rem}.day-off-table th{color:var(--text-h);background:#0000000a;font-weight:600}.day-off-table tr:last-child td{border-bottom:none}.day-off-reason{white-space:pre-wrap;word-break:break-word;max-width:280px}.day-off-actions{flex-wrap:wrap;gap:.5rem;display:flex}.day-off-badge{text-transform:uppercase;letter-spacing:.04em;border-radius:999px;padding:.2rem .55rem;font-size:.7rem;font-weight:700;display:inline-block}.day-off-badge-pending{color:#d97706;background:#f59e0b33}.day-off-badge-approved{color:#15803d;background:#16a34a2e}.day-off-badge-rejected{color:#b91c1c;background:#b91c1c24}.auth-page{justify-content:center;align-items:center;min-height:100vh;padding:1.5rem;display:flex}.auth-card{border:1px solid var(--border);background:var(--bg);width:100%;max-width:400px;box-shadow:var(--shadow);border-radius:1rem;padding:2rem}.auth-card-wide{max-width:480px}.auth-field-row{grid-template-columns:1fr 1fr;gap:1rem;display:grid}@media (width<=520px){.auth-field-row{grid-template-columns:1fr}}.auth-muted{text-align:center;color:var(--text-h);opacity:.85;margin:1.25rem 0 0;font-size:.9rem}.auth-muted a{color:var(--accent,#2563eb);font-weight:500;text-decoration:none}.auth-muted a:hover{text-decoration:underline}.auth-support{text-align:center;color:var(--text-h);opacity:.85;margin:1.25rem 0 0;font-size:.875rem;line-height:1.45}.auth-support-email{color:var(--accent,#2563eb);margin-top:.25rem;font-weight:600;display:block}.auth-title{color:var(--text-h);margin:0 0 .25rem;font-size:1.5rem}.auth-subtitle{opacity:.85;margin:0 0 1.5rem;font-size:.95rem}.auth-form{flex-direction:column;gap:1rem;display:flex}.auth-label{color:var(--text-h);flex-direction:column;gap:.35rem;font-size:.875rem;display:flex}.auth-input{border:1px solid var(--border);background:var(--code-bg);color:var(--text-h);font:inherit;border-radius:.5rem;padding:.65rem .75rem}.auth-error{color:#b91c1c;margin:0;font-size:.875rem}.auth-button{background:var(--accent);color:#fff;font:inherit;cursor:pointer;border:none;border-radius:999px;margin-top:.25rem;padding:.75rem 1rem;font-weight:600}.auth-button:disabled{opacity:.7;cursor:not-allowed}.auth-loading{min-height:100vh;color:var(--text);justify-content:center;align-items:center;display:flex}.privacy-page{min-height:100vh;color:var(--text);background:var(--bg);padding:2rem 1.25rem 3rem}.privacy-wrap{max-width:720px;margin:0 auto}.privacy-page h1{color:var(--text-h);margin:2rem 0 .75rem;font-size:1.75rem}.privacy-page h1:first-of-type{margin-top:0}.privacy-page p,.privacy-page ul{margin:0 0 1rem;line-height:1.6}.privacy-page ul{padding-left:1.25rem}.privacy-page a{color:var(--accent,#2563eb)}.privacy-meta{opacity:.85;margin-bottom:1.5rem}.privacy-back{margin-bottom:1.5rem;font-weight:500;text-decoration:none;display:inline-block}.privacy-back:hover{text-decoration:underline}.privacy-loading,.privacy-error{opacity:.85}.analytics-page{max-width:1200px;color:var(--shell-text,var(--text));margin:0 auto;padding:1.75rem 1.5rem 3rem}.analytics-page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1.25rem;margin-bottom:1.75rem;display:flex}.analytics-page-title{color:var(--shell-text-h,var(--text-h));letter-spacing:-.02em;margin:0 0 .35rem;font-size:1.65rem;font-weight:700}.analytics-page-kicker{color:var(--shell-text,var(--text));opacity:.85;margin:0;font-size:.95rem}.analytics-page-header-actions{flex-direction:column;align-items:flex-end;gap:.5rem;min-width:min(100%,240px);display:flex}.analytics-header-refresh{align-self:flex-end}.analytics-search-label{text-transform:uppercase;letter-spacing:.06em;opacity:.75;text-align:right;width:100%;font-size:.7rem;font-weight:600}.analytics-search-input{border:1px solid var(--shell-border,var(--border));background:var(--shell-surface,#161b22);width:100%;max-width:280px;color:var(--shell-text-h,var(--text-h));font:inherit;border-radius:.5rem;padding:.55rem .85rem;font-size:.9rem}.analytics-search-input::placeholder{color:var(--shell-text,var(--text));opacity:.55}.analytics-kpi-row{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;margin-bottom:1.75rem;display:grid}.analytics-kpi-card{border:1px solid var(--shell-border,var(--border));background:var(--shell-surface,#161b22);border-radius:.85rem;padding:1.1rem 1.25rem;box-shadow:inset 0 1px #ffffff0a}.analytics-kpi-value{color:var(--shell-text-h,var(--text-h));font-variant-numeric:tabular-nums;font-size:1.75rem;font-weight:700;line-height:1.2;display:block}.analytics-kpi-label{color:var(--shell-text,var(--text));opacity:.9;margin-top:.35rem;font-size:.8rem;font-weight:600;display:block}.analytics-kpi-hint{opacity:.65;margin-top:.2rem;font-size:.72rem;display:block}.analytics-section{margin-bottom:2rem}.analytics-section-month{border-top:1px solid var(--shell-border,var(--border));margin-top:2.5rem;padding-top:2rem}.analytics-section-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:1rem;display:flex}.analytics-section-title{color:var(--shell-text-h,var(--text-h));margin:0;font-size:1.15rem;font-weight:600}.analytics-section-meta{opacity:.75;font-size:.85rem}.analytics-section-desc{opacity:.8;max-width:52ch;margin:.35rem 0 0;font-size:.85rem}.analytics-week-range{opacity:.8;margin:.25rem 0 0;font-size:.88rem}.analytics-week-toolbar{align-items:center;gap:.75rem;display:flex}.analytics-week-nav{gap:.35rem;display:flex}.analytics-icon-btn{border:1px solid var(--shell-border,var(--border));background:var(--shell-surface,#161b22);width:2rem;height:2rem;color:var(--shell-accent,var(--accent));cursor:pointer;font-size:1.1rem;line-height:1;font:inherit;border-radius:.45rem;justify-content:center;align-items:center;display:inline-flex}.analytics-icon-btn:hover{background:var(--shell-row-hover,#21262d)}.analytics-table-shell{border:1px solid var(--shell-border,var(--border));background:#161b2273;border-radius:.85rem;overflow:hidden}.analytics-table-scroll{overflow-x:auto}.analytics-data-table{border-collapse:collapse;width:100%;font-size:.84rem}.analytics-data-table th,.analytics-data-table td{text-align:left;border-bottom:1px solid var(--shell-border,var(--border));vertical-align:middle;padding:.75rem 1rem}.analytics-data-table th{text-transform:uppercase;letter-spacing:.04em;opacity:.75;white-space:nowrap;background:#0003;font-size:.72rem;font-weight:600}.analytics-data-table tbody tr:last-child td{border-bottom:none}.analytics-data-table .num{text-align:right;font-variant-numeric:tabular-nums}.analytics-cell-user{align-items:center;gap:.65rem;display:flex}.analytics-avatar{background:var(--shell-accent-muted,#58a6ff26);width:2.25rem;height:2.25rem;color:var(--shell-accent,var(--accent));border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;font-size:.75rem;font-weight:700;display:inline-flex}.analytics-name{color:var(--shell-text-h,var(--text-h));font-weight:500}.analytics-name-block{flex-direction:column;gap:.1rem;display:flex}.analytics-name-strong{color:var(--shell-text-h,var(--text-h));font-weight:600}.analytics-role-sub{opacity:.7;font-size:.78rem;font-weight:400}.analytics-pill{border:1px solid var(--shell-border,var(--border));white-space:nowrap;text-overflow:ellipsis;background:#ffffff0f;border-radius:999px;max-width:12rem;padding:.25rem .55rem;font-size:.78rem;display:inline-block;overflow:hidden}.analytics-badge{border-radius:999px;align-items:center;gap:.35rem;padding:.25rem .55rem;font-size:.78rem;font-weight:500;display:inline-flex}.analytics-badge:before{content:"";opacity:.9;background:currentColor;border-radius:999px;width:6px;height:6px}.analytics-badge-done{color:var(--shell-accent,#58a6ff);background:#58a6ff1f}.analytics-badge-progress{color:#8b949e;background:#8b949e1f}.analytics-badge-muted{color:#8b949e;background:#8b949e1a}.analytics-badge-active{color:var(--shell-accent,#58a6ff);background:#58a6ff1f}.analytics-badge-break{color:#d29922;background:#d299221f}.analytics-badge-away{color:#8b949e;background:#8b949e26}.analytics-hours-cell{min-width:140px}.analytics-progress-track{background:#ffffff14;border-radius:999px;height:6px;margin-bottom:.35rem;overflow:hidden}.analytics-progress-fill{background:linear-gradient(90deg, var(--shell-accent,#58a6ff), #79c0ff);border-radius:999px;min-width:2px;height:100%}.analytics-hours-line{flex-wrap:wrap;align-items:baseline;gap:.35rem .65rem;display:flex}.analytics-hours-num{font-variant-numeric:tabular-nums;color:var(--shell-text-h,var(--text-h));font-weight:600}.analytics-overtime{color:var(--shell-accent,#58a6ff);opacity:.95;font-size:.75rem}.analytics-overtime-zero{color:var(--shell-text,var(--text));opacity:.55}.analytics-export-btn{border:1px solid var(--shell-border,var(--border));color:var(--shell-accent,var(--accent));font:inherit;cursor:pointer;background:0 0;border-radius:.45rem;align-items:center;gap:.35rem;padding:.35rem .65rem;font-size:.8rem;font-weight:600;display:inline-flex}.analytics-export-btn:hover{background:var(--shell-accent-muted,#58a6ff26)}.analytics-toolbar{flex-wrap:wrap;align-items:flex-end;gap:1rem;margin-bottom:1.25rem;display:flex}.analytics-toolbar-inline{margin-top:.5rem}.analytics-field label{text-transform:uppercase;letter-spacing:.04em;opacity:.8;margin-bottom:.35rem;font-size:.75rem;font-weight:600;display:block}.analytics-field select{border:1px solid var(--shell-border,var(--border));background:var(--shell-surface,#161b22);color:var(--shell-text-h,var(--text-h));font:inherit;border-radius:.5rem;min-width:8rem;padding:.45rem .75rem}.analytics-summary{flex-wrap:wrap;gap:1rem;margin-bottom:1.25rem;display:flex}.analytics-summary-inline{margin-top:.5rem}.analytics-summary-card{border:1px solid var(--shell-border,var(--border));background:var(--shell-surface,#161b22);border-radius:.75rem;min-width:12rem;padding:1rem 1.25rem}.analytics-summary-card strong{color:var(--shell-text-h,var(--text-h));margin-bottom:.25rem;font-size:1.35rem;display:block}.analytics-summary-card span{opacity:.85;font-size:.85rem}.analytics-footnote{opacity:.75;margin-top:1rem;font-size:.8rem}.analytics-error{color:#f85149;background:#b91c1c1f;border-radius:.5rem;margin-bottom:1rem;padding:.75rem 1rem;font-size:.9rem}.analytics-btn{background:var(--shell-accent,var(--accent));color:#fff;font:inherit;cursor:pointer;border:none;border-radius:999px;padding:.5rem 1rem;font-size:.875rem;font-weight:600}.analytics-btn:disabled{opacity:.6;cursor:not-allowed}.analytics-btn-ghost{color:var(--shell-accent,var(--accent));border:1px solid var(--accent-border,#58a6ff73);background:0 0}.analytics-empty{border:1px dashed var(--shell-border,var(--border));text-align:center;opacity:.85;border-radius:.75rem;margin:0;padding:1.25rem}.analytics-modal-root{z-index:50;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.analytics-modal-backdrop{cursor:pointer;background:#0f172a8c;border:none;position:absolute;inset:0}.analytics-modal{z-index:1;background:var(--shell-surface,#161b22);border:1px solid var(--shell-border,var(--border));border-radius:.75rem;flex-direction:column;width:100%;max-width:640px;max-height:min(85vh,720px);display:flex;position:relative;overflow:hidden;box-shadow:0 20px 50px #00000059}.analytics-modal header{border-bottom:1px solid var(--shell-border,var(--border));justify-content:space-between;align-items:flex-start;gap:1rem;padding:1rem 1.25rem;display:flex}.analytics-modal header h2{color:var(--shell-text-h,var(--text-h));margin:0;font-size:1.1rem}.analytics-modal-sub{opacity:.85;margin:.35rem 0 0;font-size:.85rem}.analytics-modal-close{border:1px solid var(--shell-border,var(--border));color:var(--shell-text-h,var(--text-h));font:inherit;cursor:pointer;background:0 0;border-radius:.5rem;flex-shrink:0;padding:.35rem .65rem}.analytics-modal-body{padding:1rem 1.25rem;overflow:auto}.analytics-session-table{border-collapse:collapse;width:100%;font-size:.8rem}.analytics-session-table th,.analytics-session-table td{text-align:left;border-bottom:1px solid var(--shell-border,var(--border));padding:.5rem}.analytics-session-table .num{text-align:right;font-variant-numeric:tabular-nums}.vacations-page{max-width:min(100%,92rem);margin:0 auto;padding:2rem 1.5rem 3rem}.vacations-page h1{color:var(--text-h);margin:0 0 .5rem;font-size:1.5rem}.vacations-sub{opacity:.85;margin:0 0 1.25rem;font-size:.9rem}.vacations-error{color:#b91c1c;background:#b91c1c1f;border-radius:.5rem;margin-bottom:1rem;padding:.75rem 1rem;font-size:.9rem}.vacations-settings{border:1px solid var(--border);background:var(--code-bg);border-radius:.75rem;flex-wrap:wrap;align-items:flex-end;gap:.75rem;margin-bottom:1.25rem;padding:1rem;display:flex}.vacations-settings label{color:var(--text-h);flex-direction:column;gap:.35rem;font-size:.875rem;display:flex}.vacations-settings input{border:1px solid var(--border);background:var(--bg);color:var(--text-h);font:inherit;border-radius:.5rem;width:8rem;padding:.5rem .65rem}.vacations-toolbar{flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:.75rem;display:flex}.vacations-filters{flex-wrap:wrap;gap:1rem;margin-bottom:1rem;font-size:.875rem;display:flex}.vacations-filters label{cursor:pointer;align-items:center;gap:.35rem;display:inline-flex}.vacations-section-title{color:var(--text-h);margin:2rem 0 .75rem;font-size:1.1rem;font-weight:600}.vacations-table-wrap{border:1px solid var(--border);background:var(--code-bg);border-radius:.75rem;overflow-x:auto}.vacations-table{border-collapse:collapse;width:100%;font-size:.875rem}.vacations-table th,.vacations-table td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:.65rem .85rem}.vacations-table th{background:#0000000a;font-weight:600}.vacations-table tr:last-child td{border-bottom:none}.vac-actions{flex-wrap:wrap;gap:.5rem;display:flex}.vac-btn{font:inherit;cursor:pointer;border:none;border-radius:999px;padding:.4rem .85rem;font-size:.8rem;font-weight:600}.vac-btn:disabled{opacity:.55;cursor:not-allowed}.vac-btn-approve{color:#fff;background:#15803d}.vac-btn-reject{color:#b91c1c;background:0 0;border:1px solid #b91c1c73}.vac-btn-ghost{color:var(--accent);border:1px solid var(--accent-border);background:0 0}.vac-btn-primary{background:var(--accent);color:#fff}.vac-modal-root{z-index:1200;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.vac-modal-backdrop{cursor:pointer;background:#0000008c;border:none;position:absolute;inset:0}.vac-modal{border:1px solid var(--border);background:var(--bg);width:100%;max-width:420px;color:var(--text);border-radius:.75rem;padding:1.25rem;position:relative;box-shadow:0 16px 48px #00000059}.vac-modal h2{margin:0 0 1rem;font-size:1.15rem}.vac-modal-field{margin-bottom:.85rem}.vac-modal-field label{color:var(--text-h);margin-bottom:.35rem;font-size:.8rem;display:block}.vac-modal-intro{opacity:.88;margin:-.35rem 0 1rem;font-size:.85rem;line-height:1.45}.vac-modal-field input,.vac-modal-field select,.vac-modal-textarea{border:1px solid var(--border);background:var(--bg);width:100%;color:var(--text-h);font:inherit;border-radius:.5rem;padding:.5rem .65rem}.vac-modal-textarea{resize:vertical;min-height:4.5rem}.vac-modal-actions{justify-content:flex-end;gap:.5rem;margin-top:1rem;display:flex}.vac-note{opacity:.85;margin-top:.35rem;font-size:.8rem}
