:root{--color-ink:#17211d;--color-muted:#56645e;--color-paper:#f4f5f1;--color-surface:#ffffff;--color-accent:#173f35;--color-accent-hover:#245a4b;--color-accent-ink:#ffffff;--color-rule:#d6ddd8;--color-focus:#315b7d;--color-info-bg:#edf3f7;--color-info-ink:#254b68;--color-success-bg:#e8efec;--color-success-ink:#173f35;--color-warning-bg:#fff2dc;--color-warning-ink:#70470e;--color-danger-bg:#fae8e6;--color-danger-ink:#7a2821;--color-disabled:#a7b0ab;--color-input-rule:#c6d0c9;--color-info-rule:#bfd1df;--color-success-rule:#bdd2c8;--color-warning-rule:#ead09c;--color-danger-rule:#e5b8b3;--color-nav-surface:rgba(255,255,255,0.97);--color-shadow:rgba(23,63,53,0.08);--space-3xs:0.25rem;--space-2xs:0.5rem;--space-xs:0.75rem;--space-sm:1rem;--space-md:1.5rem;--space-lg:2rem;--space-xl:3rem;--radius-control:0.625rem;--radius-panel:0.75rem;--radius-pill:999px;--shadow-raised:0 2px 8px var(--color-shadow);--ease-out:cubic-bezier(0.16,1,0.3,1);--duration-short:180ms;--nav-height:4.5rem;--z-nav:300}*{box-sizing:border-box}body,html{overflow-x:clip}body,html{background:var(--color-paper)}body{margin:0;min-height:100dvh;color:var(--color-ink);font-family:Tahoma,Arial,sans-serif;line-height:1.55}button,input,select,textarea{font:inherit}a,button{touch-action:manipulation}button{-webkit-appearance:none;-moz-appearance:none;appearance:none}h1,h2,h3,p{margin-top:0}h1,h2,h3{min-width:0;overflow-wrap:anywhere;font-style:normal;line-height:1.25}h1{margin-bottom:var(--space-3xs);font-size:1.75rem}h2{margin:var(--space-lg) 0 var(--space-xs);font-size:1.25rem}h3{font-size:1rem}.shell{width:min(100%,52rem);min-height:100dvh;margin-inline:auto;padding:calc(var(--space-sm) + env(safe-area-inset-top)) var(--space-sm) calc(var(--nav-height) + var(--space-md) + env(safe-area-inset-bottom))}.topbar{justify-content:space-between;gap:var(--space-sm);margin-bottom:var(--space-md)}.brand,.topbar{display:flex;align-items:center}.brand{gap:var(--space-xs)}.brand,.brand>div:last-child{min-width:0}.mark{display:grid;flex:0 0 auto;width:2.75rem;height:2.75rem;place-items:center;border-radius:var(--radius-control);color:var(--color-accent-ink);background:var(--color-accent);font-weight:800}.kicker{font-size:.75rem}.kicker,.muted{color:var(--color-muted)}.muted{font-size:.875rem}.numeric{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:var(--space-xs);gap:var(--space-xs)}.actions{align-items:stretch}.action{display:flex;min-width:0;min-height:7rem;flex-direction:column;justify-content:space-between;padding:var(--space-sm);border:1px solid var(--color-rule);border-radius:var(--radius-panel);color:var(--color-ink);background:var(--color-surface);text-decoration:none;transition:border-color var(--duration-short) var(--ease-out),background-color var(--duration-short) var(--ease-out),transform var(--duration-short) var(--ease-out)}.action:hover{background:var(--color-success-bg)}.action.primary,.action:hover{border-color:var(--color-accent)}.action.primary{grid-column:span 2;color:var(--color-accent-ink);background:var(--color-accent)}.action.primary:hover{background:var(--color-accent-hover)}.action-icon{display:inline-flex;width:1.5rem;height:1.5rem;align-items:center}.counters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-block:1px solid var(--color-rule)}.counter{min-width:0;padding:var(--space-xs) var(--space-2xs)}.counter+.counter{-webkit-border-start:1px solid var(--color-rule);border-inline-start:1px solid var(--color-rule)}.counter b{display:block;margin-bottom:var(--space-3xs);font-size:1.375rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.counter span{color:var(--color-muted);font-size:.75rem}.card,.panel{margin-bottom:var(--space-xs);padding:var(--space-sm);border:1px solid var(--color-rule);border-radius:var(--radius-panel)}.card,.panel,.record-list{background:var(--color-surface)}.record-list{border-block:1px solid var(--color-rule)}.record-row{display:block;padding:var(--space-sm);color:inherit;text-decoration:none}.record-row+.record-row{border-top:1px solid var(--color-rule)}a.record-row:hover{background:var(--color-success-bg)}.row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-xs)}.row,.row>*{min-width:0}.badge{display:inline-flex;flex:0 0 auto;align-items:center;gap:var(--space-3xs);max-width:100%;padding:var(--space-3xs) var(--space-2xs);border:1px solid transparent;border-radius:var(--radius-pill);color:var(--color-success-ink);background:var(--color-success-bg);font-size:.75rem;font-weight:700;line-height:1.4;white-space:nowrap}.badge.info{border-color:var(--color-info-rule);color:var(--color-info-ink);background:var(--color-info-bg)}.badge.warn{border-color:var(--color-warning-rule);color:var(--color-warning-ink);background:var(--color-warning-bg)}.badge.danger{border-color:var(--color-danger-rule);color:var(--color-danger-ink);background:var(--color-danger-bg)}.badge.neutral{border-color:var(--color-rule);color:var(--color-muted);background:var(--color-paper)}.btn{display:inline-flex;min-height:3rem;align-items:center;justify-content:center;gap:var(--space-2xs);padding-inline:var(--space-sm);border:1px solid var(--color-accent);border-radius:var(--radius-control);color:var(--color-accent-ink);background:var(--color-accent);font-weight:700;line-height:1.2;text-align:center;text-decoration:none;white-space:nowrap;cursor:pointer;transition:background-color var(--duration-short) var(--ease-out),transform var(--duration-short) var(--ease-out)}.btn:hover{background:var(--color-accent-hover)}.btn.secondary{border-color:var(--color-rule);color:var(--color-accent);background:var(--color-surface)}.btn.secondary:hover{border-color:var(--color-accent);background:var(--color-success-bg)}.btn.danger{border-color:var(--color-danger-ink);background:var(--color-danger-ink)}.btn:disabled,.btn[aria-disabled=true]{opacity:.55;cursor:not-allowed}.action:active,.btn:active:not(:disabled){transform:translateY(1px)}.field{margin-bottom:var(--space-sm)}.field label{display:block;margin-bottom:var(--space-2xs);font-size:.8125rem;font-weight:700}.input{width:100%;min-height:3.125rem;padding:var(--space-2xs) var(--space-xs);border:1px solid var(--color-input-rule);border-radius:var(--radius-control);outline:2px solid transparent;outline-offset:1px;color:var(--color-ink);background:var(--color-surface)}.input:hover{border-color:var(--color-muted)}.input:disabled{opacity:.55;cursor:not-allowed;background:var(--color-paper)}textarea.input{min-height:6.5rem;resize:vertical}.field-help{min-height:1lh;margin-top:var(--space-3xs);color:var(--color-muted);font-size:.75rem}.alert{margin:var(--space-xs) 0;padding:var(--space-xs);border:1px solid var(--color-warning-rule);border-radius:var(--radius-control);color:var(--color-warning-ink);background:var(--color-warning-bg);font-size:.8125rem}.alert.info{border-color:var(--color-info-rule);color:var(--color-info-ink);background:var(--color-info-bg)}.alert.success{border-color:var(--color-success-rule);color:var(--color-success-ink);background:var(--color-success-bg)}.alert.danger{border-color:var(--color-danger-rule);color:var(--color-danger-ink);background:var(--color-danger-bg)}.bottomnav{position:fixed;z-index:var(--z-nav);right:0;bottom:0;left:0;display:flex;justify-content:center;border-top:1px solid var(--color-rule);background:var(--color-nav-surface);padding:var(--space-2xs) var(--space-xs) calc(var(--space-2xs) + env(safe-area-inset-bottom))}.bottomnav nav{display:grid;width:min(100%,52rem);grid-template-columns:repeat(4,minmax(0,1fr))}.bottomnav a{display:flex;min-width:0;min-height:3.25rem;align-items:center;justify-content:center;flex-direction:column;gap:var(--space-3xs);border-radius:var(--radius-control);color:var(--color-muted);font-size:.6875rem;line-height:1;text-align:center;text-decoration:none;white-space:nowrap}.bottomnav a:hover,.bottomnav a[aria-current=page]{color:var(--color-accent);background:var(--color-success-bg)}.bottomnav a[aria-current=page]{font-weight:700}.login{display:grid;width:min(100%,28rem);min-height:100dvh;align-content:center;margin-inline:auto;padding:var(--space-lg)}.login .mark{width:4rem;height:4rem;margin-bottom:var(--space-md);font-size:1.25rem}.login h1{font-size:2rem}.login .btn{width:100%;margin-top:var(--space-sm)}.timeline{-webkit-border-start:2px solid var(--color-rule);border-inline-start:2px solid var(--color-rule);-webkit-padding-start:var(--space-md);padding-inline-start:var(--space-md)}.timeline .item{position:relative;margin-bottom:var(--space-md)}.timeline .item:before{content:"";position:absolute;inset-inline-start:calc(-1 * var(--space-md) - .375rem);top:.375rem;width:.625rem;height:.625rem;border-radius:50%;background:var(--color-accent)}.tabs{display:flex;overflow:auto;gap:var(--space-2xs);margin:0 calc(-1 * var(--space-sm)) var(--space-sm);padding:0 var(--space-sm) var(--space-3xs);scrollbar-width:thin}.tabs button{min-height:2.75rem;padding-inline:var(--space-xs);border:1px solid var(--color-rule);border-radius:var(--radius-pill);color:var(--color-ink);background:var(--color-surface);white-space:nowrap;cursor:pointer}.tabs button:hover{border-color:var(--color-accent)}.tabs button.active,.tabs button[aria-selected=true]{border-color:var(--color-accent);color:var(--color-accent-ink);background:var(--color-accent)}.empty{padding:var(--space-lg);color:var(--color-muted);text-align:center}.loading-row{min-height:4.5rem;background:linear-gradient(90deg,var(--color-paper),var(--color-surface),var(--color-paper));background-size:200% 100%;animation:loading 1.4s linear infinite}:where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}@keyframes loading{to{background-position:-200% 0}}@media (min-width:43.75rem){.shell{padding-inline:var(--space-md)}.grid.actions{grid-template-columns:repeat(3,minmax(0,1fr))}.action.primary{grid-column:span 2}.counters{grid-template-columns:repeat(6,minmax(0,1fr))}}@media (max-width:25rem){.grid:not(.actions){grid-template-columns:minmax(0,1fr)}.bottomnav a{font-size:.625rem}}@media (prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important;animation:none!important;transition:none!important}}