.toast-container{position:fixed;bottom:24px;right:24px;z-index:99999;display:flex;flex-direction:column;gap:10px;pointer-events:none;max-width:380px;width:calc(100vw - 48px)}.toast{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:12px;box-shadow:var(--shadow-md);pointer-events:all;font-size:.875rem;font-weight:500;line-height:1.4;border:1px solid var(--color-border);min-width:280px}.toast-enter{animation:toastSlideIn .35s var(--transition-base) forwards}.toast-exit{animation:toastSlideOut .35s ease-in forwards}@keyframes toastSlideIn{0%{opacity:0;transform:translate(100%) scale(.9)}to{opacity:1;transform:translate(0) scale(1)}}@keyframes toastSlideOut{0%{opacity:1;transform:translate(0) scale(1)}to{opacity:0;transform:translate(100%) scale(.9)}}.toast-success{background:linear-gradient(135deg,#ecfdf5,#d1fae5);border-color:#6ee7b7;color:#065f46}.toast-success .toast-icon{color:#10b981;font-size:1.1rem;flex-shrink:0}.toast-error{background:linear-gradient(135deg,#fef2f2,#fee2e2);border-color:#fca5a5;color:#7f1d1d}.toast-error .toast-icon{color:#ef4444;font-size:1.1rem;flex-shrink:0}.toast-warning{background:linear-gradient(135deg,#fffbeb,#fef3c7);border-color:#fcd34d;color:#78350f}.toast-warning .toast-icon{color:#f59e0b;font-size:1.1rem;flex-shrink:0}.toast-info{background:linear-gradient(135deg,#eff6ff,#dbeafe);border-color:#93c5fd;color:#1e3a5f}.toast-info .toast-icon{color:#3b82f6;font-size:1.1rem;flex-shrink:0}.toast-message{flex:1}.toast-close{background:none;border:none;cursor:pointer;padding:2px;display:flex;align-items:center;justify-content:center;border-radius:6px;opacity:.6;transition:opacity .2s,background .2s;color:inherit;flex-shrink:0}.toast-close:hover{opacity:1;background:#00000014}@media (max-width: 480px){.toast-container{bottom:16px;right:12px;left:12px;width:auto;max-width:100%}.toast{min-width:unset;width:100%}}:root{--color-primary-50: #eef6fe;--color-primary-100: #d9ecfc;--color-primary-200: #b3d8f8;--color-primary-500: #0a84e0;--color-primary-600: #0870c2;--color-primary-700: #075b9e;--color-primary-900: #06264a;--color-bg: #f5f7fa;--color-surface: #ffffff;--color-surface-2: #f8fafc;--color-border: #e5e9f0;--color-border-strong: #cfd6e2;--color-text: #0f172a;--color-text-2: #334155;--color-text-muted: #64748b;--color-text-faint: #94a3b8;--color-success: #12a150;--color-success-soft: #e7f7ee;--color-danger: #dc2626;--color-danger-soft: #fdecec;--color-warning: #d97706;--color-warning-soft: #fef4e2;--color-info: #0a84e0;--color-info-soft: #eef6fe;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .05);--shadow-md: 0 4px 12px rgba(15, 23, 42, .06);--shadow-lg: 0 16px 40px rgba(15, 23, 42, .14);--font-regular: 400;--font-semibold: 600;--font-bold: 700;--sidebar-width: 248px;--sidebar-collapsed: 72px;--header-height: 64px;--transition-fast: .15s ease;--transition-base: .2s ease;--transition-speed: .2s}.ui-page{padding:24px 28px 48px;display:flex;flex-direction:column;gap:18px;max-width:1600px;margin:0 auto;width:100%}.ui-page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}.ui-page-head h2{font-size:1.35rem;font-weight:700;letter-spacing:-.02em;color:var(--color-text)}.ui-page-head p{font-size:.875rem;color:var(--color-text-muted);margin-top:2px}.ui-page-head{align-items:center}.ui-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.ui-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:36px;padding:0 14px;border-radius:var(--radius-md);border:1px solid transparent;font:inherit;font-size:.85rem;font-weight:600;cursor:pointer;white-space:nowrap;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast)}.ui-btn:disabled{opacity:.55;cursor:not-allowed}.ui-btn-primary{background:var(--color-primary-600);color:#fff}.ui-btn-primary:hover:not(:disabled){background:var(--color-primary-700)}.ui-btn-secondary{background:var(--color-surface);color:var(--color-text-2);border-color:var(--color-border)}.ui-btn-secondary:hover:not(:disabled){background:var(--color-surface-2);border-color:var(--color-border-strong)}.ui-btn-danger{background:var(--color-surface);color:var(--color-danger);border-color:#f5c2c2}.ui-btn-danger:hover:not(:disabled){background:var(--color-danger-soft)}.ui-btn-success{background:var(--color-success);color:#fff}.ui-btn-sm{height:30px;padding:0 10px;font-size:.8rem}.ui-icon-btn{width:34px;height:34px;padding:0}.ui-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}.ui-stat{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:14px 16px;display:flex;flex-direction:column;gap:4px;text-align:left;font:inherit}button.ui-stat{cursor:pointer;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}button.ui-stat:hover{border-color:var(--color-border-strong)}button.ui-stat.is-active{border-color:var(--color-primary-500);box-shadow:0 0 0 3px var(--color-primary-100)}.ui-stat-label{font-size:.78rem;font-weight:600;color:var(--color-text-muted);display:flex;align-items:center;gap:6px}.ui-stat-value{font-size:1.45rem;font-weight:700;color:var(--color-text);letter-spacing:-.02em;font-variant-numeric:tabular-nums}.ui-stat-sub{font-size:.76rem;color:var(--color-text-muted)}.ui-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.ui-card-head{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--color-border);flex-wrap:wrap}.ui-card-head h3{font-size:.95rem;font-weight:700}.ui-toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:12px 16px;border-bottom:1px solid var(--color-border)}.ui-search{display:flex;align-items:center;gap:8px;height:36px;padding:0 10px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);flex:1 1 260px;max-width:420px}.ui-search:focus-within{border-color:var(--color-primary-500);box-shadow:0 0 0 3px var(--color-primary-100)}.ui-search svg{color:var(--color-text-faint);flex-shrink:0}.ui-search input{border:0;outline:none;flex:1;min-width:0;font:inherit;font-size:.86rem;background:transparent;color:var(--color-text)}.ui-search button{border:0;background:none;color:var(--color-text-muted);cursor:pointer;display:grid}.ui-select{height:36px;padding:0 30px 0 10px;border:1px solid var(--color-border);border-radius:var(--radius-md);font:inherit;font-size:.85rem;color:var(--color-text-2);background:var(--color-surface)}.ui-segmented{display:inline-flex;padding:3px;background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-md);gap:2px;flex-wrap:wrap}.ui-segmented button{border:0;background:none;padding:5px 11px;border-radius:6px;font:inherit;font-size:.8rem;font-weight:600;color:var(--color-text-muted);cursor:pointer;display:inline-flex;align-items:center;gap:6px}.ui-segmented button.is-active{background:var(--color-surface);color:var(--color-text);box-shadow:0 0 0 1px var(--color-border),var(--shadow-sm)}.ui-count{font-size:.7rem;color:var(--color-text-faint);font-variant-numeric:tabular-nums}.ui-toolbar-meta{margin-left:auto;font-size:.8rem;color:var(--color-text-muted)}.ui-table-wrap{overflow-x:auto}.ui-table{width:100%;border-collapse:collapse;font-size:.86rem}.ui-table th{text-align:left;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);background:var(--color-surface-2);padding:10px 14px;border-bottom:1px solid var(--color-border);white-space:nowrap;position:sticky;top:0;z-index:1}.ui-table th button{all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:4px}.ui-table td{padding:11px 14px;border-bottom:1px solid var(--color-border);color:var(--color-text-2);vertical-align:middle}.ui-table tbody tr{transition:background var(--transition-fast)}.ui-table tbody tr.is-click{cursor:pointer}.ui-table tbody tr:hover{background:var(--color-surface-2)}.ui-table tbody tr.is-selected{background:var(--color-primary-50)}.ui-table .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.ui-table .strong{color:var(--color-text);font-weight:600}.ui-cell-main{display:flex;align-items:center;gap:10px;min-width:0}.ui-cell-text{display:flex;flex-direction:column;min-width:0;line-height:1.3}.ui-cell-text strong{color:var(--color-text);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:260px}.ui-cell-text small{color:var(--color-text-muted);font-size:.76rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:260px}.ui-avatar{width:34px;height:34px;border-radius:50%;flex-shrink:0;display:grid;place-items:center;background:var(--color-primary-100);color:var(--color-primary-700);font-weight:700;font-size:.8rem;overflow:hidden}.ui-avatar img{width:100%;height:100%;object-fit:cover}.ui-mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem;color:var(--color-text-muted)}.ui-muted{color:var(--color-text-muted)}.ui-empty{padding:48px 16px;text-align:center;color:var(--color-text-muted);display:flex;flex-direction:column;align-items:center;gap:8px}.ui-empty svg{font-size:1.8rem;color:var(--color-text-faint)}.ui-pager{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 16px;font-size:.8rem;color:var(--color-text-muted);flex-wrap:wrap}.ui-pager-btns{display:flex;gap:6px;align-items:center}.ui-badge{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:999px;font-size:.74rem;font-weight:600;white-space:nowrap;background:var(--color-surface-2);color:var(--color-text-2);border:1px solid var(--color-border)}.ui-badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.8}.ui-badge.no-dot:before{display:none}.ui-badge-success{background:var(--color-success-soft);color:#0b7a3b;border-color:transparent}.ui-badge-warning{background:var(--color-warning-soft);color:#a85b04;border-color:transparent}.ui-badge-danger{background:var(--color-danger-soft);color:#b91c1c;border-color:transparent}.ui-badge-info{background:var(--color-info-soft);color:var(--color-primary-700);border-color:transparent}.ui-drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a59;z-index:900;display:flex;justify-content:flex-end;animation:ui-fade .15s ease}.ui-drawer{width:min(560px,100%);height:100%;background:var(--color-surface);display:flex;flex-direction:column;box-shadow:var(--shadow-lg);animation:ui-slide .2s ease}@keyframes ui-fade{0%{opacity:0}}@keyframes ui-slide{0%{transform:translate(24px);opacity:.6}}.ui-drawer-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px 20px;border-bottom:1px solid var(--color-border)}.ui-drawer-head h2{font-size:1.1rem;font-weight:700}.ui-drawer-head p{font-size:.8rem;color:var(--color-text-muted);margin-top:2px}.ui-drawer-body{flex:1;overflow-y:auto;padding:18px 20px;display:flex;flex-direction:column;gap:20px}.ui-drawer-foot{border-top:1px solid var(--color-border);padding:14px 20px;display:flex;flex-direction:column;gap:10px}.ui-section h4{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);margin-bottom:8px;display:flex;align-items:center;gap:6px}.ui-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--color-border);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.ui-field{background:var(--color-surface);padding:9px 12px;display:flex;flex-direction:column;gap:2px;min-width:0}.ui-field.is-wide{grid-column:1 / -1}.ui-field:last-child:nth-child(odd){grid-column:1 / -1}.ui-field span{font-size:.72rem;color:var(--color-text-muted)}.ui-field strong{font-size:.86rem;font-weight:500;color:var(--color-text);overflow-wrap:anywhere}.ui-field a{color:var(--color-primary-600);font-weight:600;text-decoration:none}.ui-field a:hover{text-decoration:underline}.ui-lines{border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.ui-line{display:flex;gap:12px;padding:10px 12px;align-items:center;border-bottom:1px solid var(--color-border)}.ui-line:last-child{border-bottom:0}.ui-line-img{width:44px;height:44px;border-radius:var(--radius-sm);object-fit:cover;background:var(--color-surface-2);flex-shrink:0;display:grid;place-items:center;color:var(--color-text-faint)}.ui-line-main{flex:1;min-width:0}.ui-line-main strong{display:block;font-size:.86rem;color:var(--color-text)}.ui-line-main small{font-size:.76rem;color:var(--color-text-muted);display:block}.ui-line-amount{text-align:right;font-size:.86rem;font-weight:600;white-space:nowrap;font-variant-numeric:tabular-nums}.ui-line-amount small{display:block;font-weight:400;color:var(--color-text-muted);font-size:.74rem}.ui-totals{margin-top:10px;display:flex;flex-direction:column;gap:5px;font-size:.85rem}.ui-totals div{display:flex;justify-content:space-between;color:var(--color-text-2)}.ui-totals .is-total{border-top:1px solid var(--color-border);padding-top:8px;margin-top:3px;font-size:1rem;font-weight:700;color:var(--color-text)}.ui-timeline{display:flex;align-items:center;gap:0}.ui-step{display:flex;flex-direction:column;align-items:center;gap:6px;flex:1;font-size:.74rem;color:var(--color-text-faint);position:relative}.ui-step:before{content:"";position:absolute;top:9px;left:-50%;right:50%;height:2px;background:var(--color-border)}.ui-step:first-child:before{display:none}.ui-step i{width:20px;height:20px;border-radius:50%;border:2px solid var(--color-border);background:var(--color-surface);position:relative;z-index:1;display:grid;place-items:center;font-style:normal;font-size:.65rem}.ui-step.is-done{color:var(--color-text-2);font-weight:600}.ui-step.is-done i{background:var(--color-primary-500);border-color:var(--color-primary-500);color:#fff}.ui-step.is-done:before{background:var(--color-primary-500)}.ui-step.is-cancel i{background:var(--color-danger);border-color:var(--color-danger);color:#fff}.ui-status-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.ui-status-actions .ui-btn{height:38px}.ui-status-actions .ui-btn.is-current{background:var(--color-primary-50);border-color:var(--color-primary-500);color:var(--color-primary-700)}.ui-alert{display:flex;gap:10px;padding:10px 12px;border-radius:var(--radius-md);font-size:.84rem;background:var(--color-warning-soft);color:#7a4504}.ui-alert.is-info{background:var(--color-info-soft);color:var(--color-primary-900)}.ui-dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;z-index:1000;display:grid;place-items:center;padding:16px}.ui-dialog{background:var(--color-surface);border-radius:var(--radius-lg);padding:22px;width:min(420px,100%);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;gap:14px}.ui-dialog h3{font-size:1.02rem}.ui-dialog p{font-size:.88rem;color:var(--color-text-2)}.ui-dialog-actions{display:flex;justify-content:flex-end;gap:8px}.ui-skeleton{background:linear-gradient(90deg,var(--color-surface-2),#eef1f5,var(--color-surface-2));background-size:200% 100%;animation:ui-shimmer 1.3s infinite;border-radius:6px}@keyframes ui-shimmer{to{background-position:-200% 0}}@media (max-width: 960px){.ui-page{padding:16px 14px 40px}.ui-fields{grid-template-columns:1fr}.ui-status-actions{grid-template-columns:repeat(2,1fr)}.ui-hide-sm{display:none}.ui-search{max-width:none}}@media print{.no-print{display:none!important}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}html,body,#root{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background-color:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html{scroll-behavior:smooth}body,#root{min-height:100vh}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:#94a3b8}.spinner{animation:globalSpin .8s linear infinite;display:inline-block}@keyframes globalSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;height:60vh;color:var(--color-text-muted);font-size:.9rem}:focus-visible{outline:2px solid var(--color-primary-500);outline-offset:2px}button,input,textarea,select{font-family:inherit}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.tabular-nums{font-variant-numeric:tabular-nums}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
