:root,[data-theme=light]{--color-accent:#c50;--color-accent-hover:#e66000;--color-accent-bg:#cc55001a;--color-text:#1e293b;--color-text-muted:#64748b;--color-bg:#fff;--color-surface:#f8fafc;--color-surface-hover:#f1f5f9;--color-positive:#16a34a;--color-positive-bg:#16a34a1a;--color-danger:#dc2626;--color-danger-bg:#dc26261a;--color-border:#e2e8f0;--color-header-bg:#fff;--color-sidebar-bg:#f8fafc;--color-input-bg:#fff;--color-shadow:#0f172a14;--color-overlay:#0f172a80;--font-sans:system-ui, "Segoe UI", Roboto, sans-serif;--font-mono:ui-monospace, Consolas, monospace;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--sidebar-width:220px;--header-height:56px}[data-theme=dark]{--color-accent:#e66000;--color-accent-hover:#ff781e;--color-accent-bg:#e6600026;--color-text:#f8fafc;--color-text-muted:#94a3b8;--color-bg:#0f172a;--color-surface:#1e293b;--color-surface-hover:#334155;--color-positive:#22c55e;--color-positive-bg:#22c55e26;--color-danger:#f87171;--color-danger-bg:#f8717126;--color-border:#334155;--color-header-bg:#1e293b;--color-sidebar-bg:#0f172a;--color-input-bg:#1e293b;--color-shadow:#0000004d;--color-overlay:#0009}*,:before,:after{box-sizing:border-box}body{font-family:var(--font-sans);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-size:16px;line-height:1.5}#root{min-height:100vh}h1,h2,h3,h4{font-family:var(--font-sans);color:var(--color-text)}a{color:var(--color-accent)}button,input,select,textarea{font-family:inherit}.ui-btn{font-size:.875rem;font-weight:600;font-family:var(--font-sans);border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:.5rem;padding:.5rem 1rem;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.ui-btn:disabled{opacity:.55;cursor:not-allowed}.ui-btn--primary{background:var(--color-accent);color:#fff}.ui-btn--primary:hover:not(:disabled){background:var(--color-accent-hover)}.ui-btn--secondary{color:var(--color-text);border-color:var(--color-border);background:0 0}.ui-btn--secondary:hover:not(:disabled){background:var(--color-surface-hover)}.ui-btn--danger{background:var(--color-danger);color:#fff}.ui-btn--danger:hover:not(:disabled){opacity:.9}.ui-btn--ghost{color:var(--color-text-muted);background:0 0;border-color:#0000}.ui-btn--ghost:hover:not(:disabled){background:var(--color-surface-hover);color:var(--color-text)}.ui-btn--sm{padding:.25rem .625rem;font-size:.8125rem}.ui-btn--icon{min-width:2rem;min-height:2rem;padding:.375rem}.ui-input,.ui-select,.ui-textarea{width:100%;font-size:.875rem;font-family:var(--font-sans);color:var(--color-text);background:var(--color-input-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);box-sizing:border-box;padding:.5rem .75rem;transition:border-color .15s}.ui-input:focus,.ui-select:focus,.ui-textarea:focus{border-color:var(--color-accent);outline:none}.ui-input:disabled,.ui-select:disabled,.ui-textarea:disabled{opacity:.6;cursor:not-allowed}.ui-textarea{resize:vertical;min-height:4rem}.ui-label{color:var(--color-text);margin-bottom:.375rem;font-size:.8125rem;font-weight:500;display:block}.ui-field{margin-bottom:1rem}.ui-field:last-child{margin-bottom:0}.ui-card{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.25rem}.ui-card__title{color:var(--color-text);margin:0 0 1rem;font-size:1rem;font-weight:600}.ui-card__header{margin-bottom:1rem}.ui-card__toggle{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:.5rem;padding:0;display:flex}.ui-card__toggle:hover .ui-card__title--toggle{color:var(--color-accent)}.ui-card__title--toggle{margin:0}.ui-card__chevron{color:var(--color-text-muted);font-size:.75rem;transition:transform .15s;display:inline-block}.ui-card__chevron--collapsed{transform:rotate(-90deg)}.ui-card__header:last-child{margin-bottom:0}.ui-card--danger{border-color:var(--color-danger);background:var(--color-danger-bg)}.ui-card--danger .ui-card__title{color:var(--color-danger)}.ui-flash{border-radius:var(--radius-md);border:1px solid var(--color-positive);background:var(--color-positive-bg);color:var(--color-text);justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;padding:.75rem 1rem;font-size:.875rem;display:flex}.ui-table-wrap{border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow-x:auto}.ui-table{border-collapse:collapse;width:100%;font-size:.875rem}.ui-table th{text-align:left;background:var(--color-surface);color:var(--color-text);border-bottom:1px solid var(--color-border);white-space:nowrap;padding:.75rem 1rem;font-weight:600}.ui-table td{border-bottom:1px solid var(--color-border);color:var(--color-text);padding:.75rem 1rem}.ui-table tbody tr:hover{background:var(--color-surface)}.ui-table tbody tr:last-child td{border-bottom:none}.ui-table tr.ui-table__row--danger td{background:var(--color-danger-bg)}.ui-table tr.ui-table__row--warning td{background:var(--color-danger-bg);color:var(--color-danger)}.ui-table__link--warning{color:var(--color-danger);font-weight:600;text-decoration:none}.ui-table__link--warning:hover{text-decoration:underline}.ui-table--pay-period .ui-table__col-group-start{border-left:2px solid var(--color-border)}.ui-table--pay-period .ui-table__col-group--current{border-left:2px solid var(--color-border);background:color-mix(in srgb, var(--color-primary) 8%, var(--color-surface))}.ui-table--pay-period td.ui-table__row--danger{background:var(--color-danger-bg)}.ui-badge{background:var(--color-surface);color:var(--color-text-muted);border:1px solid var(--color-border);border-radius:999px;align-items:center;padding:.125rem .5rem;font-size:.75rem;font-weight:600;display:inline-flex}.ui-badge--positive{background:var(--color-positive-bg);color:var(--color-positive);border-color:#0000}.ui-badge--danger{background:var(--color-danger-bg);color:var(--color-danger);border-color:#0000}.ui-badge--accent{background:var(--color-accent-bg);color:var(--color-accent);border-color:#0000}.ui-alert{border-radius:var(--radius-md);margin-bottom:1rem;padding:.75rem 1rem;font-size:.875rem}.ui-alert--error{background:var(--color-danger-bg);color:var(--color-danger);border:1px solid var(--color-danger)}.ui-alert--success{background:var(--color-positive-bg);color:var(--color-positive);border:1px solid var(--color-positive)}.ui-empty{text-align:center;color:var(--color-text-muted);padding:3rem 1.5rem}.ui-empty__title{color:var(--color-text);margin:0 0 .5rem;font-size:1rem;font-weight:600}.ui-empty__desc{margin:0 0 1.25rem;font-size:.875rem}.ui-loading{color:var(--color-text-muted);justify-content:center;align-items:center;padding:3rem;font-size:.875rem;display:flex}.ui-page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.ui-page-header h1{color:var(--color-text);margin:0;font-size:1.5rem;font-weight:600}.ui-page-header__filters{width:100%}.ui-date-range-filter{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:end;gap:.5rem .75rem;display:grid}.ui-date-range-filter .ui-field{min-width:0;margin-bottom:0}.ui-date-range-filter .ui-input[type=date]{min-width:0}.ui-date-range-filter__action{grid-column:1/-1}.ui-date-range-filter__action .ui-btn{width:100%}@media (width>=640px){.ui-page-header__filters{width:auto}.ui-date-range-filter{grid-template-columns:minmax(9rem,1fr) minmax(9rem,1fr) auto}.ui-date-range-filter__action{grid-column:auto}.ui-date-range-filter__action .ui-btn{width:auto}}.ui-stat-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-bottom:1.5rem;display:grid}.ui-stat-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1rem 1.25rem}.ui-stat-card__label{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.375rem;font-size:.75rem;font-weight:500}.ui-stat-card__value{color:var(--color-text);font-size:1.5rem;font-weight:700}.ui-stat-card__value--positive{color:var(--color-positive)}.ui-stat-card__value--danger{color:var(--color-danger)}.ui-dropdown{display:inline-block;position:relative}.ui-dropdown__menu{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);min-width:180px;box-shadow:0 4px 12px var(--color-shadow);z-index:200;padding:.25rem;position:absolute;top:calc(100% + 4px);right:0}.ui-dropdown__item{text-align:left;width:100%;color:var(--color-text);border-radius:var(--radius-sm);cursor:pointer;font-size:.875rem;font-family:var(--font-sans);background:0 0;border:none;padding:.5rem .75rem;display:block}.ui-dropdown__item:hover{background:var(--color-surface-hover)}.ui-dropdown__item--active{background:var(--color-accent-bg);color:var(--color-accent);font-weight:600}.ui-dropdown__divider{background:var(--color-border);height:1px;margin:.25rem 0}.ui-dropdown__label{color:var(--color-text-muted);padding:.375rem .75rem;font-size:.75rem;font-weight:500}.ui-modal-overlay{background:var(--color-overlay);z-index:1000;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.ui-modal{background:var(--color-bg);border-radius:var(--radius-lg);border:1px solid var(--color-border);width:100%;max-width:520px;max-height:90vh;box-shadow:0 20px 40px var(--color-shadow);overflow-y:auto}.ui-modal--lg{max-width:680px}.ui-modal__header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;display:flex}.ui-modal__title{color:var(--color-text);margin:0;font-size:1.125rem;font-weight:600}.ui-modal__body{padding:1.5rem}.ui-modal__footer{border-top:1px solid var(--color-border);justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;display:flex}.ui-checkbox-row{color:var(--color-text);cursor:pointer;align-items:center;gap:.5rem;font-size:.875rem;display:flex}.ui-checkbox-row input{accent-color:var(--color-accent)}.ui-actions{gap:.5rem;display:flex}.ui-invite-inbox__item{border-bottom:1px solid var(--color-border);min-width:16rem;padding:.75rem 1rem}.ui-invite-inbox__meta{flex-direction:column;gap:.25rem;margin-bottom:.5rem;font-size:.875rem;display:flex}.ui-invite-inbox__actions{gap:.5rem;display:flex}.app-shell{background:var(--color-bg);flex-direction:column;min-height:100vh;display:flex}.app-shell__body{padding-top:var(--header-height);flex:1;display:flex}.app-header{height:var(--header-height);background:var(--color-header-bg);border-bottom:1px solid var(--color-border);z-index:100;justify-content:space-between;align-items:center;padding:0 1.25rem;display:flex;position:fixed;top:0;left:0;right:0}.app-header__left{align-items:center;gap:.75rem;display:flex}.app-header__logo{color:var(--color-accent);font-size:1.125rem;font-weight:700;text-decoration:none}.app-header__right{align-items:center;gap:.5rem;display:flex}.app-sidebar{top:var(--header-height);width:var(--sidebar-width);height:calc(100vh - var(--header-height));background:var(--color-sidebar-bg);border-right:1px solid var(--color-border);z-index:50;padding:1rem 0;position:fixed;left:0;overflow-y:auto}.app-sidebar__section{margin-bottom:1.25rem}.app-sidebar__section-title{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);margin:0 0 .375rem;padding:0 1rem;font-size:.6875rem;font-weight:700}.app-sidebar__link{color:var(--color-text-muted);border-radius:var(--radius-md);justify-content:space-between;align-items:center;gap:.5rem;margin:0 .5rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;text-decoration:none;transition:background .15s,color .15s;display:flex}.app-sidebar__link-label{flex:1}.app-sidebar__link--alert:not(.app-sidebar__link--active){background:var(--color-danger-bg);color:var(--color-danger);font-weight:600}.app-sidebar__link--alert:not(.app-sidebar__link--active):hover{background:var(--color-danger-bg);color:var(--color-danger)}.app-sidebar__link:hover{background:var(--color-surface-hover);color:var(--color-text)}.app-sidebar__link--active{background:var(--color-accent-bg);color:var(--color-accent);font-weight:600}.app-main{margin-left:var(--sidebar-width);flex:1;min-width:0;padding:1.5rem 2rem}.profile-prompt{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:1rem;min-height:60vh;display:flex}.profile-prompt h2{color:var(--color-text);margin:0}.profile-prompt p{color:var(--color-text-muted);margin:0}.profile-create-form{gap:.75rem;width:100%;max-width:400px;display:flex}.profile-create-form .ui-input{flex:1}@media (width<=768px){.app-sidebar{border-right:none;border-bottom:1px solid var(--color-border);width:100%;height:auto;padding:.5rem;display:flex;position:relative;top:0;overflow-x:auto}.app-sidebar__section{align-items:center;margin-bottom:0;margin-right:1rem;display:flex}.app-sidebar__section-title{display:none}.app-sidebar__link{white-space:nowrap;margin:0 .25rem}.app-shell__body{padding-top:var(--header-height);flex-direction:column}.app-main{margin-left:0;padding:1rem}}.login-page{background:var(--color-surface);min-height:100vh;display:flex}.login-page__brand{background:linear-gradient(135deg, var(--color-accent) 0%, #994000 100%);color:#fff;flex-direction:column;flex:1;justify-content:center;align-items:center;padding:3rem;display:flex}.login-page__brand h1{color:#fff;margin:0 0 .75rem;font-size:2.5rem;font-weight:700}.login-page__brand p{opacity:.9;text-align:center;max-width:320px;font-size:1rem;line-height:1.5}.login-page__form-side{flex:1;justify-content:center;align-items:center;padding:2rem;display:flex}.login-card{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg);width:100%;max-width:400px;box-shadow:0 4px 24px var(--color-shadow);padding:2.5rem}.login-card h2{color:var(--color-text);margin:0 0 .25rem;font-size:1.5rem;font-weight:600}.login-card__subtitle{color:var(--color-text-muted);margin:0 0 1.5rem;font-size:.875rem}.login-card__footer{text-align:center;color:var(--color-text-muted);margin-top:1.5rem;font-size:.875rem}.login-card__footer a{color:var(--color-accent);font-weight:600;text-decoration:none}.login-card__footer a:hover{text-decoration:underline}@media (width<=768px){.login-page{flex-direction:column}.login-page__brand{min-height:auto;padding:2rem}.login-page__brand h1{font-size:1.75rem}}
