@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap";.loading-screen{position:fixed;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,var(--bg-primary) 0%,var(--bg-secondary) 100%);display:flex;align-items:center;justify-content:center;z-index:9999}.loading-content{display:flex;flex-direction:column;align-items:center;gap:24px}.loading-logo-container{width:120px;height:120px;background:#fff;border-radius:24px;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 40px #0003}.loading-logo{width:100px;height:100px;object-fit:contain}.loading-spinner{display:flex;align-items:center;justify-content:center}.loading-spinner .spinner{width:40px;height:40px;border:3px solid var(--border-color);border-top-color:var(--accent-primary);border-radius:50%;animation:spin .8s linear infinite}.loading-text{font-size:14px;color:var(--text-secondary);margin:0;font-weight:500}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.loading-logo-container{animation:pulse 2s ease-in-out infinite}.toast-container{position:fixed;top:80px;right:24px;z-index:10000;display:flex;flex-direction:column;gap:12px;max-width:420px}.toast{display:flex;align-items:center;gap:12px;padding:16px 20px;background:var(--bg-primary);border-radius:12px;box-shadow:0 4px 12px #00000026,0 0 0 1px #0000000d;animation:slideInToast .3s cubic-bezier(.4,0,.2,1);min-width:320px;max-width:100%}.toast-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center}.toast-content{flex:1;display:flex;flex-direction:column;gap:8px}.toast-message{font-size:14px;font-weight:500;line-height:1.5;color:var(--text-primary)}.toast-undo-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:6px;font-size:13px;font-weight:500;color:var(--accent-primary);cursor:pointer;transition:all .2s;width:fit-content}.toast-undo-btn:hover{background:var(--accent-primary);color:#fff;border-color:var(--accent-primary)}.toast-with-undo{padding:16px 20px}.toast-close{flex-shrink:0;background:none;border:none;color:var(--text-tertiary);cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}.toast-close:hover{background:var(--bg-tertiary);color:var(--text-primary)}.toast-success{border-left:4px solid var(--success)}.toast-success .toast-icon{color:var(--success)}.toast-error{border-left:4px solid var(--error)}.toast-error .toast-icon{color:var(--error)}.toast-warning{border-left:4px solid var(--warning)}.toast-warning .toast-icon{color:var(--warning)}.toast-info{border-left:4px solid var(--accent-primary)}.toast-info .toast-icon{color:var(--accent-primary)}@keyframes slideInToast{0%{transform:translate(400px);opacity:0}to{transform:translate(0);opacity:1}}@media (max-width: 768px){.toast-container{top:70px;right:16px;left:16px;max-width:none}.toast{min-width:auto;padding:14px 16px}.toast-message{font-size:13px}}@media (max-width: 480px){.toast-container{top:60px;right:12px;left:12px}.toast{padding:12px 14px;gap:10px}.toast-message{font-size:12px}}.auth-page{min-height:100vh;display:flex;background:var(--bg-primary)}.auth-branding{flex:1;background:var(--accent-gradient);display:flex;align-items:center;justify-content:center;padding:60px;position:relative;overflow:hidden}.branding-content{position:relative;z-index:2;max-width:500px;color:#fff}.branding-logo{width:310px;height:88px;background:#fff;border-radius:20px;display:flex;align-items:center;justify-content:center;margin-bottom:24px;box-shadow:0 10px 40px #0003}.branding-logo img{width:293px;height:75px;object-fit:contain}.branding-content h1{font-size:48px;font-weight:800;margin:0 0 12px;letter-spacing:-1px}.branding-tagline{font-size:18px;opacity:.9;margin:0 0 48px;line-height:1.6}.branding-features{display:flex;flex-direction:column;gap:24px}.feature-item{display:flex;align-items:flex-start;gap:16px}.feature-icon{width:48px;height:48px;background:#fff3;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.feature-text h3{font-size:16px;font-weight:600;margin:0 0 4px}.feature-text p{font-size:14px;opacity:.8;margin:0;line-height:1.5}.branding-decoration{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;z-index:1}.decoration-circle{position:absolute;border-radius:50%;border:1px solid rgba(255,255,255,.1)}.decoration-circle.circle-1{width:400px;height:400px;top:-100px;right:-100px;animation:float 20s ease-in-out infinite}.decoration-circle.circle-2{width:300px;height:300px;bottom:-50px;left:-50px;animation:float 15s ease-in-out infinite reverse}.decoration-circle.circle-3{width:200px;height:200px;top:50%;left:50%;transform:translate(-50%,-50%);animation:float 25s ease-in-out infinite}@keyframes float{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-20px) rotate(5deg)}}.auth-form-section{flex:1;display:flex;align-items:center;justify-content:center;padding:60px;background:var(--bg-primary)}.auth-form-container{width:100%;max-width:400px}.auth-form-header{margin-bottom:32px}.auth-form-header h2{font-size:28px;font-weight:700;color:var(--text-primary);margin:0 0 8px}.auth-form-header p{font-size:15px;color:var(--text-secondary);margin:0}.auth-form{display:flex;flex-direction:column;gap:20px}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{font-size:14px;font-weight:500;color:var(--text-primary)}.form-group input{width:100%;padding:14px;border:2px solid var(--border-color);border-radius:10px;font-size:15px;background:var(--bg-secondary);color:var(--text-primary);transition:all .2s}.form-group input:focus{outline:none;border-color:var(--accent-primary);background:var(--bg-primary);box-shadow:0 0 0 4px rgba(var(--accent-primary-rgb, 99, 102, 241),.1)}.form-group input:disabled{opacity:.6;cursor:not-allowed}.password-input-wrapper{position:relative;display:flex;align-items:center}.password-input-wrapper input{padding-right:44px}.password-toggle{position:absolute;right:14px;background:none;border:none;color:var(--text-tertiary);cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;transition:color .2s}.password-toggle:hover{color:var(--text-primary)}.form-options{display:flex;align-items:center;justify-content:space-between;font-size:14px}.checkbox-label{display:flex;align-items:center;gap:8px;cursor:pointer;color:var(--text-secondary)}.checkbox-label input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent-primary);cursor:pointer}.forgot-link{color:var(--accent-primary);text-decoration:none;font-weight:500;transition:color .2s}.forgot-link:hover{color:var(--accent-hover);text-decoration:underline}.btn-login{width:100%;padding:16px 24px;background:var(--accent-gradient);color:#fff;border:none;border-radius:10px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s;margin-top:8px;box-shadow:0 4px 15px rgba(var(--accent-primary-rgb, 99, 102, 241),.3)}.btn-login:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px rgba(var(--accent-primary-rgb, 99, 102, 241),.4)}.btn-login:active:not(:disabled){transform:translateY(0)}.btn-login:disabled{opacity:.7;cursor:not-allowed;transform:none}.btn-content{display:flex;align-items:center;justify-content:center;gap:8px}.btn-loading{display:flex;align-items:center;justify-content:center;gap:10px}.spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.error-message{padding:14px 16px;background:var(--error-light);border:1px solid var(--error);border-radius:10px;color:var(--error);font-size:14px;display:flex;align-items:center;gap:10px}.auth-footer{margin-top:28px;text-align:center}.auth-footer p{color:var(--text-secondary);font-size:14px;margin:0}.auth-footer a{color:var(--accent-primary);text-decoration:none;font-weight:600;transition:color .2s}.auth-footer a:hover{color:var(--accent-hover);text-decoration:underline}.auth-footer-branding{margin-top:40px;text-align:center}.auth-footer-branding p{font-size:12px;color:var(--text-tertiary);margin:0}.auth-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--accent-primary) 0%,var(--accent-hover) 100%);padding:20px}.auth-card{background:var(--bg-primary);border-radius:16px;box-shadow:0 20px 60px #00000026;width:100%;max-width:450px;padding:48px}.auth-header{text-align:center;margin-bottom:32px}.auth-header h1{font-size:32px;font-weight:700;color:var(--accent-primary);margin-bottom:8px}.auth-header h2{font-size:24px;font-weight:600;color:var(--text-primary)}.auth-form .btn-primary{width:100%;padding:14px 24px;background:var(--accent-gradient);color:#fff;border:none;border-radius:10px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s;margin-top:8px}.auth-form .btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px rgba(var(--accent-primary-rgb, 99, 102, 241),.4)}.auth-form .btn-primary:disabled{opacity:.6;cursor:not-allowed}@media (max-width: 1024px){.auth-page{flex-direction:column}.auth-branding{padding:40px;min-height:auto}.branding-content h1{font-size:36px}.branding-tagline{font-size:16px;margin-bottom:32px}.branding-features{display:none}.auth-form-section{padding:40px}.decoration-circle.circle-1{width:200px;height:200px}.decoration-circle.circle-2{width:150px;height:150px}}@media (max-width: 640px){.auth-branding{padding:32px 24px}.branding-logo{width:194px;height:56px;margin-bottom:16px}.branding-logo img{width:183px;height:47px}.branding-content h1{font-size:28px}.branding-tagline{font-size:14px;margin-bottom:0}.auth-form-section{padding:32px 24px}.auth-form-header h2{font-size:24px}.form-group input{padding:12px;font-size:14px}.password-input-wrapper input{padding-right:40px}.btn-login{padding:14px 20px;font-size:15px}}:root{--ui-bg-0: var(--bg-primary);--ui-bg-1: var(--bg-secondary);--ui-bg-2: var(--bg-tertiary);--ui-fg-0: var(--text-primary);--ui-fg-1: var(--text-secondary);--ui-fg-2: var(--text-tertiary);--ui-border: var(--border-color);--ui-border-strong: #cbd5e1;--ui-accent: #27ae60;--ui-accent-hover: #1f8f4f;--ui-accent-fg: #ffffff;--ui-accent-bg: rgba(46, 204, 113, .12);--ui-focus: 0 0 0 3px rgba(46, 204, 113, .35);--ui-neutral: #475569;--ui-neutral-bg: rgba(100, 116, 139, .14);--ui-info: #1d4ed8;--ui-info-bg: rgba(37, 99, 235, .12);--ui-ok: #15803d;--ui-ok-bg: rgba(22, 163, 74, .12);--ui-warn: #b45309;--ui-warn-bg: rgba(217, 119, 6, .14);--ui-danger: #b91c1c;--ui-danger-bg: rgba(220, 38, 38, .1);--ui-violet: #4338ca;--ui-violet-bg: rgba(79, 70, 229, .12);--ui-info-solid: #2563eb;--ui-danger-solid: #dc2626;--ui-ok-solid: #16a34a;--ui-danger-on-dark: #fca5a5;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 24px;--sp-6: 32px;--fs-xs: 11px;--fs-sm: 12px;--fs-base: 13px;--fs-md: 14px;--fs-lg: 16px;--fs-xl: 20px;--fs-2xl: 26px;--lh: 1.45;--r-sm: 6px;--r-md: 10px;--r-lg: 14px;--r-pill: 999px;--z-sticky: 10;--z-drawer: 1000;--z-modal: 1100;--z-popover: 1200;--z-toast: 1300;--sh-1: 0 1px 2px rgba(15, 23, 42, .06);--sh-2: 0 4px 12px rgba(15, 23, 42, .1);--sh-3: 0 16px 40px rgba(15, 23, 42, .18);--ctl-h: 34px;--ctl-h-sm: 28px;--ctl-h-lg: 40px}[data-theme=dark]{--ui-border-strong: #475569;--ui-neutral: #cbd5e1;--ui-neutral-bg: rgba(148, 163, 184, .18);--ui-info: #93c5fd;--ui-ok: #86efac;--ui-warn: #fcd34d;--ui-danger: #fca5a5;--ui-violet: #a5b4fc;--ui-accent-bg: rgba(46, 204, 113, .18);--ui-danger-on-dark: #f87171;--sh-1: 0 1px 2px rgba(0, 0, 0, .4);--sh-2: 0 4px 12px rgba(0, 0, 0, .5);--sh-3: 0 16px 40px rgba(0, 0, 0, .6)}.ui-page{font-size:var(--fs-base);line-height:var(--lh);color:var(--ui-fg-0);display:flex;flex-direction:column;gap:var(--sp-3);min-width:0}.ui-page *:focus-visible{outline:none;box-shadow:var(--ui-focus)}.cell-2{display:flex;flex-direction:column;gap:1px;min-width:0;line-height:1.3}.cell-2>.ui-muted{font-size:var(--fs-xs)}.ui-muted{color:var(--ui-fg-1);font-size:var(--fs-sm)}.ui-strong{font-weight:600;color:var(--ui-fg-0)}.ui-num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.ui-nowrap{white-space:nowrap}.ui-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-row{display:flex;align-items:center;gap:var(--sp-2)}.ui-wrap{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2)}.ui-grow{flex:1;min-width:0}.ui-stack{display:flex;flex-direction:column;gap:var(--sp-3)}.ui-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.ui-card{background:var(--ui-bg-0);border:1px solid var(--ui-border);border-radius:var(--r-lg);box-shadow:var(--sh-1)}.ui-card-pad{padding:var(--sp-4) var(--sp-5)}.ui-card h4{margin:0 0 var(--sp-3);font-size:var(--fs-sm);font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--ui-fg-1);display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2)}.ui-banner{display:flex;align-items:flex-start;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);font-size:var(--fs-base);border:1px solid transparent}.ui-banner.danger{background:var(--ui-danger-bg);color:var(--ui-danger)}.ui-banner.warn{background:var(--ui-warn-bg);color:var(--ui-warn)}.ui-banner.info{background:var(--ui-info-bg);color:var(--ui-info)}.ui-banner.ok{background:var(--ui-ok-bg);color:var(--ui-ok)}@media print{.ui-no-print{display:none!important}}.ui-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:var(--ctl-h);padding:0 var(--sp-3);border-radius:var(--r-sm);border:1px solid transparent;font:inherit;font-size:var(--fs-base);font-weight:600;line-height:1;cursor:pointer;white-space:nowrap;color:var(--ui-fg-0);background:transparent;transition:background .12s,border-color .12s,color .12s;text-decoration:none;position:relative;overflow:visible}.ui-btn:disabled{opacity:.55;cursor:not-allowed}.ui-btn.sm{height:var(--ctl-h-sm);padding:0 var(--sp-2);font-size:var(--fs-sm)}.ui-btn.lg{height:var(--ctl-h-lg);padding:0 var(--sp-4);font-size:var(--fs-md)}.ui-btn.block{width:100%}.ui-btn.primary{background:var(--ui-accent);color:var(--ui-accent-fg);border-color:var(--ui-accent)}.ui-btn.primary:not(:disabled):hover{background:var(--ui-accent-hover);border-color:var(--ui-accent-hover)}.ui-btn.secondary{background:var(--ui-bg-0);border-color:var(--ui-border-strong);color:var(--ui-fg-0)}.ui-btn.secondary:not(:disabled):hover{background:var(--ui-bg-2)}.ui-btn.ghost{color:var(--ui-fg-1)}.ui-btn.ghost:not(:disabled):hover{background:var(--ui-bg-2);color:var(--ui-fg-0)}.ui-btn.danger{background:var(--ui-bg-0);border-color:var(--ui-border-strong);color:var(--ui-danger)}.ui-btn.danger:not(:disabled):hover{background:var(--ui-danger-bg);border-color:var(--ui-danger)}.ui-btn.danger.solid{background:var(--ui-danger-solid);border-color:var(--ui-danger-solid);color:#fff}.ui-btn.danger.solid:not(:disabled):hover{filter:brightness(.9)}.ui-btn.link{height:auto;padding:0;color:var(--ui-info);font-weight:500}.ui-btn.link:not(:disabled):hover{text-decoration:underline}.ui-btn.pillbtn{height:26px;padding:0 10px;border-radius:var(--r-pill);font-size:var(--fs-sm);font-weight:600;background:var(--ui-bg-1);border-color:var(--ui-border)}.ui-btn.pillbtn:not(:disabled):hover{background:var(--ui-bg-2);border-color:var(--ui-border-strong)}.ui-btn.icon{width:var(--ctl-h);padding:0}.ui-btn.icon.sm{width:var(--ctl-h-sm)}.ui-btn .ui-spin{width:14px;height:14px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:ui-spin .7s linear infinite}@keyframes ui-spin{to{transform:rotate(360deg)}}.ui-menu{position:fixed;z-index:var(--z-popover);min-width:180px;padding:var(--sp-1);background:var(--ui-bg-0);border:1px solid var(--ui-border);border-radius:var(--r-md);box-shadow:var(--sh-2);animation:ui-pop .12s ease-out}@keyframes ui-pop{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.ui-menu-item{display:flex;align-items:center;gap:var(--sp-2);width:100%;padding:8px 10px;border:0;border-radius:var(--r-sm);background:none;font:inherit;font-size:var(--fs-base);color:var(--ui-fg-0);text-align:left;cursor:pointer}.ui-menu-item:hover,.ui-menu-item:focus-visible{background:var(--ui-bg-2)}.ui-menu-item:disabled{opacity:.5;cursor:not-allowed}.ui-menu-item.danger{color:var(--ui-danger)}.ui-menu-item svg{flex-shrink:0;color:var(--ui-fg-1)}.ui-menu-item.danger svg{color:inherit}.ui-menu-sep{height:1px;margin:var(--sp-1) 0;background:var(--ui-border)}.ui-menu-label{padding:6px 10px 2px;font-size:var(--fs-xs);font-weight:700;color:var(--ui-fg-2);text-transform:uppercase}.ui-split{display:inline-flex}.ui-split .ui-btn:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.ui-split .ui-btn:last-child{border-top-left-radius:0;border-bottom-left-radius:0;margin-left:-1px;width:28px;padding:0}.ui-pill{display:inline-flex;align-items:center;gap:4px;padding:2px 9px;border-radius:var(--r-pill);font-size:var(--fs-sm);font-weight:600;line-height:1.5;white-space:nowrap;border:1px solid transparent}.ui-pill.sm{padding:0 7px;font-size:var(--fs-xs)}.ui-pill.neutral{background:var(--ui-neutral-bg);color:var(--ui-neutral)}.ui-pill.info{background:var(--ui-info-bg);color:var(--ui-info)}.ui-pill.ok{background:var(--ui-ok-bg);color:var(--ui-ok)}.ui-pill.warn{background:var(--ui-warn-bg);color:var(--ui-warn)}.ui-pill.danger{background:var(--ui-danger-bg);color:var(--ui-danger)}.ui-pill.violet{background:var(--ui-violet-bg);color:var(--ui-violet)}.ui-pill.accent{background:var(--ui-accent-bg);color:var(--ui-accent-hover)}.ui-pill.outline{background:transparent;border-color:currentColor}.ui-pill.struck{text-decoration:line-through}.ui-pill .ui-dot{width:6px;height:6px;border-radius:50%;background:currentColor}@media print{.ui-pill{border-color:currentColor;background:none!important;color:#000!important}}.ui-input,.ui-textarea{width:100%;height:var(--ctl-h);padding:0 var(--sp-3);border:1px solid var(--ui-border-strong);border-radius:var(--r-sm);background:var(--ui-bg-0);color:var(--ui-fg-0);font:inherit;font-size:var(--fs-base);transition:border-color .12s,box-shadow .12s}.ui-textarea{height:auto;padding:var(--sp-2) var(--sp-3);resize:vertical;min-height:72px;line-height:var(--lh)}.ui-input:focus,.ui-textarea:focus{outline:none;border-color:var(--ui-accent);box-shadow:var(--ui-focus)}.ui-input:disabled,.ui-textarea:disabled{background:var(--ui-bg-2);color:var(--ui-fg-2);cursor:not-allowed}.ui-input.invalid,.ui-textarea.invalid{border-color:var(--ui-danger)}.ui-input.num{text-align:right;font-variant-numeric:tabular-nums}.ui-input.sm{height:var(--ctl-h-sm);font-size:var(--fs-sm);padding:0 var(--sp-2)}.ui-input::placeholder,.ui-textarea::placeholder{color:var(--ui-fg-2)}.ui-input-wrap{position:relative;display:flex;align-items:center;min-width:0}.ui-input-wrap>svg{position:absolute;left:10px;color:var(--ui-fg-2);pointer-events:none}.ui-input-wrap.has-icon .ui-input{padding-left:32px}.ui-input-wrap .ui-input-clear{position:absolute;right:4px}.ui-input-wrap.has-clear .ui-input{padding-right:30px}.ui-input-wrap .ui-input-suffix{position:absolute;right:10px;color:var(--ui-fg-2);font-size:var(--fs-sm);pointer-events:none}.ui-input-wrap.has-suffix .ui-input{padding-right:36px}.ui-check{display:inline-flex;align-items:center;gap:var(--sp-2);cursor:pointer;font-size:var(--fs-base);color:var(--ui-fg-0);-webkit-user-select:none;user-select:none}.ui-check input{width:16px;height:16px;accent-color:var(--ui-accent);cursor:pointer;margin:0}.ui-switch{display:inline-flex;align-items:center;gap:var(--sp-2);cursor:pointer;font-size:var(--fs-base)}.ui-switch input{position:absolute;opacity:0;width:0;height:0}.ui-switch .track{width:32px;height:18px;border-radius:var(--r-pill);background:var(--ui-border-strong);position:relative;transition:background .15s;flex-shrink:0}.ui-switch .track:after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:#fff;transition:transform .15s;box-shadow:var(--sh-1)}.ui-switch input:checked+.track{background:var(--ui-accent)}.ui-switch input:checked+.track:after{transform:translate(14px)}.ui-switch input:focus-visible+.track{box-shadow:var(--ui-focus)}.ui-field{display:flex;flex-direction:column;gap:4px;min-width:0}.ui-field>label{font-size:var(--fs-sm);font-weight:600;color:var(--ui-fg-1);display:flex;gap:4px;align-items:center}.ui-field>label .req{color:var(--ui-danger)}.ui-field .hint{font-size:var(--fs-xs);color:var(--ui-fg-2)}.ui-field .err{font-size:var(--fs-xs);color:var(--ui-danger);font-weight:600}.ui-field.inline{flex-direction:row;align-items:center;gap:var(--sp-3)}.ui-field.inline>label{width:120px;flex-shrink:0}.ui-grid{display:grid;gap:var(--sp-3) var(--sp-4);grid-template-columns:repeat(2,minmax(0,1fr))}.ui-grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.ui-grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.ui-grid .span-2{grid-column:span 2}.ui-grid .span-all{grid-column:1 / -1}.ui-section{border:1px solid var(--ui-border);border-radius:var(--r-lg);background:var(--ui-bg-0)}.ui-section-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--ui-border)}.ui-section-head h3{margin:0;font-size:var(--fs-md);font-weight:700;display:flex;align-items:center;gap:var(--sp-2)}.ui-section-head h3 svg{color:var(--ui-fg-2)}.ui-section-head .sub{font-size:var(--fs-sm);color:var(--ui-fg-1);font-weight:400}.ui-section-body{padding:var(--sp-4)}.ui-section.collapsed .ui-section-head{border-bottom:0}.ui-section-toggle{all:unset;display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);width:100%;cursor:pointer}.ui-avatar{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:var(--r-md);background:var(--ui-accent-bg);color:var(--ui-accent-hover);font-size:var(--fs-xs);font-weight:700;letter-spacing:.02em;flex-shrink:0;overflow:hidden}.ui-avatar.sm{width:24px;height:24px;font-size:10px}.ui-avatar[data-len="3"]{font-size:10px;letter-spacing:0}.ui-avatar[data-len="4"]{font-size:8.5px;letter-spacing:-.01em}.ui-avatar.sm[data-len="3"]{font-size:8px}.ui-avatar.sm[data-len="4"]{font-size:7px;letter-spacing:-.02em}.ui-avatar.neutral{background:var(--ui-neutral-bg);color:var(--ui-neutral)}.ui-avatar img{width:100%;height:100%;object-fit:cover}.ui-skel{background:var(--ui-bg-2);border-radius:var(--r-sm);animation:ui-pulse 1.2s ease-in-out infinite}@keyframes ui-pulse{0%,to{opacity:1}50%{opacity:.45}}.ui-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-2);padding:var(--sp-6) var(--sp-4);text-align:center;color:var(--ui-fg-1)}.ui-empty svg{color:var(--ui-fg-2)}.ui-empty h3{margin:0;font-size:var(--fs-md);color:var(--ui-fg-0)}.ui-empty p{margin:0;font-size:var(--fs-base);max-width:360px}.ui-empty.compact{padding:var(--sp-4)}@media (max-width: 640px){.ui-wrap>.ui-banner{flex-basis:100%}.ui-grid,.ui-grid.cols-3,.ui-grid.cols-4{grid-template-columns:1fr}.ui-grid .span-2{grid-column:auto}.ui-field.inline{flex-direction:column;align-items:stretch}.ui-field.inline>label{width:auto}}.ui-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:ui-fade .15s ease-out}@keyframes ui-fade{0%{opacity:0}to{opacity:1}}.ui-drawer-root{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-drawer);display:flex;justify-content:flex-end}.ui-drawer-root.ui-layer-modal{z-index:var(--z-modal)}.ui-drawer{position:relative;height:100%;width:560px;max-width:100vw;background:var(--ui-bg-1);box-shadow:var(--sh-3);display:flex;flex-direction:column;animation:ui-slide .22s cubic-bezier(.4,0,.2,1);font-size:var(--fs-base);line-height:var(--lh);color:var(--ui-fg-0)}.ui-drawer.sm{width:440px}.ui-drawer.lg{width:860px}.ui-drawer.xl{width:1080px}.ui-drawer.full{width:100vw}@keyframes ui-slide{0%{transform:translate(40px);opacity:0}to{transform:none;opacity:1}}.ui-drawer-head{display:flex;flex-wrap:wrap;align-items:flex-start;gap:var(--sp-2) var(--sp-3);padding:var(--sp-3) var(--sp-5);background:var(--ui-bg-0);border-bottom:1px solid var(--ui-border);flex-shrink:0}.ui-drawer-titles{flex:1 1 0;min-width:0;display:flex;flex-direction:column;gap:2px}.ui-drawer-title{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.ui-drawer-title h2{margin:0;font-size:var(--fs-lg);font-weight:700;line-height:1.25}.ui-drawer-sub{font-size:var(--fs-sm);color:var(--ui-fg-1);display:flex;flex-wrap:wrap;gap:var(--sp-2)}.ui-drawer-close{order:1}.ui-drawer-actions{order:2;flex-basis:100%;display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap;justify-content:flex-start}.ui-drawer-actions .ui-grow{flex:1}.ui-drawer-body{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:var(--sp-4) var(--sp-5);-webkit-overflow-scrolling:touch}.ui-drawer-body.flush{padding:0}.ui-drawer-foot{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-5);background:var(--ui-bg-0);border-top:1px solid var(--ui-border);flex-shrink:0}.ui-drawer-foot .ui-grow{flex:1}.ui-drawer-tabs{padding:0 var(--sp-5);background:var(--ui-bg-0);border-bottom:1px solid var(--ui-border);flex-shrink:0}.ui-modal-root{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;padding:var(--sp-4)}.ui-modal{position:relative;width:480px;max-width:100%;max-height:calc(100vh - 32px);background:var(--ui-bg-0);border-radius:var(--r-lg);box-shadow:var(--sh-3);display:flex;flex-direction:column;animation:ui-pop .15s ease-out;font-size:var(--fs-base);line-height:var(--lh);color:var(--ui-fg-0)}.ui-modal.sm{width:400px}.ui-modal.lg{width:720px}.ui-modal.xl{width:960px}.ui-modal-head{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-4) var(--sp-5) 0}.ui-modal-head h2{margin:0;flex:1;font-size:var(--fs-lg);font-weight:700}.ui-modal-body{padding:var(--sp-4) var(--sp-5);overflow-y:auto}.ui-modal-foot{display:flex;justify-content:flex-end;gap:var(--sp-2);padding:0 var(--sp-5) var(--sp-4)}.ui-modal-foot .ui-grow{flex:1}.ui-confirm-icon{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.ui-confirm-icon.danger{background:var(--ui-danger-bg);color:var(--ui-danger)}.ui-confirm-icon.warn{background:var(--ui-warn-bg);color:var(--ui-warn)}.ui-confirm-icon.info{background:var(--ui-info-bg);color:var(--ui-info)}.ui-confirm-msg{white-space:pre-line;color:var(--ui-fg-1)}.ui-popover{position:fixed;z-index:var(--z-popover);background:var(--ui-bg-0);border:1px solid var(--ui-border);border-radius:var(--r-md);box-shadow:var(--sh-2);animation:ui-pop .12s ease-out;overflow:auto}.ui-tabs{display:flex;gap:var(--sp-1);overflow-x:auto;scrollbar-width:none}.ui-tabs::-webkit-scrollbar{display:none}.ui-tab{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border:0;border-bottom:2px solid transparent;background:none;font:inherit;font-size:var(--fs-base);font-weight:600;color:var(--ui-fg-1);cursor:pointer;white-space:nowrap;flex:0 0 auto;border-radius:var(--r-sm) var(--r-sm) 0 0}.ui-tab:hover{color:var(--ui-fg-0);background:var(--ui-bg-2)}.ui-tab.active{color:var(--ui-fg-0);border-bottom-color:var(--ui-accent)}.ui-tab .ui-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:var(--r-pill);background:var(--ui-neutral-bg);color:var(--ui-neutral);font-size:var(--fs-xs);font-weight:700}.ui-tab.active .ui-count{background:var(--ui-accent-bg);color:var(--ui-accent-hover)}.ui-tab .ui-count.hot{background:var(--ui-info-solid);color:#fff}.ui-tabs.pills{gap:var(--sp-2)}.ui-tabs.pills .ui-tab{border:1px solid var(--ui-border);border-radius:var(--r-pill);padding:5px 12px;background:var(--ui-bg-0)}.ui-tabs.pills .ui-tab.active{background:var(--ui-fg-0);color:var(--ui-bg-0);border-color:var(--ui-fg-0)}.ui-tabs.pills .ui-tab.active .ui-count{background:#fff3;color:inherit}@media print{.ui-drawer-root,.ui-modal-root,.ui-backdrop,.ui-popover,.ui-menu{display:none!important}}@media (max-width: 640px){.ui-drawer,.ui-drawer.sm,.ui-drawer.lg,.ui-drawer.xl{width:100vw}.ui-drawer-head,.ui-drawer-body,.ui-drawer-foot,.ui-drawer-tabs{padding-left:var(--sp-4);padding-right:var(--sp-4)}.ui-drawer-foot{flex-wrap:wrap}.ui-modal-root{padding:0;align-items:flex-end}.ui-modal,.ui-modal.sm,.ui-modal.lg,.ui-modal.xl{width:100%;max-height:92vh;border-radius:var(--r-lg) var(--r-lg) 0 0}}.ui-stepper{display:flex;align-items:flex-start;gap:0;list-style:none;margin:0;padding:0}.ui-step{display:flex;align-items:flex-start;flex:1;min-width:0}.ui-step:last-child{flex:0 0 auto}.ui-step-btn{all:unset;display:flex;align-items:center;gap:var(--sp-2);cursor:default}.ui-step-btn:not(:disabled){cursor:pointer}.ui-step-dot{width:24px;height:24px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:var(--fs-xs);font-weight:700;background:var(--ui-bg-2);color:var(--ui-fg-1);border:2px solid var(--ui-border-strong);flex-shrink:0}.ui-step.active .ui-step-dot{background:var(--ui-accent);border-color:var(--ui-accent);color:#fff}.ui-step.done .ui-step-dot{background:var(--ui-ok-bg);border-color:var(--ui-ok);color:var(--ui-ok)}.ui-step-text{display:flex;flex-direction:column;line-height:1.2}.ui-step-label{font-size:var(--fs-sm);font-weight:600;color:var(--ui-fg-1);white-space:nowrap}.ui-step.active .ui-step-label{color:var(--ui-fg-0)}.ui-step-line{flex:1;height:2px;margin:11px var(--sp-2) 0;background:var(--ui-border);min-width:16px}.ui-step.done .ui-step-line{background:var(--ui-ok)}@media (max-width: 640px){.ui-step-text{display:none}.ui-step:last-child .ui-step-text,.ui-step.active .ui-step-text{display:flex}}.ui-dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-2);padding:var(--sp-6);border:2px dashed var(--ui-border-strong);border-radius:var(--r-lg);background:var(--ui-bg-1);color:var(--ui-fg-1);cursor:pointer;text-align:center}.ui-dropzone:hover,.ui-dropzone.over{border-color:var(--ui-accent);color:var(--ui-fg-0)}.ui-page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-3);flex-wrap:wrap}.ui-page-head h1{margin:0;font-size:22px;font-weight:700;line-height:1.15;letter-spacing:-.01em}.ui-page-head .sub{margin-top:2px;color:var(--ui-fg-1);font-size:var(--fs-base)}.ui-page-head-actions{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.ui-tiles{display:grid;gap:var(--sp-3);grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.ui-tile{display:flex;flex-direction:column;gap:2px;padding:var(--sp-3) var(--sp-4);text-align:left;font:inherit;color:inherit;background:var(--ui-bg-0);border:1px solid var(--ui-border);border-radius:var(--r-lg);box-shadow:var(--sh-1)}.ui-tile.clickable{cursor:pointer}.ui-tile.clickable:hover{border-color:var(--ui-border-strong);background:var(--ui-bg-1)}.ui-tile.active{border-color:var(--ui-accent);box-shadow:0 0 0 1px var(--ui-accent)}.ui-tile-label{font-size:var(--fs-sm);color:var(--ui-fg-1);font-weight:600;display:flex;align-items:center;gap:6px}.ui-tile-label svg{color:var(--ui-fg-2)}.ui-tile-value{font-size:var(--fs-xl);font-weight:700;font-variant-numeric:tabular-nums;line-height:1.2}.ui-tile-value.danger{color:var(--ui-danger)}.ui-tile-value.warn{color:var(--ui-warn)}.ui-tile-value.ok{color:var(--ui-ok)}.ui-tile-sub{font-size:var(--fs-xs);color:var(--ui-fg-2)}.ui-tile-sub.up{color:var(--ui-ok)}.ui-tile-sub.down{color:var(--ui-danger)}.ui-filterbar{display:flex;flex-direction:column;gap:var(--sp-2)}.ui-filterbar-row{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.ui-filterbar-search{flex:1 1 260px;max-width:420px;min-width:180px}.ui-filterbar-inline{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.ui-filterbar-inline>*{min-width:150px}.ui-filterbar-right{margin-left:auto;display:flex;align-items:center;gap:var(--sp-2)}.ui-chips{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.ui-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 4px 2px 9px;border-radius:var(--r-pill);background:var(--ui-accent-bg);color:var(--ui-accent-hover);font-size:var(--fs-sm);font-weight:600}.ui-chip .k{color:var(--ui-fg-1);font-weight:500}.ui-chip button{all:unset;display:inline-flex;width:18px;height:18px;align-items:center;justify-content:center;border-radius:50%;cursor:pointer;color:inherit}.ui-chip button:hover{background:#00000014}.ui-filter-panel{padding:var(--sp-3);display:flex;flex-direction:column;gap:var(--sp-3);width:320px;max-width:calc(100vw - 16px)}.ui-filter-panel-foot{display:flex;justify-content:space-between;gap:var(--sp-2);padding-top:var(--sp-2);border-top:1px solid var(--ui-border)}.ui-daterange{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-2)}.ui-daterange-presets{display:flex;flex-wrap:wrap;gap:4px}.ui-table-wrap{background:var(--ui-bg-0);border:1px solid var(--ui-border);border-radius:var(--r-lg);box-shadow:var(--sh-1);display:flex;flex-direction:column;min-width:0}.ui-table-scroll{overflow-x:auto;border-radius:var(--r-lg) var(--r-lg) 0 0}.ui-table-wrap>:last-child{border-radius:0 0 var(--r-lg) var(--r-lg)}.ui-th-btn{all:unset;display:inline-flex;align-items:center;cursor:pointer;font:inherit;color:inherit}.ui-th-btn:focus-visible{box-shadow:var(--ui-focus);border-radius:4px}.ui-table{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--fs-base)}.ui-table th{padding:9px var(--sp-3);text-align:left;white-space:nowrap;font-size:var(--fs-xs);font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--ui-fg-1);background:var(--ui-bg-1);border-bottom:1px solid var(--ui-border)}.ui-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.ui-table th.sortable:hover{color:var(--ui-fg-0)}.ui-table th .sort{display:inline-flex;vertical-align:middle;margin-left:3px;opacity:.5}.ui-table th.sorted .sort{opacity:1;color:var(--ui-accent-hover)}.ui-table td{padding:7px var(--sp-3);border-bottom:1px solid var(--ui-border);vertical-align:middle;color:var(--ui-fg-0)}.ui-table tbody tr:last-child td{border-bottom:0}.ui-table th.num,.ui-table td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.ui-table th.center,.ui-table td.center{text-align:center}.ui-table th.sel,.ui-table td.sel{width:36px;padding-right:0}.ui-table th.menu,.ui-table td.menu{width:44px;padding-left:0;text-align:right}.ui-table td.menu .ui-btn{opacity:.55}.ui-table tbody tr:hover td.menu .ui-btn,.ui-table tbody tr:focus-within td.menu .ui-btn{opacity:1}.ui-table tbody tr.openable{cursor:pointer}.ui-table tbody tr.openable:hover td{background:var(--ui-bg-1)}.ui-table tbody tr:focus-visible{outline:none}.ui-table tbody tr:focus-visible td{background:var(--ui-accent-bg)}.ui-table tbody tr.selected td{background:var(--ui-accent-bg)}.ui-table tbody tr.deleted td{background:var(--deleted-bg);color:var(--ui-fg-1)}.ui-table tbody tr.deleted td.primary{text-decoration:line-through}.ui-table tbody tr.marked td:first-child{box-shadow:inset 3px 0 0 var(--ui-info)}.ui-table td .cell-2{display:flex;flex-direction:column;gap:1px;min-width:0}.ui-table td .cell-2 .ui-muted{font-size:var(--fs-xs)}.ui-table.dense td{padding:5px var(--sp-3)}.ui-table-foot{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-2) var(--sp-4);border-top:1px solid var(--ui-border);font-size:var(--fs-sm);color:var(--ui-fg-1);flex-wrap:wrap}.ui-pager{display:flex;align-items:center;gap:var(--sp-2)}.ui-pager-info{font-variant-numeric:tabular-nums;min-width:60px;text-align:center}.ui-table-state{padding:var(--sp-5) var(--sp-4)}.ui-table-skel{padding:var(--sp-3) var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-3)}.ui-table-skel-row{display:grid;gap:var(--sp-4)}.ui-bulkbar{position:fixed;bottom:var(--sp-4);left:50%;transform:translate(-50%);z-index:var(--z-sticky);display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap;margin:0 auto;width:max-content;max-width:100%;padding:var(--sp-2) var(--sp-3);background:var(--ui-fg-0);color:var(--ui-bg-0);border-radius:var(--r-lg);box-shadow:var(--sh-3);animation:ui-pop .15s ease-out}.ui-bulkbar strong{margin-right:var(--sp-2);font-size:var(--fs-base);white-space:nowrap}.ui-bulkbar .ui-btn{color:inherit;border-color:#ffffff4d;background:transparent}.ui-bulkbar .ui-btn:not(:disabled):hover{background:#ffffff1f}.ui-bulkbar .ui-btn.danger{color:var(--ui-danger-on-dark)}@media (max-width: 1024px){.ui-table th.hide-sm,.ui-table td.hide-sm{display:none}}@media (max-width: 640px){.ui-page-head h1{font-size:var(--fs-xl)}.ui-table thead{display:none}.ui-table,.ui-table tbody,.ui-table tr,.ui-table td{display:block;width:100%}.ui-table tbody tr{position:relative;padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--ui-border);display:grid;grid-template-columns:1fr 1fr;gap:4px var(--sp-3)}.ui-table tbody tr:last-child{border-bottom:0}.ui-table td{padding:0;border:0;min-width:0}.ui-table td[data-label]:before{content:attr(data-label);display:block;font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--ui-fg-2);font-weight:700}.ui-table td.primary{grid-column:1 / -1;font-size:var(--fs-md)}.ui-table td.primary:before{display:none}.ui-table td.num{text-align:left}.ui-table td.sel{position:absolute;top:var(--sp-3);right:var(--sp-4);width:auto}.ui-table td.menu{position:absolute;top:var(--sp-2);right:var(--sp-2);width:auto}.ui-table tbody tr.has-sel td.menu{right:40px}.ui-table td.menu .ui-btn{opacity:1}.ui-table td.hide-sm{display:none}.ui-table tbody tr.marked td:first-child{box-shadow:none}.ui-table tbody tr.marked{box-shadow:inset 3px 0 0 var(--ui-info)}.ui-filterbar-search{max-width:none;flex-basis:100%}.ui-bulkbar{width:calc(100vw - 16px);left:8px;transform:none}.ui-upload-preview{height:96px}.ui-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.ui-tiles>:last-child:nth-child(odd){grid-column:1 / -1}}@media print{.ui-bulkbar,.ui-filterbar,.ui-page-head-actions,.ui-pager,.ui-table th.sel,.ui-table td.sel,.ui-table th.menu,.ui-table td.menu{display:none!important}}.ui-table tbody tr.ui-muted-row td{color:var(--ui-fg-1)}.ui-savebar{position:sticky;bottom:0;z-index:var(--z-sticky);display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);margin:0 calc(-1 * var(--sp-4));background:var(--ui-bg-0);border-top:1px solid var(--ui-border);box-shadow:0 -4px 12px #0f172a0f}.ui-savebar .ui-grow{flex:1}.ui-upload-tile{display:flex;flex-direction:column;gap:var(--sp-2)}.ui-upload-preview{position:relative;height:140px;border:1px dashed var(--ui-border-strong);border-radius:var(--r-md);background:var(--ui-bg-1);display:flex;align-items:center;justify-content:center;overflow:hidden;color:var(--ui-fg-2)}.ui-upload-preview img{max-width:100%;max-height:100%;object-fit:contain}.ui-upload-preview .rm{position:absolute;top:6px;right:6px}.ui-dash{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:var(--sp-3);align-items:start}.ui-dash-side{display:flex;flex-direction:column;gap:var(--sp-3);min-width:0}.ui-dash-side .ui-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.ui-todos{display:flex;flex-direction:column;gap:6px}.ui-todo{display:flex;align-items:center;gap:var(--sp-3);width:100%;padding:10px 12px;border:1px solid var(--ui-border);border-radius:var(--r-md);background:var(--ui-bg-0);font:inherit;color:inherit;text-align:left;cursor:pointer;transition:border-color .12s,background .12s}.ui-todo:hover{border-color:var(--ui-border-strong);background:var(--ui-bg-1)}.ui-todo-icon{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--r-md);flex-shrink:0}.ui-todo.danger .ui-todo-icon{background:var(--ui-danger-bg);color:var(--ui-danger)}.ui-todo.warn .ui-todo-icon{background:var(--ui-warn-bg);color:var(--ui-warn)}.ui-todo.info .ui-todo-icon{background:var(--ui-info-bg);color:var(--ui-info)}.ui-todo-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.ui-todo-label{font-weight:600}.ui-todo-sub{font-size:var(--fs-sm);color:var(--ui-fg-1)}.ui-todo-count{font-size:var(--fs-lg);font-weight:700;font-variant-numeric:tabular-nums}.ui-todo.danger .ui-todo-count{color:var(--ui-danger)}.ui-todo.warn .ui-todo-count{color:var(--ui-warn)}.ui-todo.info .ui-todo-count{color:var(--ui-info)}.ui-todo-chev{color:var(--ui-fg-2);flex-shrink:0}@media (max-width: 900px){.ui-dash{grid-template-columns:1fr}}.ui-kv{display:grid;grid-template-columns:max-content 1fr;gap:6px var(--sp-4);align-items:baseline;font-size:var(--fs-base)}.ui-kv dt{color:var(--ui-fg-1);font-size:var(--fs-sm);white-space:nowrap}.ui-kv dd{margin:0;min-width:0;overflow-wrap:anywhere}.ui-kv dd a{color:var(--ui-info);text-decoration:none;display:inline-flex;align-items:center;gap:4px}.ui-kv dd a:hover{text-decoration:underline}.ui-kv.cols-2{grid-template-columns:max-content 1fr max-content 1fr}.ui-record-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-3)}.ui-record-grid>.span-all{grid-column:1 / -1}.ui-record-actions{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.ui-inline-form{display:flex;flex-wrap:wrap;gap:var(--sp-2);align-items:center}.ui-inline-form .ui-input-wrap{flex:1 1 160px}.ui-note{white-space:pre-wrap}.ui-items{width:100%;border-collapse:collapse;font-size:var(--fs-base)}.ui-items th{text-align:left;padding:6px 8px;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--ui-fg-1);border-bottom:1px solid var(--ui-border)}.ui-items td{padding:8px;border-bottom:1px solid var(--ui-border);vertical-align:top}.ui-items tbody tr:last-child td{border-bottom:0}.ui-items th.num,.ui-items td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.ui-items .ui-muted{display:block;font-size:var(--fs-xs)}.ui-totals{display:grid;grid-template-columns:1fr auto;gap:4px var(--sp-4);font-size:var(--fs-base);margin-left:auto;min-width:240px}.ui-totals .k{color:var(--ui-fg-1)}.ui-totals .v{text-align:right;font-variant-numeric:tabular-nums}.ui-totals .total{grid-column:1 / -1;display:contents}.ui-totals .total .k,.ui-totals .total .v{font-size:var(--fs-lg);font-weight:700;color:var(--ui-fg-0);padding-top:6px;border-top:1px solid var(--ui-border)}.ui-totals .sub .k,.ui-totals .sub .v{font-size:var(--fs-xs);color:var(--ui-fg-2)}.ui-timeline{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.ui-timeline li{position:relative;display:grid;grid-template-columns:16px 1fr;gap:var(--sp-3);padding:6px 0}.ui-timeline li:before{content:"";position:absolute;left:7px;top:22px;bottom:-6px;width:2px;background:var(--ui-border)}.ui-timeline li:last-child:before{display:none}.ui-timeline .dot{width:16px;height:16px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--ui-bg-2);color:var(--ui-fg-1);margin-top:2px}.ui-timeline .dot.info{background:var(--ui-info-bg);color:var(--ui-info)}.ui-timeline .dot.ok{background:var(--ui-ok-bg);color:var(--ui-ok)}.ui-timeline .dot.warn{background:var(--ui-warn-bg);color:var(--ui-warn)}.ui-timeline .dot.danger{background:var(--ui-danger-bg);color:var(--ui-danger)}.ui-timeline .dot svg{width:10px;height:10px}.ui-timeline .body{min-width:0}.ui-timeline .head{display:flex;flex-wrap:wrap;gap:4px var(--sp-2);align-items:baseline}.ui-timeline .when{font-size:var(--fs-xs);color:var(--ui-fg-2);white-space:nowrap}.ui-timeline .who{font-size:var(--fs-sm);color:var(--ui-fg-1)}.ui-timeline .detail{font-size:var(--fs-sm);color:var(--ui-fg-1);margin-top:2px;white-space:pre-wrap}.ui-timeline .diff{display:grid;grid-template-columns:max-content 1fr;gap:2px var(--sp-2);font-size:var(--fs-xs);margin-top:4px}.ui-timeline .diff .old{text-decoration:line-through;color:var(--ui-fg-2)}.ui-timeline .diff .new{color:var(--ui-fg-0)}@media (max-width: 640px){.ui-record-grid,.ui-kv.cols-2{grid-template-columns:1fr}.ui-kv.cols-2{grid-template-columns:max-content 1fr}.ui-totals{min-width:0;width:100%}}.ui-comment{display:flex;flex-direction:column;align-items:flex-start;gap:2px}.ui-comment[data-mine]{align-items:flex-end}.ui-comment-bubble{max-width:85%;padding:8px 12px;border-radius:12px;background:var(--ui-bg-2);color:var(--ui-fg-0);white-space:pre-wrap;word-break:break-word;font-size:var(--fs-base)}.ui-comment[data-mine] .ui-comment-bubble{background:var(--ui-accent);color:var(--ui-accent-fg)}.ui-comment-meta{display:flex;align-items:center;gap:6px;font-size:var(--fs-xs);color:var(--ui-fg-2)}.ui-combo-list{display:flex;flex-direction:column;padding:var(--sp-1)}.ui-combo-item{display:flex;align-items:center;gap:var(--sp-3);padding:8px 10px;border-radius:var(--r-sm);cursor:pointer;text-align:left;border:0;background:none;font:inherit;color:var(--ui-fg-0);width:100%}.ui-combo-item:hover,.ui-combo-item.hl{background:var(--ui-bg-2)}.ui-combo-item.hl{box-shadow:inset 2px 0 0 var(--ui-accent)}.ui-combo-item.add{color:var(--ui-ok);font-weight:600;border-bottom:1px solid var(--ui-border);border-radius:0;margin-bottom:var(--sp-1)}.ui-combo-item .main{display:flex;flex-direction:column;min-width:0;flex:1}.ui-combo-item .main .ui-muted{font-size:var(--fs-xs)}.ui-combo-item .right{font-variant-numeric:tabular-nums;font-weight:600;white-space:nowrap}.ui-combo-empty{padding:var(--sp-3);color:var(--ui-fg-1);font-size:var(--fs-sm);text-align:center}.ui-party{display:flex;align-items:center;gap:var(--sp-3);padding:6px 10px;border:1px solid var(--ui-border);border-radius:var(--r-md);background:var(--ui-bg-1);min-height:44px;flex:1;min-width:0}.ui-party .main{flex:1;min-width:0;display:flex;flex-direction:column}.ui-party .main .ui-muted{font-size:var(--fs-xs)}.ui-lines-wrap{overflow-x:auto;border:1px solid var(--ui-border);border-radius:var(--r-md);background:var(--ui-bg-0)}.ui-lines{width:100%;border-collapse:collapse;font-size:var(--fs-base);min-width:760px}.ui-lines th{padding:6px;text-align:left;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--ui-fg-1);background:var(--ui-bg-1);border-bottom:1px solid var(--ui-border);white-space:nowrap}.ui-lines td{padding:4px;border-bottom:1px solid var(--ui-border);vertical-align:middle}.ui-lines tbody tr:last-child td{border-bottom:0}.ui-lines th.num,.ui-lines td.num{text-align:right}.ui-lines td .ui-input{height:var(--ctl-h-sm);font-size:var(--fs-base);padding:0 8px;border-color:transparent;background:transparent}.ui-lines td .ui-input:hover{border-color:var(--ui-border)}.ui-lines td .ui-input:focus{border-color:var(--ui-accent);background:var(--ui-bg-0)}.ui-lines td.amount{font-variant-numeric:tabular-nums;font-weight:600;white-space:nowrap;padding-right:8px}.ui-lines td.tools{white-space:nowrap;width:76px;text-align:right}.ui-lines td.tools .ui-btn{opacity:.45}.ui-lines tr:hover td.tools .ui-btn,.ui-lines tr:focus-within td.tools .ui-btn,.ui-lines td.tools .ui-btn.on{opacity:1}.ui-lines tr.dragging td{opacity:.5}.ui-lines tr.remark td{padding:0 8px 6px}.ui-lines .remark-row{display:flex;align-items:center;gap:var(--sp-2)}.ui-lines .remark-row .ui-input-wrap{flex:1}.ui-lines .remark-text{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-sm);color:var(--ui-fg-1);cursor:pointer}.ui-lines .drag{cursor:grab}.ui-lines-foot{display:flex;gap:var(--sp-2);padding:var(--sp-2);border-top:1px solid var(--ui-border);background:var(--ui-bg-1);flex-wrap:wrap}.ui-lines-empty{display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);padding:var(--sp-5);color:var(--ui-fg-1);text-align:center}.ui-lines-empty .ui-row{gap:var(--sp-2);flex-wrap:wrap;justify-content:center}.ui-price-cell{display:flex;align-items:center;gap:2px}.ui-price-cell .ui-input-wrap{flex:1}.ui-totals-edit{display:grid;grid-template-columns:1fr 240px;gap:var(--sp-4);align-items:start}.ui-totals-edit .ui-totals{min-width:0}.ui-totals .edit .v .ui-input-wrap{width:120px;margin-left:auto}.ui-ph{width:380px;max-width:calc(100vw - 16px);display:flex;flex-direction:column}.ui-ph-head{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--ui-border);font-weight:700}.ui-ph-body{overflow-y:auto;padding:var(--sp-2);display:flex;flex-direction:column;gap:var(--sp-3)}.ui-ph-label{font-size:var(--fs-xs);font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--ui-fg-1);padding:0 var(--sp-2)}.ui-ph-item{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);width:100%;padding:6px 8px;border:1px solid var(--ui-border);border-radius:var(--r-sm);background:var(--ui-bg-0);font:inherit;color:inherit;cursor:pointer;text-align:left;margin-top:4px}.ui-ph-item:hover{border-color:var(--ui-accent);background:var(--ui-accent-bg)}.ui-ph-item .price{font-weight:700;font-variant-numeric:tabular-nums}.ui-ph-item .meta{display:flex;flex-wrap:wrap;gap:4px;font-size:var(--fs-xs);color:var(--ui-fg-1)}.ui-ph-item .r{color:var(--ui-info);font-weight:600}.ui-ph-item .w{color:var(--ui-warn);font-weight:600}.ui-ph-chip{display:inline-block;max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 6px;border-radius:var(--r-pill);background:var(--ui-bg-2)}.ui-form-foot-right{display:flex;gap:var(--sp-2);flex-wrap:wrap;justify-content:flex-end}@media (max-width: 640px){.ui-totals-edit{grid-template-columns:1fr}.ui-lines{min-width:0}.ui-lines thead{display:none}.ui-lines,.ui-lines tbody,.ui-lines tr,.ui-lines td{display:block;width:100%}.ui-lines tbody tr{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:8px 10px;padding:10px 12px 12px;border-bottom:1px solid var(--ui-border)}.ui-lines tbody tr:last-child{border-bottom:0}.ui-lines td{padding:0;border:0;min-width:0}.ui-lines td[data-label]:before{content:attr(data-label);display:block;margin-bottom:2px;font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--ui-fg-2);font-weight:700}.ui-lines td.item,.ui-lines td.desc{grid-column:1 / -1}.ui-lines td.item{padding-right:72px}.ui-lines td.amount{grid-column:1 / -1;text-align:right;font-weight:700;padding-top:4px;border-top:1px dashed var(--ui-border)}.ui-lines td.amount:before{float:left;margin-top:3px}.ui-lines td.tools{position:absolute;top:8px;right:8px;width:auto}.ui-lines td.tools .ui-btn{opacity:1}.ui-lines tr.remark td{grid-column:1 / -1}.ui-lines td.num,.ui-lines td.num input{text-align:left}}.ui-photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:var(--sp-2)}.ui-photo{position:relative;aspect-ratio:1;border-radius:var(--r-md);overflow:hidden;border:1px solid var(--ui-border);background:var(--ui-bg-2)}.ui-photo img{width:100%;height:100%;object-fit:cover;display:block}.ui-photo.dragging{opacity:.5}.ui-photo-main{position:absolute;top:6px;left:6px;display:inline-flex;align-items:center;gap:3px;padding:1px 6px;border-radius:var(--r-pill);background:#0f172abf;color:#fff;font-size:10px;font-weight:700}.ui-photo-actions{position:absolute;left:0;right:0;bottom:0;display:flex;justify-content:center;gap:4px;padding:4px;background:linear-gradient(transparent,#0f172a99);opacity:0;transition:opacity .12s}.ui-photo:hover .ui-photo-actions,.ui-photo:focus-within .ui-photo-actions{opacity:1}.ui-photo-add{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;border:2px dashed var(--ui-border-strong);border-radius:var(--r-md);background:var(--ui-bg-1);color:var(--ui-fg-1);font:inherit;font-size:var(--fs-sm);cursor:pointer}.ui-photo-add:hover{border-color:var(--ui-accent);color:var(--ui-accent-hover)}.ui-html-preview h2,.ui-html-preview h3,.ui-html-preview p{margin:0 0 var(--sp-2)}.ui-tags{display:flex;flex-wrap:wrap;align-items:center;gap:4px;min-height:var(--ctl-h);padding:3px 6px;border:1px solid var(--ui-border);border-radius:var(--r-md);background:var(--ui-bg-0);cursor:text}.ui-tags:focus-within{border-color:var(--ui-accent);box-shadow:var(--ui-focus)}.ui-tags.disabled{background:var(--ui-bg-1);cursor:default}.ui-tag{display:inline-flex;align-items:center;gap:4px;padding:2px 4px 2px 8px;border-radius:var(--r-pill);background:var(--ui-accent-bg);color:var(--ui-accent-hover);font-size:var(--fs-sm);font-weight:600}.ui-tags.disabled .ui-tag{padding-right:8px}.ui-tag button{all:unset;display:inline-flex;width:16px;height:16px;align-items:center;justify-content:center;border-radius:50%;cursor:pointer;color:inherit}.ui-tag button:hover{background:#0000001a}.ui-tags-input{flex:1;min-width:120px;border:0;outline:none;background:none;font:inherit;color:var(--ui-fg-0);padding:4px 2px}.ui-tags-input::placeholder{color:var(--ui-fg-2)}.ui-cat-list{list-style:none;margin:var(--sp-2) 0 0;padding:0;max-height:480px;overflow-y:auto;border:1px solid var(--ui-border);border-radius:var(--r-md)}.ui-cat-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;align-items:center;gap:var(--sp-3);padding:4px 8px 4px 12px;border-bottom:1px solid var(--ui-border);min-height:34px}.ui-cat-row:last-child{border-bottom:0}.ui-cat-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-brand-chip{display:inline-flex;align-items:center;gap:0}.ui-brand-chip .ui-btn{opacity:.6}.ui-brand-chip:hover .ui-btn{opacity:1}@media (max-width: 640px){.ui-cat-row{grid-template-columns:minmax(0,1fr) auto}.ui-cat-row>.ui-muted{display:none}}.custom-select-trigger{display:inline-flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-secondary);color:var(--text-primary);font-size:13px;font-weight:500;cursor:pointer;transition:all .2s;box-sizing:border-box;text-align:left}.custom-select-trigger:hover:not(:disabled){border-color:var(--accent-primary)}.custom-select-trigger:disabled{opacity:.6;cursor:not-allowed}.custom-select-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.custom-select-chevron{flex-shrink:0;color:var(--text-secondary);transition:transform .2s}.custom-select-chevron.open{transform:rotate(180deg)}.custom-select-popup{position:fixed;z-index:100050;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:10px;box-shadow:0 12px 32px #00000038;padding:6px;overflow-y:auto;overscroll-behavior:contain;animation:customSelectIn .14s ease-out}@keyframes customSelectIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.custom-select-option{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:10px 12px;border:none;background:transparent;color:var(--text-primary);font-size:14px;text-align:left;border-radius:7px;cursor:pointer;transition:background .12s}.custom-select-option:hover{background:var(--bg-hover, var(--bg-secondary))}.custom-select-option.selected{color:var(--accent-primary);font-weight:600;background:#6366f114}.custom-select-option svg{flex-shrink:0;color:var(--accent-primary)}.custom-select-search{position:relative;display:flex;align-items:center}.custom-select-search.custom-select-search,.custom-select-search.custom-select-search:hover,.custom-select-search.custom-select-search:focus-within{border:none;background:transparent;padding:0;box-shadow:none}.custom-select-search .custom-select-search-input{width:100%;padding:8px 32px 8px 34px;box-sizing:border-box;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-secondary);color:var(--text-primary);font-size:13px;font-family:inherit}.custom-select-search .custom-select-search-input:hover{border-color:var(--accent-primary)}.custom-select-search .custom-select-search-input:focus{outline:none;border-color:var(--accent-primary);background:var(--bg-primary)}.custom-select-search .custom-select-search-input::placeholder{color:var(--text-secondary)}.custom-select-search-icon{position:absolute;left:10px;color:var(--text-secondary);pointer-events:none}.custom-select-search-chevron{position:absolute;right:10px;pointer-events:none}.custom-select-option.highlighted{background:#6366f124;box-shadow:inset 3px 0 0 var(--accent-primary)}.custom-select-empty{padding:10px 12px;font-size:13px;color:var(--text-secondary)}.custom-date-trigger{display:inline-flex;align-items:center;gap:8px;width:100%;padding:10px 12px;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-secondary);color:var(--text-primary);font-size:14px;cursor:pointer;transition:all .2s;box-sizing:border-box;text-align:left}.custom-date-trigger:hover:not(:disabled){border-color:var(--accent-primary)}.custom-date-trigger:disabled{opacity:.6;cursor:not-allowed}.custom-date-trigger.is-placeholder .custom-date-value{color:var(--text-tertiary)}.custom-date-icon{flex-shrink:0;color:var(--text-secondary)}.custom-date-value{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.custom-date-popup{position:fixed;z-index:100050;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:12px;box-shadow:0 12px 32px #0000003d;padding:12px;animation:customDateIn .14s ease-out}@keyframes customDateIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.custom-date-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.custom-date-month{font-size:14px;font-weight:700;color:var(--text-primary);text-transform:capitalize}.custom-date-nav{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-secondary);color:var(--text-secondary);cursor:pointer;transition:all .15s}.custom-date-nav:hover{border-color:var(--accent-primary);color:var(--accent-primary)}.custom-date-weekdays,.custom-date-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.custom-date-weekday{text-align:center;font-size:11px;font-weight:600;color:var(--text-tertiary);padding:4px 0;text-transform:uppercase}.custom-date-cell{aspect-ratio:1 / 1;display:flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--text-primary);font-size:13px;border-radius:8px;cursor:pointer;transition:background .12s}.custom-date-cell.empty{cursor:default}.custom-date-cell:not(.empty):hover{background:var(--bg-hover, var(--bg-secondary))}.custom-date-cell.today{box-shadow:inset 0 0 0 1px var(--accent-primary);font-weight:700}.custom-date-cell.selected{background:var(--accent-primary);color:#fff;font-weight:700}.custom-date-footer{display:flex;justify-content:space-between;gap:8px;margin-top:10px;padding-top:10px;border-top:1px solid var(--border-color)}.custom-date-action{flex:1;padding:8px 10px;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-secondary);color:var(--text-primary);font-size:13px;font-weight:600;cursor:pointer;transition:all .15s}.custom-date-action:hover{border-color:var(--accent-primary);color:var(--accent-primary)}.custom-date-action.clear:hover{border-color:var(--error);color:var(--error)}.app-footer{background:var(--bg-secondary);border-top:1px solid var(--border-color);padding:16px 24px;margin-top:auto}.footer-content{display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap;font-size:13px;color:var(--text-secondary)}.footer-copyright,.footer-developer{display:flex;align-items:center;gap:4px}.footer-divider{color:var(--border-color);font-weight:300}.footer-link{color:var(--accent-primary);text-decoration:none;font-weight:500;transition:all .2s ease}.footer-link:hover{color:var(--accent-hover);text-decoration:underline}.footer-link-developer{font-weight:600}@media (max-width: 768px){.app-footer{padding:12px 16px}.footer-content{flex-direction:column;gap:8px;font-size:12px;text-align:center}.footer-divider{display:none}}@media (max-width: 480px){.footer-content{font-size:11px}}.command-palette-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:9998;display:flex;align-items:center;justify-content:center}.command-palette{position:relative;width:90%;max-width:640px;background:var(--bg-primary);border-radius:16px;box-shadow:0 25px 50px -12px #00000040,0 0 0 1px var(--border-color),0 0 60px #3b82f61a;z-index:9999;overflow:hidden}.command-palette-header{display:flex;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid var(--border-color)}.command-search-icon{color:var(--text-tertiary);flex-shrink:0}.command-input{flex:1;border:none;background:transparent;font-size:16px;color:var(--text-primary);outline:none}.command-input::placeholder{color:var(--text-tertiary)}.command-shortcut{display:flex;align-items:center;gap:4px}.command-shortcut kbd,.command-hint kbd{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:22px;padding:0 6px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:6px;font-size:11px;font-weight:500;font-family:inherit;color:var(--text-secondary);box-shadow:0 1px 2px #0000000d}.command-palette-body{max-height:400px;overflow-y:auto;padding:8px}.command-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 20px;color:var(--text-tertiary)}.command-empty p{margin:12px 0 4px;font-size:15px;font-weight:500;color:var(--text-secondary)}.command-empty span{font-size:13px}.command-group{margin-bottom:8px}.command-group:last-child{margin-bottom:0}.command-group-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-tertiary);padding:8px 12px 6px}.command-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:10px;cursor:pointer;transition:all .15s ease}.command-item:hover,.command-item.selected{background:var(--bg-secondary)}.command-item.selected{background:var(--accent-primary)}.command-item.selected .command-item-title{color:#fff}.command-item.selected .command-item-subtitle{color:#ffffffb3}.command-item.selected .command-item-icon{background:#fff3;color:#fff}.command-item.selected .command-item-arrow{color:#fff;opacity:1}.command-item-icon{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:10px;background:var(--bg-secondary);color:var(--accent-primary);flex-shrink:0;transition:all .15s ease}.command-item:hover .command-item-icon{background:var(--accent-primary);color:#fff}.command-item.selected .command-item-icon{background:#fff3}.command-item-content{flex:1;min-width:0}.command-item-title{display:block;font-size:14px;font-weight:500;color:var(--text-primary);line-height:1.3}.command-item-subtitle{display:block;font-size:12px;color:var(--text-secondary);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.command-item-arrow{color:var(--text-tertiary);opacity:0;transition:all .15s ease;flex-shrink:0}.command-item:hover .command-item-arrow,.command-item.selected .command-item-arrow{opacity:1;transform:translate(2px)}.command-palette-footer{display:flex;align-items:center;gap:16px;padding:12px 20px;border-top:1px solid var(--border-color);background:var(--bg-secondary)}.command-hint{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-tertiary)}.command-hint kbd{padding:0 4px;min-width:20px;height:20px}.command-palette-body::-webkit-scrollbar{width:6px}.command-palette-body::-webkit-scrollbar-track{background:transparent}.command-palette-body::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}.command-palette-body::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}[data-theme=dark] .command-palette{box-shadow:0 25px 50px -12px #00000080,0 0 0 1px var(--border-color),0 0 60px #3b82f626}[data-theme=dark] .command-shortcut kbd,[data-theme=dark] .command-hint kbd{background:var(--bg-primary);border-color:var(--border-color)}@media (max-width: 640px){.command-palette{width:95%;max-height:80vh}.command-palette-body{max-height:50vh}.command-palette-footer{flex-wrap:wrap;gap:8px 16px}}.shortcuts-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:9998;display:flex;align-items:center;justify-content:center}.shortcuts-modal{width:90%;max-width:700px;max-height:80vh;background:var(--bg-primary);border-radius:16px;box-shadow:0 25px 50px -12px #00000040,0 0 0 1px var(--border-color);display:flex;flex-direction:column;overflow:hidden}.shortcuts-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--border-color)}.shortcuts-title{display:flex;align-items:center;gap:12px}.shortcuts-title svg{color:var(--accent-primary)}.shortcuts-title h2{margin:0;font-size:18px;font-weight:600;color:var(--text-primary)}.shortcuts-close{padding:8px;background:var(--bg-secondary);border:none;border-radius:8px;color:var(--text-secondary);cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.shortcuts-close:hover{background:var(--bg-tertiary);color:var(--text-primary)}.shortcuts-content{flex:1;overflow-y:auto;padding:16px 24px;display:grid;grid-template-columns:repeat(2,1fr);gap:24px}.shortcuts-category{min-width:0}.shortcuts-category-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-tertiary);margin:0 0 12px;padding-bottom:8px;border-bottom:1px solid var(--border-color)}.shortcuts-list{display:flex;flex-direction:column;gap:8px}.shortcut-item{display:flex;align-items:center;justify-content:space-between;padding:8px 0;gap:16px}.shortcut-description{font-size:13px;color:var(--text-secondary);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shortcut-keys{display:flex;align-items:center;gap:4px;flex-shrink:0}.shortcut-key{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;padding:0 8px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:6px;font-size:11px;font-weight:600;font-family:inherit;color:var(--text-primary);box-shadow:0 1px 2px #0000000d}.shortcut-separator{font-size:11px;color:var(--text-tertiary);margin:0 2px}.shortcuts-footer{padding:16px 24px;border-top:1px solid var(--border-color);background:var(--bg-secondary);text-align:center}.shortcuts-hint{font-size:12px;color:var(--text-tertiary)}.shortcuts-hint kbd{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;margin:0 4px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:4px;font-size:11px;font-weight:600;font-family:inherit;color:var(--text-secondary)}.shortcuts-content::-webkit-scrollbar{width:6px}.shortcuts-content::-webkit-scrollbar-track{background:transparent}.shortcuts-content::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}.shortcuts-content::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}[data-theme=dark] .shortcut-key{background:var(--bg-tertiary);border-color:var(--border-color);box-shadow:0 1px 2px #0003}@media (max-width: 640px){.shortcuts-modal{max-height:90vh}.shortcuts-content{grid-template-columns:1fr;padding:16px}.shortcuts-header{padding:16px}.shortcuts-title h2{font-size:16px}.shortcut-item{flex-wrap:wrap;gap:8px}.shortcut-description{flex-basis:100%;white-space:normal}.shortcut-keys{margin-left:auto}}.shell{display:flex;min-height:100vh;background:var(--ui-bg-1);overflow-x:hidden;max-width:100vw}.shell-main{flex:1;min-width:0;margin-left:248px;display:flex;flex-direction:column;min-height:100vh}.shell-content{flex:1;padding:var(--sp-4) var(--sp-6) var(--sp-5);overflow-x:hidden;position:relative;z-index:1}.bnav,.shell-overlay{display:none}.sb{position:fixed;left:0;top:0;width:248px;height:100vh;display:flex;flex-direction:column;background:var(--sidebar-bg);color:var(--sidebar-text);z-index:calc(var(--z-drawer) - 1);overflow-y:auto;transition:transform .2s ease}.sb-head{padding:var(--sp-4) var(--sp-5);display:flex;align-items:center;justify-content:center;border-bottom:1px solid rgba(255,255,255,.08)}.sb-head img{width:170px;height:44px;object-fit:contain}.sb-nav{display:flex;flex-direction:column;gap:2px;padding:var(--sp-3) var(--sp-2)}.sb-link,.sb-group-btn{display:flex;align-items:center;gap:var(--sp-3);width:100%;padding:9px 12px;border-radius:var(--r-md);border:0;background:none;color:var(--sidebar-text);font:inherit;font-size:var(--fs-base);font-weight:500;text-align:left;text-decoration:none;cursor:pointer;transition:background .12s,color .12s}.sb-link:hover,.sb-group-btn:hover{background:#ffffff14;color:#fff}.sb-link.active{background:var(--ui-accent);color:#fff;font-weight:600}.sb-link svg,.sb-group-btn svg{flex-shrink:0;opacity:.9}.sb-link span,.sb-group-btn span.label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sb-group{display:flex;flex-direction:column;gap:2px}.sb-group-btn{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.06em;color:#e2e8f0b3;padding-top:12px;padding-bottom:4px}.sb-group-btn:hover{background:none}.sb-group-items{display:flex;flex-direction:column;gap:2px}.sb-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:var(--r-pill);background:var(--ui-info-solid);color:#fff;font-size:var(--fs-xs);font-weight:700}.sb-link.active .sb-count{background:#fff;color:var(--ui-accent-hover)}.sb-divider{height:1px;margin:var(--sp-2) var(--sp-3);background:#ffffff1a}.sb-foot{margin-top:auto;padding:var(--sp-3) var(--sp-4);border-top:1px solid rgba(255,255,255,.08);font-size:var(--fs-xs);color:#e2e8f099}.hd{position:sticky;top:0;z-index:var(--z-sticky);display:flex;align-items:center;gap:var(--sp-3);height:56px;padding:0 var(--sp-6);background:var(--ui-bg-0);border-bottom:1px solid var(--ui-border)}.hd-title{flex:1;min-width:0;font-size:var(--fs-md);font-weight:600;color:var(--ui-fg-0);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hd-title .ui-muted{font-weight:400}.hd-search{display:inline-flex;align-items:center;gap:var(--sp-2);height:var(--ctl-h);padding:0 var(--sp-3);border:1px solid var(--ui-border);border-radius:var(--r-md);background:var(--ui-bg-1);color:var(--ui-fg-1);font:inherit;font-size:var(--fs-base);cursor:pointer;min-width:220px}.hd-search:hover{border-color:var(--ui-border-strong);color:var(--ui-fg-0)}.hd-search kbd{margin-left:auto;font:inherit;font-size:var(--fs-xs);padding:1px 6px;border:1px solid var(--ui-border);border-radius:4px;background:var(--ui-bg-0);color:var(--ui-fg-2)}.hd-actions{display:flex;align-items:center;gap:var(--sp-1)}.hd-lang{display:inline-flex;border:1px solid var(--ui-border);border-radius:var(--r-sm);overflow:hidden}.hd-lang button{border:0;background:none;padding:0 10px;height:var(--ctl-h-sm);font:inherit;font-size:var(--fs-xs);font-weight:700;color:var(--ui-fg-1);cursor:pointer}.hd-lang button.active{background:var(--ui-fg-0);color:var(--ui-bg-0)}.hd-menu-btn{display:none}.hd-user{display:inline-flex;align-items:center;gap:var(--sp-2);padding:2px 6px 2px 2px;border:1px solid transparent;border-radius:var(--r-pill);background:none;cursor:pointer;font:inherit;color:inherit}.hd-user:hover{border-color:var(--ui-border);background:var(--ui-bg-1)}.hd-user .cell-2{display:flex;flex-direction:column;text-align:left;line-height:1.2}.hd-user .cell-2 .ui-muted{font-size:10px}.notif-badge{position:absolute;top:2px;right:2px;min-width:16px;height:16px;padding:0 4px;border-radius:var(--r-pill);background:var(--ui-danger-solid);color:#fff;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center}.notif-panel{width:360px;max-width:calc(100vw - 16px)}.notif-head{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--ui-border);font-weight:700}.notif-list{max-height:420px;overflow-y:auto;display:flex;flex-direction:column}.notif-item{display:flex;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border:0;border-bottom:1px solid var(--ui-border);background:none;text-align:left;cursor:pointer;font:inherit;color:inherit;position:relative}.notif-item:hover{background:var(--ui-bg-1)}.notif-item.unread{background:var(--ui-info-bg)}.notif-item .body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.notif-item .snippet{color:var(--ui-fg-1);font-size:var(--fs-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 1024px){.shell-main{margin-left:0}.sb{transform:translate(-100%);box-shadow:var(--sh-3)}.sb.open{transform:none;z-index:1000}.shell-overlay{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;z-index:999}.hd-menu-btn{display:inline-flex}.hd{padding:0 var(--sp-4)}.shell-content{padding:var(--sp-4)}.hd-search{min-width:0}.hd-search span,.hd-search kbd{display:none}}@media (max-width: 1024px){.bnav{position:fixed;left:0;right:0;bottom:0;z-index:var(--z-sticky);display:grid;grid-template-columns:repeat(5,1fr);height:58px;padding-bottom:env(safe-area-inset-bottom);background:var(--ui-bg-0);border-top:1px solid var(--ui-border);box-shadow:0 -4px 12px #0f172a0f}.bnav a,.bnav button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:0;background:none;font:inherit;font-size:10px;font-weight:600;color:var(--ui-fg-1);text-decoration:none;cursor:pointer;position:relative}.bnav a.active{color:var(--ui-accent-hover)}.bnav .sb-count{position:absolute;top:6px;left:calc(50% + 6px);min-width:16px;height:16px;font-size:10px}.shell-content{padding-bottom:calc(58px + var(--sp-5) + 56px)}.app-footer{padding-bottom:58px}.shell-overlay{z-index:999}.sb.open{z-index:1000}.ui-page-head-actions>.ui-btn.primary{position:fixed;right:var(--sp-4);bottom:calc(58px + var(--sp-4) + env(safe-area-inset-bottom));z-index:var(--z-sticky);height:44px;padding:0 18px;border-radius:var(--r-pill);box-shadow:var(--sh-2)}}@media (max-width: 640px){.hd-title .greet,.hd-lang,.hd-user .cell-2{display:none}}@media print{.sb,.hd,.shell-overlay{display:none!important}.shell-main{margin-left:0}.shell-content{padding:0}}.confetti-container{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;overflow:hidden;z-index:10000}.confetti-piece{position:absolute;top:-20px;border-radius:2px;animation:confetti-fall linear forwards;will-change:transform}@keyframes confetti-fall{0%{transform:translateY(0) rotate(0) scale(1);opacity:1}25%{transform:translateY(25vh) rotate(180deg) translate(15px) scale(1);opacity:1}50%{transform:translateY(50vh) rotate(360deg) translate(-10px) scale(.95);opacity:.9}75%{transform:translateY(75vh) rotate(540deg) translate(20px) scale(.85);opacity:.7}to{transform:translateY(105vh) rotate(720deg) translate(-5px) scale(.7);opacity:0}}.confetti-piece:nth-child(odd){animation-name:confetti-fall-alt}@keyframes confetti-fall-alt{0%{transform:translateY(0) rotate(0) scale(1);opacity:1}25%{transform:translateY(25vh) rotate(-120deg) translate(-20px) scale(1);opacity:1}50%{transform:translateY(50vh) rotate(-240deg) translate(15px) scale(.9);opacity:.85}75%{transform:translateY(75vh) rotate(-420deg) translate(-25px) scale(.8);opacity:.6}to{transform:translateY(105vh) rotate(-600deg) translate(10px) scale(.65);opacity:0}}.confetti-piece:nth-child(3n){animation-timing-function:ease-in-out;box-shadow:0 0 6px currentColor}:root{--bg-primary: #ffffff;--bg-secondary: #f8fafc;--bg-tertiary: #f1f5f9;--text-primary: #0f172a;--text-secondary: #475569;--text-tertiary: #64748b;--border-color: #e2e8f0;--primary-color: #2ECC71;--accent-primary: #2ECC71;--accent-secondary: #27AE60;--accent-hover: #229954;--accent-gradient: linear-gradient(135deg, #2ECC71 0%, #27AE60 100%);--accent-gradient-hover: linear-gradient(135deg, #27AE60 0%, #229954 100%);--success: #10b981;--success-light: #d1fae5;--warning: #f59e0b;--warning-light: #fef3c7;--error: #ef4444;--error-light: #fee2e2;--deleted-bg: #fef2f2;--deleted-bg-hover: #fee2e2;--deleted-border: #fecaca;--sidebar-bg: linear-gradient(180deg, #1e293b 0%, #0f172a 100%);--sidebar-text: #e2e8f0;--sidebar-hover: rgba(46, 204, 113, .1);--sidebar-active: linear-gradient(135deg, #2ECC71 0%, #27AE60 100%);--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 10px 10px -5px rgba(0, 0, 0, .04);--shadow-glow: 0 0 20px rgba(46, 204, 113, .3)}[data-theme=dark]{--bg-primary: #0f172a;--bg-secondary: #1e293b;--bg-tertiary: #334155;--text-primary: #f1f5f9;--text-secondary: #cbd5e1;--text-tertiary: #94a3b8;--border-color: #334155;--accent-primary: #3b82f6;--accent-secondary: #2563eb;--accent-hover: #60a5fa;--accent-gradient: linear-gradient(135deg, #3b82f6 0%, #60a5fa 100%);--accent-gradient-hover: linear-gradient(135deg, #2563eb 0%, #3b82f6 100%);--success: #10b981;--success-light: rgba(16, 185, 129, .2);--warning: #f59e0b;--warning-light: rgba(245, 158, 11, .2);--error: #ef4444;--error-light: rgba(239, 68, 68, .2);--sidebar-bg: #020617;--sidebar-text: #e2e8f0;--sidebar-hover: #1e293b;--shadow-glow: 0 0 20px rgba(59, 130, 246, .3);--glass-bg: rgba(30, 41, 59, .8);--glass-border: rgba(51, 65, 85, .5);--deleted-bg: rgba(239, 68, 68, .15);--deleted-bg-hover: rgba(239, 68, 68, .25);--deleted-border: rgba(239, 68, 68, .3)}*{margin:0;padding:0;box-sizing:border-box}input[type=number]::-webkit-outer-spin-button,input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none!important;margin:0!important}input[type=number]{-moz-appearance:textfield!important;-webkit-appearance:textfield!important;appearance:textfield!important}input[type=date]{cursor:pointer;position:relative}input[type=date]::-webkit-calendar-picker-indicator{position:absolute;top:0;left:0;right:0;bottom:0;width:auto;height:auto;color:transparent;background:transparent;cursor:pointer}[data-theme=dark] input[type=date]{color-scheme:dark}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--bg-secondary);color:var(--text-primary);transition:background-color .3s ease,color .3s ease}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bg-tertiary);border-radius:10px}::-webkit-scrollbar-thumb{background:linear-gradient(135deg,#2ecc71,#27ae60);border-radius:10px;border:2px solid var(--bg-tertiary)}::-webkit-scrollbar-thumb:hover{background:linear-gradient(135deg,#27ae60,#229954)}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.btn-ripple{position:relative;overflow:hidden}.btn-ripple:after{content:"";position:absolute;width:100%;height:100%;top:0;left:0;pointer-events:none;background-image:radial-gradient(circle,rgba(255,255,255,.4) 10%,transparent 10.01%);background-repeat:no-repeat;background-position:50%;transform:scale(10);opacity:0;transition:transform .5s,opacity .8s}.btn-ripple:active:after{transform:scale(0);opacity:.3;transition:0s}@keyframes ripple{0%{transform:scale(0);opacity:.5}to{transform:scale(4);opacity:0}}button,.btn,[class*=btn-]{position:relative;overflow:hidden;transition:transform .15s ease,box-shadow .15s ease}button:not(:disabled):active,.btn:not(:disabled):active,[class*=btn-]:not(:disabled):active{transform:scale(.98)}@media print{body{background-color:#fff}.no-print{display:none!important}.print-full-width{width:100%!important;max-width:100%!important}.print-header{display:flex!important;align-items:center;gap:12px;margin-bottom:20px;padding-bottom:12px;border-bottom:2px solid #2ECC71}.print-logo{width:48px;height:48px;object-fit:contain}.print-company-name{font-size:24px;font-weight:700;color:#0f172a}@page{margin:1cm}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}}@media (max-width: 768px){input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]),select,textarea{font-size:16px!important}}
