:root{--color-bg:#f6f7f3;--color-surface:#ffffff;--color-surface-sunken:#eef0ea;--color-border:#dde1d7;--color-border-strong:#c2c8b9;--color-text:#1b211c;--color-text-muted:#5c6459;--color-text-faint:#8b9285;--color-accent:#2f6d5c;--color-accent-hover:#234f42;--color-accent-soft:#e2eee8;--color-accent-text:#1d4a3d;--color-danger:#ac2b22;--color-danger-soft:#fbe9e7;--color-warning:#8a5a00;--color-warning-soft:#fbf0d9;--color-success:#1e7a46;--color-success-soft:#e5f4ea;--color-info:#33587a;--color-info-soft:#e6edf4;--font-ui:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--shadow-sm:0 1px 2px rgba(27,33,28,0.06);--shadow-md:0 4px 16px rgba(27,33,28,0.08);--sidebar-width:248px;--header-height:64px}*{box-sizing:border-box}body,html{padding:0;margin:0}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-ui);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font-family:inherit}.data-table td.num,.num,.summary-card__value{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1,"tnum"}h1,h2,h3{margin:0;font-weight:700;letter-spacing:-.01em}h1{font-size:28px}h2{font-size:20px}h3{font-size:16px}p{margin:0}::selection{background:var(--color-accent-soft);color:var(--color-accent-text)}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 18px;border-radius:var(--radius-sm);border:1px solid transparent;font-size:15px;font-weight:600;cursor:pointer;transition:background-color .15s ease,border-color .15s ease,opacity .15s ease;white-space:nowrap}.btn:disabled{opacity:.55;cursor:not-allowed}.btn--primary{background:var(--color-accent);color:#ffffff}.btn--primary:hover:not(:disabled){background:var(--color-accent-hover)}.btn--secondary{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border-strong)}.btn--secondary:hover:not(:disabled){background:var(--color-surface-sunken)}.btn--danger{background:var(--color-danger);color:#ffffff}.btn--danger:hover:not(:disabled){opacity:.9}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:14px;font-weight:600;color:var(--color-text-muted)}.field input,.field select,.field textarea{font-family:inherit;font-size:16px;padding:11px 14px;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text)}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--color-accent)}.field-error{font-size:13px;color:var(--color-danger)}.badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;font-size:13px;font-weight:600;white-space:nowrap}.badge--neutral{background:var(--color-surface-sunken);color:var(--color-text-muted)}.badge--accent{background:var(--color-accent-soft);color:var(--color-accent-text)}.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--info{background:var(--color-info-soft);color:var(--color-info)}.data-table-wrap{overflow-x:auto;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.data-table{width:100%;border-collapse:collapse;font-size:15px}.data-table thead th{position:-webkit-sticky;position:sticky;top:0;background:var(--color-surface-sunken);text-align:left;padding:12px 16px;font-weight:700;color:var(--color-text-muted);border-bottom:1px solid var(--color-border);white-space:nowrap;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.data-table thead th:hover{color:var(--color-text)}.data-table tbody td{padding:12px 16px;border-bottom:1px solid var(--color-border);white-space:nowrap}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr:hover{background:var(--color-surface-sunken)}.data-table td.num,.data-table th.num{text-align:right}.data-table--clickable tbody tr{cursor:pointer}.empty-state{padding:48px 24px;text-align:center;color:var(--color-text-muted)}.empty-state h3{margin-bottom:8px;color:var(--color-text)}.skeleton{background:linear-gradient(90deg,var(--color-surface-sunken) 25%,var(--color-border) 37%,var(--color-surface-sunken) 63%);background-size:400% 100%;animation:skeleton-loading 1.4s ease infinite;border-radius:var(--radius-sm)}@keyframes skeleton-loading{0%{background-position:100% 50%}to{background-position:0 50%}}@media (prefers-reduced-motion:reduce){.skeleton{animation:none}*{transition-duration:.01ms!important}}.banner{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;border-radius:var(--radius-md);font-size:15px}.banner--danger{background:var(--color-danger-soft);color:var(--color-danger)}.banner--warning{background:var(--color-warning-soft);color:var(--color-warning)}.banner--success{background:var(--color-success-soft);color:var(--color-success)}.banner--info{background:var(--color-info-soft);color:var(--color-info)}.form-input{font-family:inherit;font-size:16px;padding:11px 14px;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);width:100%}.form-input:focus{border-color:var(--color-accent)}.summary-grid{display:grid;grid-gap:14px;gap:14px}.summary-grid--5{grid-template-columns:repeat(5,minmax(150px,1fr))}@media (max-width:1200px){.summary-grid--5{grid-template-columns:repeat(3,minmax(150px,1fr))}}@media (max-width:700px){.summary-grid--5{grid-template-columns:1fr}}.profit-kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));grid-gap:14px;gap:14px}.profit-kpi{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;padding:18px 20px;text-align:left;color:var(--color-text);cursor:pointer;display:flex;flex-direction:column;gap:6px;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}.profit-kpi:hover{transform:translateY(-1px);border-color:var(--color-accent);box-shadow:var(--shadow-md)}.profit-kpi--active{border:2px solid var(--color-accent);background:var(--color-accent-soft)}.profit-kpi__label{font-size:13px;font-weight:700;color:var(--color-text-muted)}.profit-kpi__value{font-size:27px;line-height:1.15;font-weight:800;display:flex;align-items:center;gap:10px}.profit-kpi__hint{font-size:12px;color:var(--color-text-faint)}.profit-pulse-dot{width:13px;height:13px;border-radius:999px;background:var(--color-success);box-shadow:0 0 0 0 rgba(30,122,70,.55);animation:vena-profit-pulse 1.5s ease-in-out infinite;flex:0 0 auto}@keyframes vena-profit-pulse{0%,to{opacity:.45;box-shadow:0 0 0 0 rgba(30,122,70,.45)}50%{opacity:1;box-shadow:0 0 0 8px rgba(30,122,70,0)}}.profit-detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-gap:10px;gap:10px}.profit-detail-grid>div,.profit-expense-grid>div{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-sunken);padding:10px 12px;display:flex;flex-direction:column;gap:3px}.profit-detail-grid span,.profit-expense-grid span{color:var(--color-text-muted);font-size:12px}.profit-detail-grid strong,.profit-expense-grid strong{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:16px}.profit-detail-grid small{color:var(--color-text-faint);font-size:11px}.profit-expense-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));grid-gap:8px;gap:8px}.profit-total-line{margin-top:12px;padding:13px 15px;border-radius:var(--radius-sm);background:var(--color-surface-sunken);display:flex;justify-content:space-between;gap:12px;font-weight:700}.profit-total-line--success{background:var(--color-success-soft);color:var(--color-success)}.profit-order-detail{border-color:var(--color-accent);box-shadow:var(--shadow-md)}@media (prefers-reduced-motion:reduce){.profit-pulse-dot{animation:none;opacity:1}}