:root{--color-background: #f5f6f8;--color-surface: #ffffff;--color-border: #dde1e6;--color-text: #1f2933;--color-text-muted: #616e7c;--color-primary: #1f6f8b;--color-primary-contrast: #ffffff;--color-danger: #b42318;--color-success: #1e7b45;--color-warning: #a15c07;--color-info: #2f5fa7;--color-nav-background: #17313e;--color-nav-text: #e4ecf0;--font-family-base: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-size-small: 0.875rem;--font-size-base: 1rem;--font-size-large: 1.25rem;--font-size-title: 1.625rem;--space-1: 0.25rem;--space-2: 0.5rem;--space-3: 0.75rem;--space-4: 1rem;--space-6: 1.5rem;--space-8: 2rem;--radius: 6px;--shadow-card: 0 1px 2px rgba(15, 23, 42, 0.08)}*,*::before,*::after{box-sizing:border-box}body{margin:0;font-family:var(--font-family-base);font-size:var(--font-size-base);line-height:1.5;color:var(--color-text);background:var(--color-background)}a{color:var(--color-primary)}h1,h2,h3{margin:0 0 var(--space-3);line-height:1.25}h2{font-size:var(--font-size-large)}.app-shell{display:flex;flex-direction:column;min-height:100vh}@media(min-width: 960px){.app-shell{flex-direction:row}}.app-main{flex:1;min-width:0;padding:var(--space-6) var(--space-4)}@media(min-width: 960px){.app-main{padding:var(--space-8)}}.app-nav{display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-4);color:var(--color-nav-text);background:var(--color-nav-background)}@media(min-width: 960px){.app-nav{width:15rem;flex-shrink:0}}.app-nav__header{display:flex;align-items:center;justify-content:space-between}.app-nav__brand{font-size:var(--font-size-large);font-weight:700;color:inherit;text-decoration:none}.app-nav__toggle{padding:var(--space-1) var(--space-3);color:inherit;background:rgba(0,0,0,0);border:1px solid currentColor;border-radius:var(--radius)}@media(min-width: 960px){.app-nav__toggle{display:none}}.app-nav__list{display:none;flex-direction:column;gap:var(--space-1);margin:0;padding:0;list-style:none}@media(min-width: 960px){.app-nav__list{display:flex}}.app-nav__list--open{display:flex}.app-nav__link{display:block;padding:var(--space-2) var(--space-3);color:inherit;text-decoration:none;border-radius:var(--radius)}.app-nav__link:hover{background:hsla(0,0%,100%,.1)}.app-nav__footer{display:flex;flex-direction:column;gap:var(--space-2);margin-top:auto}.app-nav__footer .button--ghost{color:inherit;border-color:currentColor}.page-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-6)}.page-header__title{margin:0;font-size:var(--font-size-title)}.page-header__subtitle{margin:var(--space-1) 0 0;color:var(--color-text-muted)}.card{margin-bottom:var(--space-6);padding:var(--space-6);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-card)}.card__title{margin-bottom:var(--space-4)}.card-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(20rem, 1fr));gap:var(--space-6)}.card-grid .card{margin-bottom:0}.card--narrow{max-width:28rem;margin-inline:auto}.button{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);font:inherit;color:var(--color-text);text-decoration:none;cursor:pointer;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius)}.button:hover{filter:brightness(0.96)}.button--primary{color:var(--color-primary-contrast);background:var(--color-primary);border-color:var(--color-primary)}.button--danger{color:var(--color-primary-contrast);background:var(--color-danger);border-color:var(--color-danger)}.button--ghost{background:rgba(0,0,0,0)}.button--small{padding:var(--space-1) var(--space-2);font-size:var(--font-size-small)}.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);margin-top:var(--space-4)}.toolbar--top{margin-top:0;margin-bottom:var(--space-4)}.inline-form{display:inline}.form-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(16rem, 1fr));gap:var(--space-4)}.form-field{display:flex;flex-direction:column;gap:var(--space-1)}.form-field input:not([type=checkbox]),.form-field select,.form-field textarea{width:100%;padding:var(--space-2);font:inherit;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius)}.form-field textarea{min-height:6rem}.form-field--invalid input,.form-field--invalid select,.form-field--invalid textarea{border-color:var(--color-danger)}.form-field__label{font-weight:600}.form-field__help{margin:0;font-size:var(--font-size-small);color:var(--color-text-muted)}.form-field__error,.form-errors{margin:0;font-size:var(--font-size-small);color:var(--color-danger)}.form-errors{margin-bottom:var(--space-4);padding-left:var(--space-4)}.data-table-wrapper{overflow-x:auto}.data-table{width:100%;border-collapse:collapse}.data-table th,.data-table td{padding:var(--space-2) var(--space-3);text-align:left;vertical-align:top;border-bottom:1px solid var(--color-border)}.data-table th{font-size:var(--font-size-small);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.03em}.data-table__numeric{text-align:right;white-space:nowrap}.data-table__empty{color:var(--color-text-muted);text-align:center}.badge{display:inline-block;padding:0 var(--space-2);font-size:var(--font-size-small);font-weight:600;color:var(--color-text-muted);background:var(--color-background);border:1px solid var(--color-border);border-radius:999px}.badge--success,.status-badge--completed,.status-badge--accepted,.status-badge--paid,.status-badge--done{color:var(--color-success);border-color:var(--color-success)}.badge--warning,.status-badge--in_progress{color:var(--color-warning);border-color:var(--color-warning)}.badge--danger,.status-badge--cancelled,.status-badge--rejected,.status-badge--overdue{color:var(--color-danger);border-color:var(--color-danger)}.badge--info,.status-badge--planned,.status-badge--sent,.status-badge--issued,.status-badge--open{color:var(--color-info);border-color:var(--color-info)}.message-list{margin:0 0 var(--space-6);padding:0;list-style:none}.message{margin-bottom:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--color-surface);border-left:4px solid var(--color-info);border-radius:var(--radius)}.message--success{border-left-color:var(--color-success)}.message--warning{border-left-color:var(--color-warning)}.message--error{border-left-color:var(--color-danger)}.search-bar{width:100%;max-width:24rem;padding:var(--space-2) var(--space-3);font:inherit;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius)}.detail-list{display:grid;grid-template-columns:max-content 1fr;gap:var(--space-2) var(--space-6);margin:0}.detail-list dt{font-weight:600;color:var(--color-text-muted)}.detail-list dd{margin:0}.calendar-grid{display:grid;grid-template-columns:repeat(7, minmax(9rem, 1fr));gap:var(--space-2);overflow-x:auto}.calendar-grid__day{min-height:8rem;padding:var(--space-2);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius)}.calendar-grid__day--today{border-color:var(--color-primary)}.calendar-grid__day-title{margin-bottom:var(--space-2);font-size:var(--font-size-small);font-weight:700;color:var(--color-text-muted)}.calendar-entry{margin-bottom:var(--space-2);padding:var(--space-1) var(--space-2);font-size:var(--font-size-small);background:var(--color-background);border-left:3px solid var(--color-primary);border-radius:var(--radius)}.calendar-entry__time{font-weight:600}.stat-tile-row{display:grid;grid-template-columns:repeat(auto-fit, minmax(12rem, 1fr));gap:var(--space-4);margin-bottom:var(--space-6)}.stat-tile{display:block;padding:var(--space-4);color:inherit;text-decoration:none;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius)}.stat-tile__label{font-size:var(--font-size-small);color:var(--color-text-muted)}.stat-tile__value{font-size:var(--font-size-title);font-weight:700}.u-mt-0{margin-top:0}.u-mt-4{margin-top:var(--space-4)}.u-mb-0{margin-bottom:0}.u-mb-4{margin-bottom:var(--space-4)}.u-text-muted{color:var(--color-text-muted)}.u-text-small{font-size:var(--font-size-small)}.u-text-right{text-align:right}.u-pre-line{white-space:pre-line}
