:root{color-scheme:light;--accent-base: #22c55e;--color-primary: var(--accent-base);--color-primary-dark: color-mix(in srgb, var(--accent-base) 85%, #000);--color-primary-soft: color-mix(in srgb, var(--accent-base) 12%, transparent);--color-text: #1e2430;--color-muted: #5b6472;--color-bg: #eef1f8;--color-surface: rgba(255, 255, 255, .62);--color-border: rgba(255, 255, 255, .75);--color-line: rgba(30, 36, 48, .12);--color-input-bg: rgba(255, 255, 255, .72);--color-btn-bg: #1e2430;--color-btn-bg-hover: #2b3342;--color-btn-fg: #ffffff;--nav-active-bg: #1e2430;--nav-active-fg: #ffffff;--aurora-1: color-mix(in srgb, var(--accent-base) 35%, transparent);--aurora-2: rgba(45, 212, 191, .3);--aurora-3: rgba(244, 114, 182, .22);--color-success-bg: rgba(16, 185, 129, .15);--color-success-fg: #047857;--color-error-bg: rgba(239, 68, 68, .13);--color-error-fg: #b91c1c;--color-warning-bg: rgba(245, 158, 11, .16);--color-warning-fg: #92400e;--color-info-bg: color-mix(in srgb, var(--accent-base) 13%, transparent);--color-info-fg: color-mix(in srgb, var(--accent-base) 85%, #000);--color-category-bg: rgba(184, 161, 90, .22);--color-category-fg: #7a6520;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-6: 24px;--space-8: 32px;--radius: 12px;--radius-lg: 20px;--shadow: 0 10px 30px rgba(30, 36, 48, .07);--scrollbar-thumb: color-mix(in srgb, var(--color-muted) 36%, transparent);--scrollbar-thumb-hover: color-mix(in srgb, var(--color-muted) 54%, transparent);--scrollbar-track: transparent;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--color-text)}*{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track)}[data-theme=dark]{color-scheme:dark;--color-primary: color-mix(in srgb, var(--accent-base) 55%, #fff);--color-primary-dark: color-mix(in srgb, var(--accent-base) 35%, #fff);--color-primary-soft: color-mix(in srgb, var(--accent-base) 16%, transparent);--color-text: #e6e9f0;--color-muted: #98a1b0;--color-bg: #0f1218;--color-surface: rgba(24, 28, 38, .62);--color-border: rgba(255, 255, 255, .09);--color-line: rgba(230, 233, 240, .12);--color-input-bg: rgba(255, 255, 255, .06);--color-btn-bg: color-mix(in srgb, var(--accent-base) 85%, #fff);--color-btn-bg-hover: color-mix(in srgb, var(--accent-base) 65%, #fff);--color-btn-fg: #ffffff;--nav-active-bg: #e6e9f0;--nav-active-fg: #14161b;--aurora-1: color-mix(in srgb, var(--accent-base) 28%, transparent);--aurora-2: rgba(20, 184, 166, .18);--aurora-3: rgba(217, 70, 239, .14);--color-success-bg: rgba(16, 185, 129, .18);--color-success-fg: #6ee7b7;--color-error-bg: rgba(239, 68, 68, .2);--color-error-fg: #fca5a5;--color-warning-bg: rgba(245, 158, 11, .2);--color-warning-fg: #fcd34d;--color-info-bg: color-mix(in srgb, var(--accent-base) 20%, transparent);--color-info-fg: color-mix(in srgb, var(--accent-base) 35%, #fff);--color-category-bg: rgba(184, 161, 90, .26);--color-category-fg: #e3cf8a;--shadow: 0 10px 30px rgba(0, 0, 0, .35)}body{margin:0;background:var(--color-bg)}body:before{content:"";position:fixed;top:-20%;right:-20%;bottom:-20%;left:-20%;z-index:-1;pointer-events:none;background:radial-gradient(600px 400px at 15% 10%,var(--aurora-1),transparent 65%),radial-gradient(700px 500px at 85% 20%,var(--aurora-2),transparent 65%),radial-gradient(600px 500px at 60% 95%,var(--aurora-3),transparent 65%);filter:blur(44px)}.screen{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:var(--space-4)}.card{background:var(--color-surface);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:var(--space-8);scrollbar-gutter:stable}.card--centered{width:100%;max-width:360px;text-align:center}.card h1{margin:0 0 var(--space-4);font-size:1.5rem;letter-spacing:-.02em}.muted{margin:0 0 var(--space-4);color:var(--color-muted)}.btn{padding:10px 18px;font-size:.95rem;font-weight:600;font-family:inherit;border:none;border-radius:var(--radius);background:var(--color-btn-bg);color:var(--color-btn-fg);cursor:pointer}.btn:hover{background:var(--color-btn-bg-hover)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--block{width:100%}.btn--small{padding:6px 12px;font-size:.8rem;border-radius:9px}.btn--secondary{background:transparent;color:var(--color-text);border:1px solid var(--color-line)}.btn--secondary:hover{background:var(--color-primary-soft)}.alert{margin:var(--space-3) 0;padding:10px 12px;border-radius:var(--radius);font-size:.9rem}.alert--success{background:var(--color-success-bg);color:var(--color-success-fg)}.alert--error{background:var(--color-error-bg);color:var(--color-error-fg)}.alert--warning{background:var(--color-warning-bg);color:var(--color-warning-fg)}.alert--info{background:var(--color-info-bg);color:var(--color-info-fg)}.spinner{display:inline-block;width:20px;height:20px;border:3px solid var(--color-line);border-top-color:var(--color-primary);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.badge{display:inline-block;padding:3px 11px;border-radius:999px;cursor:pointer;font-size:.78rem;font-weight:700}.badge--success{background:var(--color-success-bg);color:var(--color-success-fg)}.badge--error{background:var(--color-error-bg);color:var(--color-error-fg)}.badge--warning{background:var(--color-warning-bg);color:var(--color-warning-fg)}.badge--info{background:var(--color-info-bg);color:var(--color-info-fg)}.badge--neutral{background:var(--color-line);color:var(--color-muted)}.badge--category{background:var(--color-category-bg);color:var(--color-category-fg)}.shell{min-height:100vh;display:flex;flex-direction:column}.shell__header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-3) var(--space-6)}.shell__brand{display:flex;align-items:center;text-decoration:none}.shell__logo{display:block;height:26px;width:auto}.shell__side{display:flex;align-items:center;gap:var(--space-3)}.shell__main{flex:1;padding:var(--space-4) var(--space-8) var(--space-8);width:100%;box-sizing:border-box}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;flex-shrink:0;padding:0;border-radius:999px;background:var(--color-surface);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--color-border);color:var(--color-muted);cursor:pointer}.theme-toggle:hover{background:var(--nav-active-bg);color:var(--nav-active-fg)}.theme-toggle:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px}.page-header{margin-bottom:var(--space-6)}.page-header h1{margin:0 0 var(--space-1);font-size:1.6rem;letter-spacing:-.025em}.page-header p{margin:0;color:var(--color-muted)}.stack>*+*{margin-top:var(--space-4)}.toolbar{display:flex;align-items:flex-end;gap:var(--space-3)}.checkbox-field{display:inline-flex;align-items:center;gap:var(--space-2);padding-bottom:.6rem}.kpi-row{display:flex;flex-wrap:wrap;gap:var(--space-4)}.kpi{flex:1;min-width:110px}.kpi__value{font-size:1.7rem;font-weight:800;letter-spacing:-.03em}.kpi__label{color:var(--color-muted);font-size:.85rem}.kpi-card-content{display:flex;flex-direction:column;gap:var(--space-2);flex:1;justify-content:center}.kpi-card-main{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.kpi-card-icon{display:inline-flex;align-items:center;justify-content:center;color:var(--accent-base, var(--color-primary));opacity:.85}.table{width:100%;border-collapse:collapse}.table th,.table td{text-align:left;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-line);font-size:.92rem}.table th{color:var(--color-muted);font-weight:600}.table__empty{color:var(--color-muted);font-size:.9rem}.field{display:flex;flex-direction:column;gap:var(--space-1);font-size:.9rem}.field__label{color:var(--color-muted)}.field input,.field select,.field textarea{padding:8px 10px;border:1px solid var(--color-line);border-radius:var(--radius);background:var(--color-input-bg);color:var(--color-text);font-size:.95rem;font-family:inherit}.field textarea{resize:vertical}.recipient-list{list-style:none;margin:0;padding:0}.recipient-list li{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:var(--space-1) 0;border-bottom:1px solid var(--color-line)}.field select option,.year-select option{background:var(--color-bg);color:var(--color-text)}.select{position:relative}.select__trigger{width:100%;display:flex;align-items:center;gap:var(--space-2);padding:8px 10px;border:1px solid var(--color-line);border-radius:var(--radius);background:var(--color-input-bg);color:var(--color-text);font:inherit;font-size:.95rem;text-align:left;cursor:pointer}.select__trigger:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.select__trigger.select__search{width:100%;min-width:0;box-sizing:border-box}.select__search{cursor:text}.select__empty{padding:7px 10px;color:var(--color-muted);font-size:.95rem}.select__value{flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.select__chevron{color:var(--color-muted);font-size:.7rem}.select__list{position:absolute;z-index:60;top:calc(100% + 4px);left:0;right:50%;transform:translate(50%);max-height:220px;overflow-y:auto;margin:0;padding:var(--space-1);list-style:none;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);box-shadow:var(--shadow)}.select__option{padding:7px 10px;border-radius:8px;font-size:.95rem;cursor:pointer}.select__option.is-active{background:var(--color-primary-soft)}.select__option[aria-selected=true]{font-weight:600}.upload-button{cursor:pointer;display:inline-block}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--space-3);align-items:end}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f121873;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:var(--space-4);z-index:50}.modal{background:var(--color-surface);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow);width:100%;max-width:620px;max-height:90vh;overflow:auto}.modal--wide{max-width:800px}.modal__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--color-line)}.modal__title{margin:0;font-size:1.15rem}.modal__subtitle{margin:var(--space-1) 0 0;color:var(--color-muted);font-size:.88rem}.modal__close{border:none;background:none;font-size:1.4rem;line-height:1;cursor:pointer;color:var(--color-muted)}.modal__body{padding:var(--space-6)}.employee-detail-nav{display:flex;justify-content:flex-end;gap:var(--space-2);margin-bottom:var(--space-4)}.employee-detail-nav .btn{min-width:2rem;padding-inline:var(--space-3);font-size:1.1rem;line-height:1}.push-right{margin-left:auto}.dash-head__title{display:flex;align-items:center;gap:var(--space-2);margin:0 0 var(--space-1);font-size:1.25rem;letter-spacing:-.03em}.live-dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:#10b981;box-shadow:0 0 8px #10b981;animation:pulse 1.6s infinite}@keyframes pulse{50%{opacity:.35}}.tabular{font-variant-numeric:tabular-nums}.dash-canvas{position:relative;margin-inline:calc(-1 * var(--space-8))}.dash-stacked{display:flex;flex-direction:column;gap:var(--space-4);margin-inline:var(--space-8)}.dash-canvas.is-editing{background-image:radial-gradient(circle,var(--color-line) 1.5px,transparent 1.5px);background-size:var(--grid-col-step) var(--grid-row-step);background-position:calc(var(--grid-col-step) / -2) 0;border-radius:var(--radius)}.dash-slot{position:relative;height:100%;min-height:0;border-radius:var(--radius-lg);--color-primary: var(--accent-base);--color-primary-dark: color-mix(in srgb, var(--accent-base) 85%, #000);--color-primary-soft: color-mix(in srgb, var(--accent-base) 12%, transparent)}.dash-slot>.card{box-sizing:border-box;display:flex;flex-direction:column;height:100%;max-height:100%;border-radius:inherit;overflow:auto;padding:var(--space-6);scrollbar-gutter:stable both-edges}.dash-slot>.card.team-kpi-widget,.dash-slot>.card.greeting-widget,.dash-slot>.card.calendar-widget{overflow-y:hidden}.dash-slot>.card>:last-child{margin-bottom:0}.dash-stacked .dash-slot>.card{height:auto;overflow:visible}.dash-canvas.is-editing .dash-slot{cursor:grab}.dash-canvas.is-editing .dash-slot:active{cursor:grabbing}.dash-canvas.is-editing .dash-slot>.card{outline:1px dashed var(--color-primary);outline-offset:2px}.dash-slot__tools{position:absolute;top:6px;right:6px;z-index:3;display:flex;gap:4px}.dash-slot__tool{display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:1px solid var(--color-line);border-radius:50%;background:var(--color-btn-bg);color:var(--color-btn-fg);font-size:1rem;line-height:1;cursor:pointer;overflow:hidden}.dash-slot__accent{padding:0;border-color:var(--color-btn-fg)}.dash-slot__accent input[type=color]{width:200%;height:200%;margin:-50%;padding:0;border:0;background:none;cursor:pointer}.dash-tabs{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:center}.tabs__add{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border:0;border-radius:999px;background:transparent;color:var(--color-muted);font-family:inherit;font-size:1.15rem;line-height:1;cursor:pointer}.tabs__add:hover{background:var(--color-primary-soft);color:var(--color-primary)}.dash-choices{display:grid;gap:var(--space-2)}.dash-choice{display:flex;gap:var(--space-3);align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);border:1px solid var(--color-line);border-radius:var(--radius);background:var(--color-surface);color:inherit;font-family:inherit;font-size:.9rem;text-align:left;cursor:pointer}.dash-choice:hover{border-color:var(--color-primary)}.dash-choice.is-active{border-color:var(--color-primary);background:var(--color-primary-soft)}.dash-choice__name{font-weight:600}.dash-editbar{display:flex;flex-wrap:wrap;gap:var(--space-6);align-items:center;padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface)}.dash-editbar__group{display:flex;gap:var(--space-2);align-items:center}.dash-editbar__label{font-size:.82rem;font-weight:700;color:var(--color-muted)}.accent-dot{width:22px;height:22px;padding:0;border:2px solid transparent;border-radius:50%;cursor:pointer}.accent-dot.is-active{border-color:var(--color-text)}.accent-picker{position:relative;display:inline-flex;width:22px;height:22px;border-radius:50%;cursor:pointer;background:conic-gradient(red,#ff0,#0f0,#0ff,#00f,#f0f,red)}.accent-picker input[type=color]{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;padding:0;border:none;border-radius:50%;opacity:0;cursor:pointer}.dash-editbar__hint{font-size:.8rem}.widget-gallery{display:flex;flex-direction:column;gap:var(--space-4)}.widget-gallery__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:var(--space-4);max-height:55vh;overflow-y:auto;padding-right:var(--space-2)}.widget-card{display:flex;flex-direction:column;gap:var(--space-2);padding:0;border:none;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.widget-card__preview{display:flex;flex-direction:column;gap:8px;padding:var(--space-3);border:1px solid var(--color-line);border-radius:var(--radius-lg);background:var(--color-surface);overflow:hidden}.widget-card:hover:not(:disabled) .widget-card__preview{border-color:var(--color-primary)}.widget-card__head{font-size:.8rem;font-weight:600;color:var(--color-text)}.widget-card__bar{height:8px;border-radius:4px;background:var(--color-primary-soft)}.widget-card__bar--short{width:60%}.widget-card__foot{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.widget-card__title{font-size:.9rem}.widget-card__action{display:flex;align-items:center;justify-content:center;width:22px;height:22px;flex:0 0 auto;border-radius:50%;background:var(--color-primary);color:#fff;font-size:.9rem;line-height:1}.widget-card:disabled{cursor:default}.widget-card.is-placed .widget-card__preview,.widget-card.is-placed .widget-card__title{opacity:.45}.widget-card.is-placed .widget-card__action{background:transparent;border:1px solid var(--color-primary);color:var(--color-primary)}.dash-canvas .react-grid-item.react-grid-placeholder{border-radius:var(--radius-lg);background:var(--color-primary);opacity:.16}.dash-canvas.is-editing .react-grid-item>.react-resizable-handle{width:26px;height:26px;opacity:1;z-index:3}.dash-canvas.is-editing .react-grid-item>.react-resizable-handle:after{right:6px;bottom:6px;width:10px;height:10px;border-right:3px solid var(--color-primary);border-bottom:3px solid var(--color-primary);border-bottom-right-radius:3px}.dash-canvas:not(.is-editing) .react-grid-item>.react-resizable-handle{display:none}.card-label{display:flex;align-items:center;gap:var(--space-2);margin:0 0 var(--space-4);font-size:.82rem;font-weight:700;color:var(--color-muted)}.card-field{margin-top:var(--space-3)}.card-actions{display:flex;gap:var(--space-2);margin-top:var(--space-4)}.year-select{padding:3px 8px;border:1px solid var(--color-line);border-radius:999px;background:var(--color-input-bg);color:var(--color-text);font:600 .72rem inherit;font-family:inherit;cursor:pointer}.dash-timer{font-size:2.4rem;font-weight:800;letter-spacing:-.03em;line-height:1.1}.dash-sub{margin:var(--space-1) 0 0;font-size:.8rem;color:var(--color-muted)}.meter{height:6px;border-radius:999px;background:var(--color-line);margin-top:var(--space-3);overflow:hidden}.meter i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--color-primary),color-mix(in srgb,var(--accent-base) 55%,#fff))}.entry-list{margin-top:var(--space-3);display:flex;flex-direction:column;gap:var(--space-2)}.entry-row{display:flex;align-items:center;gap:var(--space-3)}.entry-row__main{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.entry-row__main--clickable{padding:0;border:none;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.entry-row__title{font-size:.85rem;font-weight:600}.entry-row__detail{font-size:.78rem;color:var(--color-muted)}.entry-row__meta{font-size:.8rem;color:var(--color-muted);white-space:nowrap}.dash-cal{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;text-align:center;font-size:.78rem}.dash-cal__head{padding:4px 0;font-size:.68rem;font-weight:700;color:var(--color-muted)}.dash-cal__day{padding:6px 0;border-radius:var(--radius)}.dash-cal__day.is-mute{color:var(--color-muted);opacity:.45}.dash-cal__day.is-today{background:var(--nav-active-bg);color:var(--nav-active-fg);font-weight:800}.dash-cal__day.is-absent{background:var(--color-success-bg);color:var(--color-success-fg);font-weight:700}.dash-cal__day.is-pending{background:var(--color-warning-bg);color:var(--color-warning-fg);font-weight:700}.cal-nav{display:flex;gap:var(--space-1)}.cal-legend{display:flex;gap:var(--space-4);margin-top:var(--space-3);font-size:.75rem;color:var(--color-muted)}.cal-legend__dot{display:inline-block;width:10px;height:10px;border-radius:4px;margin-right:5px;vertical-align:-1px}.cal-legend__dot--today{background:var(--nav-active-bg)}.cal-legend__dot--absent{background:var(--color-success-bg);border:1px solid var(--color-success-fg)}.cal-legend__dot--pending{background:var(--color-warning-bg);border:1px solid var(--color-warning-fg)}.cal-legend__dot--bar{background:var(--color-primary)}.cal-legend__dot--weekend{background:var(--color-line)}.next-vacation-strip{--next-vacation-index: 0;display:flex;gap:var(--space-3);overflow:hidden}.next-vacation{flex:0 0 300px;max-width:100%;display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-4);border:1px solid var(--color-line);border-radius:var(--radius);transform:translate(calc(var(--next-vacation-index) * -1 * (100% + var(--space-3))));transition:transform .2s ease}.next-vacation__row{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:var(--space-3)}.next-vacation__range{flex:1 1 120px;line-height:1.35}.vacation-statistic{--donut-available: var(--color-primary);--donut-used: color-mix(in srgb, var(--color-muted) 30%, var(--color-surface));--donut-used-carry-over: var(--color-muted);display:flex;flex-direction:column;align-items:center;gap:var(--space-3)}.vacation-statistic__donut{width:min(100%,220px);height:auto}.vacation-statistic__ring{fill:none;stroke-width:18}.vacation-statistic__ring--available{stroke:var(--donut-available)}.vacation-statistic__ring--used{stroke:var(--donut-used)}.vacation-statistic__ring--used-carry-over{stroke:var(--donut-used-carry-over)}.vacation-statistic__value{fill:var(--color-text);font-size:7px;font-weight:700;text-anchor:middle;dominant-baseline:central}.vacation-statistic__legend{flex-direction:column;gap:var(--space-1);margin-top:0}.vacation-statistic__dot--available{background:var(--donut-available)}.vacation-statistic__dot--used{background:var(--donut-used)}.vacation-statistic__dot--used-carry-over{background:var(--donut-used-carry-over)}.widget-pill{padding:3px 8px;border:1px solid var(--color-line);border-radius:999px;background:var(--color-input-bg);color:var(--color-text);font:600 .72rem inherit;font-family:inherit;cursor:pointer;-webkit-user-select:none;user-select:none}.table-settings{display:flex;flex-direction:column;gap:var(--space-4);margin-bottom:var(--space-3);padding:var(--space-3);border:1px solid var(--color-line);border-radius:var(--radius)}.table-settings__group{display:flex;flex-direction:column;gap:var(--space-2)}.table-settings .tabs{flex-wrap:wrap;align-self:flex-start;border-radius:var(--radius)}.table-settings__label{color:var(--color-muted);font-size:.78rem;font-weight:600}.table-settings__columns{display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-3)}.table-settings__column{display:flex;align-items:center;gap:var(--space-1);font-size:.9rem;cursor:pointer}.table-filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--space-2);margin-bottom:var(--space-3)}.table-filters .field{flex:1 1 140px;min-width:140px;margin:0}.table-filters .btn{margin-bottom:2px}.table-multi-filter{position:relative}.table-multi-filter__box{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1);min-height:38px;padding:5px 8px;border:1px solid var(--color-line);border-radius:var(--radius);background:var(--color-input-bg)}.table-multi-filter__box:focus-within{outline:2px solid var(--color-primary);outline-offset:2px}.table-multi-filter__box input{flex:1 1 90px;min-width:80px;padding:3px 2px;border:0;background:transparent;outline:0}.table-multi-filter__chip{display:inline-flex;align-items:center;gap:var(--space-1);max-width:180px;padding:3px 7px;border-radius:999px;background:var(--color-primary-soft);color:var(--color-primary-dark);font-size:.82rem;font-weight:700}.table-multi-filter__remove{display:inline-grid;place-items:center;width:18px;height:18px;padding:0;border:0;border-radius:50%;background:transparent;color:inherit;font:inherit;line-height:1;cursor:pointer}.table-multi-filter__remove:hover{background:var(--color-line)}.table-multi-filter__suggestions{position:absolute;z-index:45;top:calc(100% + 4px);left:0;right:0;display:flex;flex-direction:column;padding:var(--space-1);border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);box-shadow:var(--shadow)}.table-multi-filter__suggestion{padding:7px 10px;border:0;border-radius:8px;background:transparent;color:var(--color-text);font:inherit;text-align:left;cursor:pointer}.table-multi-filter__suggestion:hover,.table-multi-filter__suggestion:focus-visible,.table-multi-filter__suggestion.is-active{background:var(--color-primary-soft);outline:0}.table-multi-filter__empty{padding:7px 10px;color:var(--color-muted);font-size:.95rem}.table-widget__scroll{overflow-x:auto}.table-widget__scroll .table th{background:var(--color-input-bg);white-space:nowrap}.table-widget__scroll .table td{white-space:nowrap;vertical-align:middle}.holiday-widget .toolbar,.project-widget .toolbar{margin-bottom:var(--space-3)}.dash-item--front{z-index:2}.dash-slot>.card.quick-action{padding:0;border-radius:var(--radius);overflow:hidden;scrollbar-gutter:auto;--color-btn-bg: var(--accent-base);--color-btn-bg-hover: color-mix(in srgb, var(--accent-base) 85%, #000)}[data-theme=dark] .dash-slot>.card.quick-action{--color-btn-bg: color-mix(in srgb, var(--accent-base) 85%, #fff);--color-btn-bg-hover: color-mix(in srgb, var(--accent-base) 65%, #fff)}.quick-action__button.btn--secondary{color:var(--color-primary);border-color:var(--color-primary)}.quick-action__button{flex:1;display:flex;align-items:center;justify-content:center;gap:var(--space-2);width:100%;border-radius:0}.quick-action__label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.quick-action-settings{display:flex;flex-direction:column;gap:var(--space-3)}.icon-picker{display:flex;flex-direction:column;gap:var(--space-2)}.icon-picker__grid{display:flex;flex-wrap:wrap;gap:var(--space-1);max-height:240px;overflow-y:auto}.icon-picker__icon{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid var(--color-line);border-radius:var(--radius);background:var(--color-input-bg);color:var(--color-text);cursor:pointer}.icon-picker__icon:hover{background:var(--color-primary-soft)}.icon-picker__icon.is-active{border-color:var(--color-primary);color:var(--color-primary)}.icon-picker__none{font-size:1.1rem;color:var(--color-muted)}.icon-picker__current{font-size:.8rem}.teamcal-nav{display:flex;align-items:center;gap:var(--space-2)}.monthpicker{position:relative}.monthpicker__toggle{min-width:150px;padding:8px 12px;border:none;border-radius:var(--radius);background:transparent;color:var(--color-text);text-align:center;font-weight:700;font-size:.95rem;font-family:inherit;cursor:pointer}.monthpicker__toggle:hover{background:var(--color-primary-soft)}.monthpicker__panel{position:absolute;left:50%;top:calc(100% + 8px);transform:translate(-50%);z-index:40;width:250px;padding:var(--space-4);background:var(--color-surface);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow)}.monthpicker__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-3);font-weight:800}.monthpicker__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.monthpicker__month{padding:9px 0;border:none;border-radius:9px;background:transparent;color:var(--color-text);font-weight:600;font-size:.85rem;font-family:inherit;cursor:pointer}.monthpicker__month:hover{background:var(--color-primary-soft)}.monthpicker__month.is-active{background:var(--nav-active-bg);color:var(--nav-active-fg)}.teamcal-search{padding:9px 14px;border:1px solid var(--color-line);border-radius:999px;background:var(--color-input-bg);color:var(--color-text);font-size:.9rem;font-family:inherit;min-width:220px}.teamcal-scroll{overflow-x:auto}.teamcal{display:grid;min-width:900px;align-items:stretch}.teamcal__row{display:contents}.teamcal__corner{position:sticky;left:0;background:transparent}.teamcal__head{display:flex;flex-direction:column;align-items:center;gap:1px;padding:6px 0;border-bottom:1px solid var(--color-line);font-variant-numeric:tabular-nums}.teamcal__head-day{font-size:.82rem;font-weight:700}.teamcal__head-wd{font-size:.62rem;color:var(--color-muted);text-transform:uppercase}.teamcal__head.is-weekend .teamcal__head-day,.teamcal__head.is-weekend .teamcal__head-wd{color:var(--color-muted);opacity:.6}.teamcal__head.is-today .teamcal__head-day{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--nav-active-bg);color:var(--nav-active-fg)}.teamcal__name{display:flex;align-items:center;gap:var(--space-2);padding:7px 10px 7px 0;border-bottom:1px solid var(--color-line);font-size:.88rem;font-weight:600;white-space:nowrap;overflow:hidden}.teamcal__name-text{overflow:hidden;text-overflow:ellipsis}.teamcal__cell{display:flex;align-items:center;border-bottom:1px solid var(--color-line);min-height:40px}.teamcal__cell.is-weekend{background:var(--color-line);background:color-mix(in srgb,var(--color-line) 45%,transparent)}.teamcal__bar{height:16px;width:100%;background:var(--color-primary)}.teamcal__bar--single{border-radius:999px}.teamcal__bar--start{border-radius:999px 0 0 999px}.teamcal__bar--end{border-radius:0 999px 999px 0}.teamcal-empty{margin:var(--space-4) 0 0}.usermenu{position:relative}.usermenu__avatar{width:36px;height:36px;border-radius:50%;border:none;cursor:pointer;display:grid;place-items:center;font:800 .72rem inherit;font-family:inherit;color:#fff;background:linear-gradient(135deg,var(--color-primary),#2dd4bf)}.backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:39;border:none;background:transparent;cursor:default}.usermenu__list{position:absolute;right:0;top:calc(100% + 8px);z-index:40;min-width:180px;display:flex;flex-direction:column;padding:var(--space-2);background:var(--color-surface);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow)}.usermenu__item{padding:10px 12px;border:none;border-radius:8px;background:transparent;color:var(--color-text);font:600 .88rem inherit;font-family:inherit;text-align:left;cursor:pointer}.usermenu__item:hover:enabled{background:var(--color-primary-soft)}.usermenu__item:disabled{color:var(--color-muted);opacity:.6;cursor:not-allowed}.table--clickable tbody tr{cursor:pointer;transition:background .12s ease}.table--clickable tbody tr:hover,.table--clickable tbody tr:focus-visible{background:var(--color-primary-soft);outline:none}.table--clickable tbody tr.is-selected{background:var(--color-primary-soft);box-shadow:inset 3px 0 0 var(--color-primary)}.cell-name{display:inline-flex;align-items:center;gap:var(--space-2);font-weight:600}.row-actions{display:flex;gap:var(--space-2);justify-content:flex-end}.tab-panel{margin-top:var(--space-6)}.tabs{display:inline-flex;gap:var(--space-1);padding:var(--space-1);border:1px solid var(--color-line);border-radius:999px;background:var(--color-input-bg)}.tabs__tab{border:0;border-radius:999px;padding:var(--space-2) var(--space-4);background:transparent;color:var(--color-muted);font-family:inherit;font-size:.85rem;font-weight:600;cursor:pointer}.tabs__tab.is-active{background:var(--nav-active-bg);color:var(--nav-active-fg)}.week-nav{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.week-nav__label{font-weight:600;font-size:.9rem}.day-row{padding:var(--space-3) 0;border-bottom:1px solid var(--color-line)}.day-row__head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3);font-size:.92rem}.day-row__entries{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-2)}.chip{padding:2px var(--space-2);border-radius:999px;background:var(--color-primary-soft);color:var(--color-primary-dark);font-size:.78rem;font-weight:600}.entry-line{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.toast-viewport{position:fixed;bottom:var(--space-4);left:var(--space-4);z-index:2000;display:flex;flex-direction:column;gap:var(--space-2);width:min(380px,calc(100vw - 2 * var(--space-4)));pointer-events:none}.toast{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3);padding:12px 14px;border:1px solid var(--color-line);border-radius:var(--radius);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);pointer-events:auto;animation:toast-enter .18s ease-out}.toast--success{background:var(--color-success-bg);color:var(--color-success-fg)}.toast--error{background:var(--color-error-bg);color:var(--color-error-fg)}.toast--warning{background:var(--color-warning-bg);color:var(--color-warning-fg)}.toast--info{background:var(--color-info-bg);color:var(--color-info-fg)}.toast__close{padding:0;border:0;background:transparent;color:inherit;font:inherit;font-size:1.25rem;line-height:1;cursor:pointer}@keyframes toast-enter{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@media(max-width:600px){.toast-viewport{top:var(--space-2);right:var(--space-2);left:var(--space-2);width:auto}}@media(prefers-reduced-motion:reduce){.toast{animation:none}}.dash-controls{position:fixed;right:var(--space-8);bottom:var(--space-6);z-index:5;display:flex;flex-direction:column;gap:var(--space-3);align-items:flex-end;max-width:min(360px,calc(100vw - 2 * var(--space-8)))}.dash-controls__drag{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;margin-bottom:-4px;padding:0;border:0;background:transparent;color:var(--color-muted);cursor:grab;touch-action:none}.dash-controls__drag:active{cursor:grabbing}.dash-controls .dash-editbar{position:relative;width:max-content;max-width:100%;flex-direction:column;align-items:flex-end;gap:var(--space-3);padding:var(--space-2) var(--space-3)}.dash-controls .dash-editbar__group{flex-shrink:0}.dash-controls .dash-editbar__group:first-child{max-width:150px;flex-wrap:wrap;justify-content:flex-end;row-gap:8px;column-gap:4px}.dash-controls .dash-editbar__group:first-child .dash-editbar__label{flex-basis:100%;padding-left:26px;text-align:right}.dash-controls .accent-dot,.dash-controls .accent-picker{width:18px;height:18px}.dash-controls .accent-dot{border-width:1px}.dash-controls .dash-editbar__hint{position:absolute;top:var(--space-2);left:var(--space-3);display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;color:var(--color-muted);cursor:default}.dash-controls .dash-editbar .dash-controls__drag{position:absolute;top:var(--space-2);left:38px;margin:0}.dash-controls .dash-editbar__hint:after{position:absolute;top:auto;bottom:calc(100% + 6px);right:50%;transform:translate(50%);z-index:10;display:none;width:max-content;max-width:min(280px,calc(100vw - 24px));padding:6px 8px;border:1px solid var(--color-line);border-radius:var(--radius);background:var(--color-bg);color:var(--color-text);font-size:.78rem;line-height:1.35;text-align:left;white-space:normal;content:attr(data-tooltip);box-shadow:var(--shadow)}.dash-controls .dash-editbar__hint:hover:after,.dash-controls .dash-editbar__hint:focus-visible:after{display:block}.dash-controls .dash-editbar{backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:var(--shadow)}.dash-canvas{padding-bottom:96px}.react-grid-layout{position:relative;transition:height .2s ease}.react-grid-item{transition:all .2s ease;transition-property:left,top,width,height}.react-grid-item img{pointer-events:none;-webkit-user-select:none;user-select:none}.react-grid-item.cssTransforms{transition-property:transform,width,height}.react-grid-item.resizing{transition:none;z-index:1;will-change:width,height}.react-grid-item.react-draggable-dragging{transition:none;z-index:3;will-change:transform}.react-grid-item.dropping{visibility:hidden}.react-grid-item.react-grid-placeholder{background:red;opacity:.2;transition-duration:.1s;z-index:2;-webkit-user-select:none;user-select:none}.react-grid-item.react-grid-placeholder.placeholder-resizing{transition:none}.react-grid-item>.react-resizable-handle{position:absolute;width:20px;height:20px;opacity:0}.react-grid-item:hover>.react-resizable-handle{opacity:1}.react-grid-item>.react-resizable-handle:after{content:"";position:absolute;right:3px;bottom:3px;width:5px;height:5px;border-right:2px solid rgba(0,0,0,.4);border-bottom:2px solid rgba(0,0,0,.4)}.react-resizable-hide>.react-resizable-handle{display:none}.react-grid-item>.react-resizable-handle.react-resizable-handle-sw{bottom:0;left:0;cursor:sw-resize;transform:rotate(90deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-se{bottom:0;right:0;cursor:se-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-nw{top:0;left:0;cursor:nw-resize;transform:rotate(180deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-ne{top:0;right:0;cursor:ne-resize;transform:rotate(270deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-w,.react-grid-item>.react-resizable-handle.react-resizable-handle-e{top:50%;margin-top:-10px;cursor:ew-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-n,.react-grid-item>.react-resizable-handle.react-resizable-handle-s{left:50%;margin-left:-10px;cursor:ns-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}
