:root{color-scheme:light dark;--font-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: ui-monospace, SFMono-Regular, Menlo, monospace;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--radius-s: 8px;--radius-m: 12px;--radius-l: 16px;--radius-pill: 999px;--touch: 44px;--text-xs: 12px;--text-s: 14px;--text-m: 16px;--text-l: 18px;--text-xl: 22px;--text-2xl: 28px;--text-3xl: 34px;--shadow-1: 0 1px 2px rgba(16, 24, 40, .06), 0 1px 3px rgba(16, 24, 40, .1);--shadow-2: 0 4px 12px rgba(16, 24, 40, .1);--content-max: 1200px;--gutter: 16px;--c-bg: #f6f8f8;--c-surface: #ffffff;--c-surface-2: #eef2f2;--c-border: #d9e0e0;--c-text: #111827;--c-text-2: #4b5563;--c-text-3: #6b7280;--c-primary: #0f766e;--c-primary-strong: #115e59;--c-primary-soft: #ccfbf1;--c-on-primary: #ffffff;--c-positive: #15803d;--c-positive-soft: #dcfce7;--c-negative: #b91c1c;--c-negative-soft: #fee2e2;--c-warning: #b45309;--c-warning-soft: #fef3c7;--c-info: #1d4ed8;--c-info-soft: #dbeafe;--c-focus: #2563eb;--c-chart-1: #0f766e;--c-chart-2: #f59e0b;--c-chart-3: #3b82f6;--c-chart-4: #ec4899;--c-chart-5: #8b5cf6;--c-chart-6: #10b981;--c-chart-7: #ef4444;--c-chart-8: #64748b}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--c-bg: #0b1214;--c-surface: #121b1e;--c-surface-2: #1a2529;--c-border: #263338;--c-text: #e5e7eb;--c-text-2: #b3bcc3;--c-text-3: #8a949b;--c-primary: #2dd4bf;--c-primary-strong: #5eead4;--c-primary-soft: #113b38;--c-on-primary: #052e2b;--c-positive: #4ade80;--c-positive-soft: #10301d;--c-negative: #f87171;--c-negative-soft: #3b1212;--c-warning: #fbbf24;--c-warning-soft: #3a2a07;--c-info: #60a5fa;--c-info-soft: #0f2548;--c-focus: #93c5fd;--shadow-1: 0 1px 2px rgba(0,0,0,.4);--shadow-2: 0 4px 12px rgba(0,0,0,.5)}}:root[data-theme=dark]{--c-bg: #0b1214;--c-surface: #121b1e;--c-surface-2: #1a2529;--c-border: #263338;--c-text: #e5e7eb;--c-text-2: #b3bcc3;--c-text-3: #8a949b;--c-primary: #2dd4bf;--c-primary-strong: #5eead4;--c-primary-soft: #113b38;--c-on-primary: #052e2b;--c-positive: #4ade80;--c-positive-soft: #10301d;--c-negative: #f87171;--c-negative-soft: #3b1212;--c-warning: #fbbf24;--c-warning-soft: #3a2a07;--c-info: #60a5fa;--c-info-soft: #0f2548;--c-focus: #93c5fd;--shadow-1: 0 1px 2px rgba(0,0,0,.4);--shadow-2: 0 4px 12px rgba(0,0,0,.5)}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}html,body,#root{min-height:100%}body{margin:0;font-family:var(--font-sans);font-size:var(--text-m);line-height:1.45;color:var(--c-text);background:var(--c-bg);overflow-x:hidden}h1,h2,h3,h4{margin:0;line-height:1.2;font-weight:700}h1{font-size:var(--text-2xl)}h2{font-size:var(--text-xl)}h3{font-size:var(--text-l)}p{margin:0}a{color:var(--c-primary);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--c-focus);outline-offset:2px}img,svg{max-width:100%;display:block}table{border-collapse:collapse;width:100%}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.money{font-variant-numeric:tabular-nums;white-space:nowrap}.pos{color:var(--c-positive)}.neg{color:var(--c-negative)}.muted{color:var(--c-text-3)}.container{width:100%;max-width:var(--content-max);margin:0 auto;padding:0 var(--gutter)}.stack>*+*{margin-top:var(--space-4)}.row{display:flex;gap:var(--space-3);align-items:center;flex-wrap:wrap}.between{justify-content:space-between}.grid{display:grid;gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius-m);padding:var(--space-4);box-shadow:var(--shadow-1)}.card h3{margin-bottom:var(--space-2)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:var(--touch);padding:0 var(--space-4);border-radius:var(--radius-m);border:1px solid transparent;background:var(--c-primary);color:var(--c-on-primary);font-weight:600;cursor:pointer;text-decoration:none!important;white-space:nowrap}.btn:hover{background:var(--c-primary-strong)}.btn:disabled,.btn[aria-disabled=true]{opacity:.5;cursor:not-allowed}.btn.secondary{background:var(--c-surface);color:var(--c-text);border-color:var(--c-border)}.btn.secondary:hover{background:var(--c-surface-2)}.btn.ghost{background:transparent;color:var(--c-primary)}.btn.ghost:hover{background:var(--c-primary-soft)}.btn.danger{background:var(--c-negative);color:#fff}.btn.small{min-height:var(--touch);padding:0 var(--space-3);font-size:var(--text-s)}.btn.block{width:100%}.field{display:flex;flex-direction:column;gap:var(--space-1)}.field label{font-size:var(--text-s);font-weight:600;color:var(--c-text-2)}.field .help{font-size:var(--text-xs);color:var(--c-text-3)}.field .error{font-size:var(--text-xs);color:var(--c-negative)}.input,select.input,textarea.input,.input-sm{min-height:var(--touch);padding:0 var(--space-3);border:1px solid var(--c-border);border-radius:var(--radius-m);background:var(--c-surface);width:100%}textarea.input{padding:var(--space-3);min-height:88px;resize:vertical}.input:focus{border-color:var(--c-primary)}.checkbox{display:inline-flex;align-items:center;gap:var(--space-2);min-height:var(--touch);cursor:pointer}.checkbox input{width:22px;height:22px}.list-item>input[type=checkbox]{width:22px;height:22px;margin:11px 0;flex-shrink:0}.list-item .actions{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}.segmented{display:inline-flex;border:1px solid var(--c-border);border-radius:var(--radius-m);overflow-x:auto;max-width:100%}.segmented button{white-space:nowrap}.segmented button{min-height:var(--touch);padding:0 var(--space-3);border:0;background:var(--c-surface);cursor:pointer}.segmented button[aria-pressed=true]{background:var(--c-primary);color:var(--c-on-primary);font-weight:600}.pill{display:inline-flex;align-items:center;padding:2px 10px;border-radius:var(--radius-pill);font-size:var(--text-xs);font-weight:600;background:var(--c-surface-2);color:var(--c-text-2)}.pill.pos{background:var(--c-positive-soft);color:var(--c-positive)}.pill.neg{background:var(--c-negative-soft);color:var(--c-negative)}.pill.warn{background:var(--c-warning-soft);color:var(--c-warning)}.pill.info{background:var(--c-info-soft);color:var(--c-info)}.alert{padding:var(--space-3) var(--space-4);border-radius:var(--radius-m);border:1px solid var(--c-border);background:var(--c-surface-2)}.alert.warn{background:var(--c-warning-soft);border-color:transparent;color:var(--c-warning)}.alert.neg{background:var(--c-negative-soft);border-color:transparent;color:var(--c-negative)}.alert.pos{background:var(--c-positive-soft);border-color:transparent;color:var(--c-positive)}.alert.info{background:var(--c-info-soft);border-color:transparent;color:var(--c-info)}.list{display:flex;flex-direction:column}.list-item{display:flex;align-items:center;gap:var(--space-3);min-height:56px;padding:var(--space-2) 0;border-bottom:1px solid var(--c-border);flex-wrap:wrap}.list-item .main{flex:1 1 160px}.list-item:last-child{border-bottom:0}.list-item .main{flex:1;min-width:0}.list-item .title{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.list-item .sub{font-size:var(--text-s);color:var(--c-text-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.table th,.table td{text-align:left;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--c-border);font-size:var(--text-s)}.table th{color:var(--c-text-3);font-weight:600}.table td.num,.table th.num{text-align:right}.empty{text-align:center;padding:var(--space-8) var(--space-4);color:var(--c-text-2)}.empty h3{margin-bottom:var(--space-2)}.empty .actions{margin-top:var(--space-4);display:flex;gap:var(--space-2);justify-content:center;flex-wrap:wrap}.app-shell{display:flex;min-height:100vh}.sidebar{display:none}.topbar{position:sticky;top:0;z-index:20;background:var(--c-surface);border-bottom:1px solid var(--c-border)}.hide-mobile{display:none}@media(min-width:900px){.hide-mobile{display:inline}.hide-desktop{display:none}}.topbar .container{display:flex;align-items:center;justify-content:space-between;min-height:56px;gap:var(--space-2)}.brand{font-weight:800;letter-spacing:-.02em;color:var(--c-primary);display:flex;align-items:center;gap:8px}.main-content{flex:1;padding:var(--space-4) 0 calc(72px + env(safe-area-inset-bottom));min-width:0}.bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:20;display:flex;background:var(--c-surface);border-top:1px solid var(--c-border);padding-bottom:env(safe-area-inset-bottom)}.bottom-nav a{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:56px;font-size:11px;color:var(--c-text-3);gap:2px;position:relative}.bottom-nav a.active{color:var(--c-primary);font-weight:700}.badge{position:absolute;top:6px;right:calc(50% - 22px);min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--c-negative);color:#fff;font-size:11px;display:flex;align-items:center;justify-content:center}.page-title{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);margin-bottom:var(--space-4);flex-wrap:wrap}.kpi{display:flex;flex-direction:column;gap:2px}.kpi .label{font-size:var(--text-s);color:var(--c-text-3)}.kpi .value{font-size:var(--text-xl);font-weight:800}.fab{position:fixed;right:16px;bottom:calc(72px + env(safe-area-inset-bottom));z-index:25;width:56px;height:56px;border-radius:50%;box-shadow:var(--shadow-2);font-size:28px;padding:0}.modal-backdrop{position:fixed;inset:0;background:#00000073;z-index:40;display:flex;align-items:flex-end;justify-content:center}.modal{background:var(--c-surface);width:100%;max-width:560px;max-height:92vh;overflow:auto;border-radius:var(--radius-l) var(--radius-l) 0 0;padding:var(--space-4)}.modal h2{margin-bottom:var(--space-3)}.tabs{display:flex;gap:var(--space-1);border-bottom:1px solid var(--c-border);margin-bottom:var(--space-4);overflow-x:auto}.tabs button{min-height:var(--touch);padding:0 var(--space-3);border:0;background:none;cursor:pointer;color:var(--c-text-3);border-bottom:3px solid transparent;white-space:nowrap}.tabs button[aria-selected=true]{color:var(--c-primary);border-color:var(--c-primary);font-weight:700}.toast-area{position:fixed;top:64px;left:50%;transform:translate(-50%);z-index:60;display:flex;flex-direction:column;gap:8px;width:min(92vw,420px)}.toast{background:var(--c-text);color:var(--c-bg);padding:var(--space-3) var(--space-4);border-radius:var(--radius-m);box-shadow:var(--shadow-2);display:flex;justify-content:space-between;gap:12px;align-items:center}.toast button{background:none;border:0;color:inherit;font-weight:700;cursor:pointer;min-height:32px}@media(min-width:900px){.sidebar{display:flex;flex-direction:column;width:240px;flex-shrink:0;background:var(--c-surface);border-right:1px solid var(--c-border);position:sticky;top:0;height:100vh;padding:var(--space-4);gap:var(--space-1)}.sidebar a{display:flex;align-items:center;gap:10px;min-height:var(--touch);padding:0 var(--space-3);border-radius:var(--radius-m);color:var(--c-text-2);font-weight:500;position:relative}.sidebar a.active{background:var(--c-primary-soft);color:var(--c-primary-strong);font-weight:700}.sidebar a:hover{text-decoration:none;background:var(--c-surface-2)}.sidebar .badge{position:static;margin-left:auto}.bottom-nav{display:none}.main-content{padding-bottom:var(--space-8)}.fab{display:none}.modal-backdrop{align-items:center}.modal{border-radius:var(--radius-l)}.topbar{display:block}}body[data-readonly=true] .btn:not(.allow-ro),body[data-readonly=true] .fab{opacity:.45;pointer-events:none}body[data-readonly=true] .list-item input[type=checkbox]{opacity:.45;pointer-events:none}body[data-readonly=true] .btn.allow-ro,body[data-readonly=true] a.btn,body[data-readonly=true] .modal .btn.secondary,body[data-readonly=true] .modal .btn.ghost{opacity:1;pointer-events:auto}@media print{.topbar,.sidebar,.bottom-nav,.fab,.no-print{display:none!important}body{background:#fff;color:#000}.card{box-shadow:none;border-color:#ccc}.main-content{padding:0}@page{size:A4;margin:14mm}}.logo{font-weight:800;letter-spacing:-.035em;color:var(--c-text);line-height:1;white-space:nowrap}.logo-dot{color:var(--c-primary)}.tagline{font-size:14px;color:var(--c-text-2);margin:6px 0 0}
