@font-face{font-family:Libre Baskerville;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/libre-baskerville-400.woff2) format("woff2")}@font-face{font-family:Libre Baskerville;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/libre-baskerville-700.woff2) format("woff2")}:root{--color-bg: #f7f7f8;--color-surface: #ffffff;--color-surface-alt: #f1f2f4;--color-border: #d8dadd;--color-border-strong: #b3b6bb;--color-text: #1c1f24;--color-text-muted: #5b6068;--color-text-subtle: #646970;--color-primary: #06729a;--color-primary-hover: #04617e;--color-primary-fg: #ffffff;--color-primary-soft: #e3f1f7;--color-brand: #078bb2;--color-brand-strong: #056a87;--color-brand-ink: #0d2730;--color-success: #2f7d32;--color-success-soft: #e6f3e7;--color-warning: #9a6700;--color-warning-soft: #fbf3df;--color-danger: #b3261e;--color-danger-soft: #fbe9e7;--color-neutral-soft: #ececef;--color-focus-ring: #2563a8;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: ui-monospace, "SF Mono", Consolas, "Liberation Mono", monospace;--font-display: "Libre Baskerville", Georgia, "Times New Roman", serif;--font-size-sm: .8125rem;--font-size-base: .9375rem;--font-size-lg: 1.125rem;--font-size-xl: 1.5rem;--line-height-tight: 1.25;--line-height-normal: 1.5;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-6: 1.5rem;--space-8: 2rem;--radius-sm: 3px;--radius-md: 6px;--radius-lg: 10px;--border-width: 1px;--shadow-sm: 0 1px 2px rgba(20, 24, 30, .06);--shadow-md: 0 2px 6px rgba(20, 24, 30, .08), 0 1px 2px rgba(20, 24, 30, .04);--app-header-height: 56px;--app-sidebar-width: 240px;--app-content-max-width: 1280px;--z-nav: 10;--z-modal: 100;--transition-fast: .12s ease;--transition-base: .2s ease}*,*:before,*:after{box-sizing:border-box}*{margin:0;padding:0}html{font-size:100%;-webkit-text-size-adjust:100%;text-size-adjust:100%}body{min-height:100vh;font-family:var(--font-sans);font-size:var(--font-size-base);line-height:var(--line-height-normal);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;overflow-wrap:anywhere;hyphens:auto;-webkit-hyphens:auto}#root{min-height:100vh;isolation:isolate}h1,h2,h3,h4,h5,h6{font-family:inherit;color:var(--color-text)}h1{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight)}h2{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight)}h3{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);line-height:var(--line-height-normal)}a{color:var(--color-primary);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-primary-hover);text-decoration:underline}code,pre,kbd,samp{font-family:var(--font-mono);font-size:var(--font-size-sm)}pre{overflow-x:auto}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit;color:inherit}button{background:none;border:none;cursor:pointer}:focus{outline:none}:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px;border-radius:var(--radius-sm)}::selection{background:var(--color-primary-soft);color:var(--color-text)}img,svg,video,canvas{display:block;max-width:100%;height:auto}table{border-collapse:collapse;border-spacing:0}@media (prefers-reduced-motion: reduce){*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}}.app-shell{display:grid;grid-template-columns:var(--app-sidebar-width) 1fr;grid-template-rows:var(--app-header-height) 1fr;height:100vh;width:100%}.app-shell__header{grid-column:1 / -1;grid-row:1;display:flex;align-items:center;justify-content:space-between;padding-inline:var(--space-6);background:var(--color-surface);border-bottom:var(--border-width) solid var(--color-border);z-index:var(--z-nav)}.app-shell__brand{display:flex;align-items:center;gap:9px}.app-shell__brand-mark{width:26px;height:26px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;background:var(--color-brand-ink);color:var(--color-brand);border-radius:6px;font-family:var(--font-display);font-weight:700;font-size:16px;line-height:1}.app-shell__brand-name{font-family:var(--font-display);font-size:var(--font-size-lg);font-weight:var(--font-weight-normal);color:var(--color-brand-ink);line-height:1}.app-shell__brand-name:after{content:"";display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--color-brand);margin-left:4px;vertical-align:baseline}.app-shell__user{font-size:var(--font-size-sm);color:var(--color-text-muted)}.app-shell__sidebar{grid-column:1;grid-row:2;background:var(--color-surface-alt);border-right:var(--border-width) solid var(--color-border);padding-block:var(--space-4);overflow-y:auto}.app-shell__nav{display:flex;flex-direction:column;gap:var(--space-1)}.app-shell__nav-link{display:block;padding:10px var(--space-4);margin-inline:var(--space-2);color:var(--color-text-muted);text-decoration:none;border-radius:var(--radius-md);font-size:var(--font-size-base);line-height:var(--line-height-tight);transition:background-color var(--transition-fast),color var(--transition-fast)}.app-shell__nav-link:hover{background:var(--color-primary-soft);color:var(--color-text);text-decoration:none}.app-shell__nav-link--active{background:var(--color-primary-soft);color:var(--color-primary);font-weight:var(--font-weight-medium)}.app-shell__main{grid-column:2;grid-row:2;overflow-y:auto;padding:var(--space-6);background:var(--color-bg)}.auth-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--color-surface-alt);padding:var(--space-6)}.auth-shell__card{width:100%;max-width:400px;background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:var(--space-8)}.auth-shell__brand{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);margin-bottom:var(--space-6)}.auth-shell__brand-mark{width:48px;height:48px;display:inline-flex;align-items:center;justify-content:center;background:var(--color-brand-ink);color:var(--color-brand);border-radius:11px;font-family:var(--font-display);font-weight:700;font-size:30px;line-height:1}.auth-shell__brand-name{font-family:var(--font-display);font-size:var(--font-size-xl);font-weight:var(--font-weight-normal);color:var(--color-brand-ink);line-height:1}.auth-shell__brand-name:after{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--color-brand);margin-left:5px;vertical-align:baseline}.page{max-width:var(--app-content-max-width);margin-inline:auto;display:flex;flex-direction:column;gap:var(--space-6)}.page__header{display:flex;flex-direction:row;justify-content:space-between;align-items:center;gap:var(--space-4);flex-wrap:wrap}.page__title{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);margin:0;color:var(--color-text)}.page__actions{display:flex;flex-direction:row;flex-wrap:wrap;gap:var(--space-2);align-items:center}.page__body{display:flex;flex-direction:column;gap:var(--space-4);hyphens:auto;-webkit-hyphens:auto;overflow-wrap:anywhere}.page__subtitle{font-size:var(--font-size-sm);font-weight:var(--font-weight-normal);color:var(--color-text-muted)}.page__subtitle--strong{font-weight:var(--font-weight-semibold);color:var(--color-text)}.page--sticky-header>.page__header{position:sticky;top:0;z-index:var(--z-nav);background:var(--color-bg);padding-block:var(--space-2);border-bottom:var(--border-width) solid var(--color-border)}.page--sticky-header>.page__header:before{content:"";position:absolute;left:0;right:0;bottom:100%;height:var(--space-6);background:var(--color-bg)}.page--sticky-header :is(input,select,textarea,button){scroll-margin-top:calc(var(--kalk-header-h, 56px) + var(--space-4))}.density-compact .table th,.density-compact .table td{padding-block:var(--space-1)}.card{background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4);box-shadow:var(--shadow-sm)}.card__title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);margin-bottom:var(--space-3);color:var(--color-text)}.card__body{display:flex;flex-direction:column;gap:var(--space-3)}.summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--space-4)}.summary-tile{background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3);box-shadow:var(--shadow-sm)}.summary-tile__label{font-size:var(--font-size-sm);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:var(--space-1);line-height:var(--line-height-tight)}.summary-tile__value{font-family:var(--font-mono);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text);line-height:var(--line-height-tight)}.tabs{display:flex;flex-direction:row;flex-wrap:wrap;gap:0;border-bottom:var(--border-width) solid var(--color-border);margin-bottom:var(--space-4)}.tabs__tab{padding:10px var(--space-4);color:var(--color-text-muted);background:transparent;border:none;border-bottom:2px solid transparent;cursor:pointer;font:inherit;line-height:var(--line-height-tight);transition:color var(--transition-fast),border-color var(--transition-fast)}.tabs__tab:hover{color:var(--color-text)}.tabs__tab--active{color:var(--color-primary);border-bottom-color:var(--color-primary);font-weight:var(--font-weight-medium)}.table{width:100%;border-collapse:collapse;font-size:var(--font-size-base);color:var(--color-text);hyphens:none;-webkit-hyphens:none;overflow-wrap:normal}.table-scroll{overflow-x:auto}.table.table--auto{width:auto}.table--auto td.num .input{width:6.5rem;min-width:0}.table .actions .cluster{flex-wrap:nowrap}.table th{text-align:left;font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);text-transform:none;color:var(--color-text-muted);background:var(--color-surface-alt);padding:10px var(--space-3);border-bottom:var(--border-width) solid var(--color-border-strong)}.table td{padding:10px var(--space-3);border-bottom:var(--border-width) solid var(--color-border);vertical-align:top}.table tr:hover td{background:var(--color-surface-alt)}.table--striped tbody tr:nth-child(2n) td{background:var(--color-surface-alt)}.table .num{text-align:right;font-family:var(--font-mono);font-variant-numeric:tabular-nums}.table th.num{text-align:right}.th-info{display:inline-block;margin-left:.25em;color:var(--color-text-muted);cursor:help;font-weight:var(--font-weight-normal);letter-spacing:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:8px var(--space-4);font:inherit;font-weight:var(--font-weight-medium);line-height:var(--line-height-tight);border:var(--border-width) solid transparent;border-radius:var(--radius-md);cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast);text-decoration:none;white-space:nowrap}.btn:disabled,.btn[aria-disabled=true]{opacity:.5;cursor:not-allowed;pointer-events:none}.btn-primary{background:var(--color-primary);color:var(--color-primary-fg);border-color:var(--color-primary)}.btn-primary:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover);color:var(--color-primary-fg);text-decoration:none}.btn-secondary{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border-strong)}.btn-secondary:hover{background:var(--color-surface-alt);color:var(--color-text);text-decoration:none}.btn-ghost{background:transparent;color:var(--color-text-muted);border-color:transparent}.btn-ghost:hover{background:var(--color-surface-alt);color:var(--color-text);text-decoration:none}.btn-danger{background:var(--color-danger);color:#fff;border-color:var(--color-danger)}.btn-danger:hover{background:#8a1d17;border-color:#8a1d17;color:#fff;text-decoration:none}.field{display:flex;flex-direction:column;gap:var(--space-1)}.field__label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text);line-height:var(--line-height-tight)}.field__hint{font-size:var(--font-size-sm);color:var(--color-text-muted);line-height:var(--line-height-normal)}.field__error{font-size:var(--font-size-sm);color:var(--color-danger);line-height:var(--line-height-normal)}.input{display:block;width:100%;padding:8px var(--space-3);font:inherit;color:var(--color-text);background:var(--color-surface);border:var(--border-width) solid var(--color-border-strong);border-radius:var(--radius-md);line-height:var(--line-height-normal);transition:border-color var(--transition-fast),box-shadow var(--transition-fast),background-color var(--transition-fast)}.input::placeholder{color:var(--color-text-subtle)}.input:hover:not(:disabled):not(:focus){border-color:var(--color-text-muted)}.input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #3a5a782e}@media (forced-colors: active){.input:focus,.input:focus-visible{outline:2px solid Highlight;outline-offset:2px}}.input:disabled{background:var(--color-surface-alt);color:var(--color-text-muted);cursor:not-allowed}.input--error{border-color:var(--color-danger)}.input--error:focus{border-color:var(--color-danger);box-shadow:0 0 0 3px #b3261e2e}select.input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'><path fill='none' stroke='%235b6068' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round' d='M3 4.5l3 3 3-3'/></svg>");background-repeat:no-repeat;background-position:right var(--space-3) center;padding-right:var(--space-8)}textarea.input{resize:vertical;min-height:calc(var(--space-8) * 2)}.stack{display:flex;flex-direction:column;gap:var(--space-4)}.stack--sm{gap:var(--space-2)}.stack--md{gap:var(--space-4)}.stack--lg{gap:var(--space-6)}.cluster{display:flex;flex-direction:row;flex-wrap:wrap;gap:var(--space-3);align-items:center}.cluster--sm{gap:var(--space-2)}.cluster--md{gap:var(--space-3)}.badge{display:inline-flex;align-items:center;padding:2px var(--space-2);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);line-height:var(--line-height-normal);border-radius:var(--radius-sm);white-space:nowrap}.badge--success{background:var(--color-success-soft);color:var(--color-success)}.badge--warning{background:var(--color-warning-soft);color:var(--color-warning)}.badge--danger{background:var(--color-danger-soft);color:var(--color-danger)}.badge--neutral{background:var(--color-neutral-soft);color:var(--color-text-muted)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#14181e73;z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;padding:var(--space-4)}.modal{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);max-width:960px;width:100%;max-height:90vh;display:flex;flex-direction:column}.modal__header{padding:var(--space-4) var(--space-6);border-bottom:var(--border-width) solid var(--color-border);display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}.modal__title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);margin:0}.modal__body{padding:var(--space-4) var(--space-6);overflow:auto;flex:1 1 auto}.modal__footer{padding:var(--space-4) var(--space-6);border-top:var(--border-width) solid var(--color-border);display:flex;justify-content:flex-end;gap:var(--space-2)}.modal--sm{max-width:480px}.banner{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--font-size-sm)}.banner--info{background:var(--color-primary-soft);color:var(--color-text)}.banner--success{background:var(--color-success-soft);color:var(--color-success)}.banner--warning{background:var(--color-warning-soft);color:var(--color-warning);font-weight:var(--font-weight-medium)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;top:0;left:0;padding:var(--space-2) var(--space-3);background:var(--color-primary);color:var(--color-primary-fg);border-radius:0 0 var(--radius-md) 0;text-decoration:none;z-index:var(--z-nav);transform:translateY(-100%);transition:transform var(--transition-fast)}.skip-link:focus{outline:2px solid var(--color-primary-fg);outline-offset:-2px;transform:translateY(0)}.skeleton{display:inline-block;vertical-align:middle;background:linear-gradient(90deg,var(--color-surface-alt) 0%,var(--color-neutral-soft) 50%,var(--color-surface-alt) 100%);background-size:200% 100%;border-radius:var(--radius-sm);animation:skeleton-shimmer 1.4s ease-in-out infinite}@keyframes skeleton-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@media (prefers-reduced-motion: reduce){.skeleton{animation:none}}.toast-viewport{position:fixed;top:var(--space-4);right:var(--space-4);z-index:calc(var(--z-modal) + 10);display:flex;flex-direction:column;gap:var(--space-2);pointer-events:none;max-width:min(360px,calc(100vw - var(--space-4) * 2))}.toast-viewport__region{display:flex;flex-direction:column;gap:var(--space-2)}.toast{pointer-events:auto;display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-left:4px solid var(--color-text-muted);border-radius:var(--radius-md);box-shadow:var(--shadow-md);font-size:var(--font-size-base);color:var(--color-text);animation:toast-slide-in var(--transition-base)}.toast--success{border-left-color:var(--color-success);background:var(--color-success-soft);color:var(--color-text)}.toast--error{border-left-color:var(--color-danger);background:var(--color-danger-soft);color:var(--color-text)}.toast__message{flex:1 1 auto;line-height:var(--line-height-normal);overflow-wrap:anywhere}.toast__close{flex:0 0 auto;background:transparent;border:none;color:var(--color-text-muted);font-size:var(--font-size-lg);line-height:1;padding:0 var(--space-1);cursor:pointer;border-radius:var(--radius-sm)}.toast__close:hover{color:var(--color-text)}.toast__close:focus-visible{color:var(--color-text)}@keyframes toast-slide-in{0%{transform:translate(16px);opacity:0}to{transform:translate(0);opacity:1}}@media (prefers-reduced-motion: reduce){.toast{animation:none}}.filter-bar{display:flex;flex-direction:row;flex-wrap:wrap;gap:var(--space-2);align-items:center}.filter-bar__label{font-size:var(--font-size-sm);color:var(--color-text-muted)}.segmented{display:inline-flex;flex-wrap:wrap;border:var(--border-width) solid var(--color-border-strong);border-radius:var(--radius-md);overflow:hidden;background:var(--color-surface)}.segmented__option{padding:6px var(--space-3);font:inherit;font-size:var(--font-size-sm);color:var(--color-text-muted);background:transparent;border:none;border-right:var(--border-width) solid var(--color-border);cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast);line-height:var(--line-height-tight)}.segmented__option:last-child{border-right:none}.segmented__option:hover{background:var(--color-surface-alt);color:var(--color-text)}.segmented__option--active{background:var(--color-primary-soft);color:var(--color-primary);font-weight:var(--font-weight-medium)}@media (max-width: 1023px){.app-shell{grid-template-columns:1fr}.app-shell__sidebar{display:none}.app-shell__main{grid-column:1;padding:var(--space-4)}}
