:root{color-scheme:light;--brand: #0284c7;--brand-2: #7c3aed;--brand-dark: #075985;--brand-soft: rgba(14, 165, 233, .1);--grad-brand: linear-gradient(135deg, #22d3ee 0%, #0ea5e9 45%, #6366f1 100%);--glow-c: 14, 165, 233;--glow-v: 124, 58, 237;--bg: #eef3fb;--bg-2: #e5ecf8;--panel: #ffffff;--card: #ffffff;--card-2: #f7fafe;--text: #0f172a;--text-2: #334155;--muted: #64748b;--border: rgba(15, 23, 42, .1);--border-2: rgba(15, 23, 42, .18);--grid: rgba(2, 132, 199, .055);--ok: #047857;--warn: #b45309;--bad: #b91c1c;--side-1: #1c2f52;--side-2: #132140;--radius: 12px;--radius-sm: 9px;--shadow: 0 1px 2px rgba(15, 23, 42, .06), 0 2px 8px rgba(15, 23, 42, .04);--shadow-lg: 0 24px 60px rgba(15, 23, 42, .18);--glow: 0 0 0 1px rgba(14, 165, 233, .18), 0 10px 30px rgba(14, 165, 233, .12);--side: 244px;--font-mono: ui-monospace, SFMono-Regular, Menlo, "Cascadia Mono", Consolas, monospace}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans TC,Microsoft JhengHei,PingFang TC,PingFang SC,Microsoft YaHei,Roboto,Helvetica,Arial,sans-serif;color:var(--text);font-size:15px;line-height:1.55;-webkit-text-size-adjust:100%;background-color:var(--bg);background-image:radial-gradient(1100px 760px at 82% -12%,rgba(var(--glow-c),.16),transparent 62%),radial-gradient(900px 700px at 4% 108%,rgba(var(--glow-v),.12),transparent 62%),linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:auto,auto,44px 44px,44px 44px;background-attachment:fixed,fixed,fixed,fixed}a{color:var(--brand);text-decoration:none}a:hover{color:var(--brand-dark)}h1,h2,h3{margin:0;font-weight:650;line-height:1.3;letter-spacing:.1px}h1{font-size:1.35rem}h2{font-size:1.15rem}h3{font-size:1rem}small,.muted{color:var(--muted);font-size:.85rem}.mono{font-variant-numeric:tabular-nums;font-family:var(--font-mono)}.right{text-align:right}.center{text-align:center}.nowrap{white-space:nowrap}.spacer{flex:1}.only-mobile{display:none}:focus-visible{outline:2px solid var(--brand);outline-offset:2px}::selection{background:rgba(var(--glow-c),.22);color:var(--text)}*{scrollbar-width:thin;scrollbar-color:rgba(var(--glow-c),.35) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:#0f172a08}::-webkit-scrollbar-thumb{background:rgba(var(--glow-c),.32);border-radius:999px;border:2px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:rgba(var(--glow-c),.55);background-clip:content-box}.app{display:flex;min-height:100vh;min-height:100dvh;width:100%}.sidebar{width:var(--side);flex:0 0 var(--side);background:linear-gradient(180deg,var(--side-1) 0%,var(--side-2) 100%);border-right:1px solid rgba(15,23,42,.2);color:#dbe7f6;display:flex;flex-direction:column;position:sticky;top:0;height:100dvh;z-index:40}.sidebar:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,#38bdf8 30%,#a78bfa 70%,transparent);opacity:.9}.brand{display:flex;align-items:center;gap:10px;padding:16px 16px 14px}.brand img{width:38px;height:38px;border-radius:9px;background:transparent;object-fit:contain;padding:0;filter:drop-shadow(0 0 10px rgba(56,189,248,.45))}.brand-text{min-width:0}.brand-text b{display:block;font-size:.98rem;letter-spacing:.6px;text-transform:uppercase;color:#fff}.brand-text span{font-size:.72rem;opacity:.74;letter-spacing:.3px}.nav{padding:6px 10px 18px;overflow-y:auto;flex:1}.nav-item{position:relative;display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--radius-sm);color:#b9cbe6;font-size:.94rem;margin-bottom:3px;border:1px solid transparent;transition:background .15s,color .15s,border-color .15s}.nav-item:hover{background:#38bdf824;color:#fff;border-color:#38bdf842}.nav-item.active{background:linear-gradient(90deg,#38bdf852,#38bdf814);color:#fff;font-weight:600;border-color:#38bdf875;box-shadow:0 6px 22px #02284659}.nav-item.active:before{content:"";position:absolute;left:-10px;top:50%;transform:translateY(-50%);width:3px;height:22px;border-radius:0 3px 3px 0;background:#38bdf8;box-shadow:0 0 12px #38bdf8e6}.nav-item .ico{width:20px;text-align:center;font-size:1.05rem}.nav-item.active .ico{filter:drop-shadow(0 0 8px rgba(56,189,248,.7))}.side-foot{padding:10px 14px 16px;border-top:1px solid rgba(255,255,255,.12)}.side-ver{font-size:.72rem;opacity:.58;letter-spacing:.3px}.side-logout{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;margin-bottom:10px;border:1px solid rgba(255,255,255,.22);border-radius:var(--radius-sm);background:#ffffff14;color:#eaf2ff;font:inherit;font-size:.94rem;text-align:left;cursor:pointer;transition:background .15s,border-color .15s,box-shadow .15s}.side-logout:hover{background:#38bdf83d;border-color:#38bdf899;box-shadow:0 8px 24px #02284659}.side-logout .ico{width:20px;text-align:center;font-size:1.05rem}.main{flex:1 1 auto;min-width:0;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:10px;padding:10px clamp(12px,2vw,28px);background:#ffffffdb;backdrop-filter:blur(14px) saturate(150%);-webkit-backdrop-filter:blur(14px) saturate(150%);border-bottom:1px solid var(--border);box-shadow:0 1px rgba(var(--glow-c),.06);position:sticky;top:0;z-index:30}.content{width:100%;max-width:1280px;margin:0 auto;padding:clamp(14px,2.4vw,32px) clamp(14px,3vw,64px) 48px}.page-head{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:16px}.page-head h1{margin-right:auto;display:flex;align-items:center}.page-head h1:before{content:"";display:inline-block;width:4px;height:18px;border-radius:2px;margin-right:10px;background:var(--grad-brand);box-shadow:0 0 10px rgba(var(--glow-c),.45)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--border-2);background:#fff;color:var(--text);padding:8px 14px;border-radius:var(--radius-sm);font-size:.9rem;font-family:inherit;cursor:pointer;white-space:nowrap;transition:.15s;min-height:38px;box-shadow:0 1px 2px #0f172a0a}.btn:hover{border-color:rgba(var(--glow-c),.55);background:rgba(var(--glow-c),.08);color:var(--brand-dark)}.btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.btn.primary{background:var(--grad-brand);border-color:transparent;color:#04222e;font-weight:650;box-shadow:0 6px 18px rgba(var(--glow-c),.28)}.btn.primary:hover{filter:brightness(1.06);box-shadow:0 10px 26px rgba(var(--glow-c),.38);color:#04222e}.btn.danger{color:#b91c1c;border-color:#dc262657;background:#dc26260f}.btn.danger:hover{background:#dc26261f;border-color:#dc26268c;color:#991b1b}.btn.sm{padding:5px 10px;font-size:.82rem;min-height:32px}.btn.ghost{border-color:transparent;background:transparent;box-shadow:none}.btn.ghost:hover{background:rgba(var(--glow-c),.09);border-color:var(--border)}.btn.block{width:100%}.btn-group{display:flex;gap:8px;flex-wrap:wrap}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}.card+.card{margin-top:14px}.card-head{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}.card-head h2,.card-head h3{margin-right:auto;display:flex;align-items:center}.card-head h2:before,.card-head h3:before{content:"";display:inline-block;width:3px;height:15px;border-radius:2px;margin-right:9px;background:var(--grad-brand);box-shadow:0 0 8px rgba(var(--glow-c),.4)}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:12px;margin-bottom:16px}.stat{position:relative;overflow:hidden;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;box-shadow:var(--shadow)}.stat:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--grad-brand);opacity:.95}.stat .k{font-size:.76rem;color:var(--muted);text-transform:uppercase;letter-spacing:.7px}.stat .v{font-family:var(--font-mono);font-size:1.5rem;font-weight:680;margin-top:2px;color:#0b3a5c}.stat .sub{font-size:.78rem;color:var(--muted)}.stat.warn .v{color:var(--warn)}.stat.bad .v{color:var(--bad)}.stat.ok .v{color:var(--ok)}.table-wrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--border);border-radius:var(--radius);background:#fff;box-shadow:var(--shadow)}table{width:100%;border-collapse:collapse;font-size:.9rem;min-width:560px}th,td{padding:10px 12px;text-align:left;border-bottom:1px solid rgba(15,23,42,.07);vertical-align:middle}th{background:#f1f6fd;font-size:.74rem;text-transform:uppercase;letter-spacing:.8px;color:#0b5e86;font-weight:700;white-space:nowrap}tbody tr{transition:background .15s}tbody tr:hover{background:rgba(var(--glow-c),.06)}tbody tr:last-child td{border-bottom:0}td.act{white-space:nowrap;text-align:right}td .mono,td.mono{color:var(--text-2)}.empty{padding:34px 16px;text-align:center;color:var(--muted)}.badge{display:inline-block;padding:2px 9px;border-radius:999px;font-size:.76rem;font-weight:600;background:#64748b1a;color:#475569;border:1px solid rgba(100,116,139,.22);white-space:nowrap}.badge.draft{background:#64748b1a;color:#475569;border-color:#64748b38}.badge.confirmed{background:#0284c71a;color:#0369a1;border-color:#0284c747}.badge.delivered,.badge.paid,.badge.paid_s{background:#0478571a;color:#047857;border-color:#04785747}.badge.cancelled{background:#b91c1c17;color:#b91c1c;border-color:#b91c1c42}.badge.active{background:#0478571a;color:#047857;border-color:#04785747}.badge.inactive{background:#64748b1a;color:#475569;border-color:#64748b38}.badge.low{background:#b453091a;color:#b45309;border-color:#b4530947}.badge.out{background:#b91c1c17;color:#b91c1c;border-color:#b91c1c42}.badge.role-admin{background:#7c3aed1c;color:#6d28d9;border-color:#7c3aed47}.badge.role-manager{background:#0284c71a;color:#0369a1;border-color:#0284c747}.badge.ok{background:#0478571f;color:#047857;border-color:#0478574d}.badge.off{background:#64748b1a;color:#475569;border-color:#64748b3d}.badge.role-staff{background:#64748b1a;color:#475569;border-color:#64748b38}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px}.field{display:flex;flex-direction:column;gap:4px;min-width:0}.field.span2{grid-column:1 / -1}label{font-size:.82rem;color:var(--muted);font-weight:550}input,select,textarea{font:inherit;color:var(--text);background:#fff;border:1px solid var(--border-2);border-radius:var(--radius-sm);padding:9px 11px;width:100%;min-width:0;transition:border-color .15s,box-shadow .15s,background .15s;box-shadow:0 1px 2px #0f172a08}input::placeholder,textarea::placeholder{color:#94a3b8}input:hover,select:hover,textarea:hover{border-color:rgba(var(--glow-c),.45)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--brand);background:#fff;box-shadow:0 0 0 3px rgba(var(--glow-c),.16)}select option{background:#fff;color:var(--text)}input[type=checkbox]{width:auto;accent-color:var(--brand)}input[type=date]{color-scheme:light}input[type=date]::-webkit-calendar-picker-indicator{opacity:.55;cursor:pointer}input[type=date]::-webkit-calendar-picker-indicator:hover{opacity:.85}input:-webkit-autofill,input:-webkit-autofill:focus{-webkit-text-fill-color:var(--text);-webkit-box-shadow:0 0 0 40px #ffffff inset;caret-color:var(--text)}textarea{resize:vertical;min-height:68px}.toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:12px}.toolbar input[type=search],.toolbar input[type=text]{width:min(260px,100%)}.toolbar>select{width:auto;min-width:124px}.toolbar>input[type=date]{width:auto;min-width:142px}.switch{display:flex;align-items:center;gap:6px;font-size:.86rem;color:var(--text-2)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a6b;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);display:flex;align-items:flex-start;justify-content:center;padding:clamp(10px,4vh,48px) clamp(10px,4vw,40px);z-index:100;overflow-y:auto}.modal{background:#fff;border:1px solid var(--border-2);border-radius:14px;box-shadow:var(--shadow-lg),0 0 0 1px rgba(var(--glow-c),.08);width:100%;max-width:760px}.modal.wide{max-width:1000px}.modal.narrow{max-width:460px}.modal-head{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--border);position:sticky;top:0;background:#fffffff0;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-radius:14px 14px 0 0;z-index:2}.modal-head h3{margin-right:auto}.modal-body{padding:16px 18px}.modal-foot{display:flex;gap:8px;justify-content:flex-end;padding:12px 18px;border-top:1px solid var(--border);position:sticky;bottom:0;background:#fffffff0;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-radius:0 0 14px 14px;flex-wrap:wrap}.login-page{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:20px;background-color:var(--bg);background-image:radial-gradient(760px 520px at 50% -8%,rgba(var(--glow-c),.22),transparent 62%),radial-gradient(700px 520px at 12% 106%,rgba(var(--glow-v),.16),transparent 62%),linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:auto,auto,44px 44px,44px 44px}.login-card{position:relative;background:#fff;border:1px solid var(--border-2);border-radius:16px;box-shadow:var(--shadow-lg),0 0 60px rgba(var(--glow-c),.12);padding:clamp(20px,5vw,34px);width:100%;max-width:400px}.login-card:before{content:"";position:absolute;top:0;left:14%;right:14%;height:2px;background:linear-gradient(90deg,transparent,#22d3ee,#6366f1,transparent);opacity:.95;border-radius:2px}.login-card .logo{width:64px;height:64px;border-radius:14px;display:block;margin:0 auto 12px;object-fit:contain;filter:drop-shadow(0 6px 16px rgba(15,23,42,.18))}.login-card h1{text-align:center;margin-bottom:4px;letter-spacing:.6px}.login-card .sub{text-align:center;color:var(--muted);font-size:.85rem;margin-bottom:20px}.login-langs{display:flex;gap:6px;justify-content:center;margin-top:16px}.alert{padding:10px 13px;border-radius:var(--radius-sm);font-size:.88rem;margin-bottom:12px;border:1px solid transparent}.alert.error{background:#b91c1c12;border-color:#b91c1c47;color:#b91c1c}.alert.ok{background:#04785714;border-color:#04785747;color:#047857}.alert.info{background:var(--brand-soft);border-color:rgba(var(--glow-c),.3);color:#0369a1}.toasts{position:fixed;right:14px;bottom:14px;z-index:200;display:flex;flex-direction:column;gap:8px;max-width:min(360px,calc(100vw - 28px))}.toast{background:#fffffffa;border:1px solid var(--border-2);border-left:3px solid var(--brand);color:var(--text);padding:10px 14px;border-radius:10px;font-size:.88rem;box-shadow:var(--shadow-lg);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.toast.err{border-left-color:var(--bad)}.toast.ok{border-left-color:var(--ok)}.pager{display:flex;align-items:center;gap:10px;justify-content:flex-end;padding:10px 4px 0;font-size:.85rem;color:var(--muted);flex-wrap:wrap}.kv{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;font-size:.9rem}.kv dt{color:var(--muted)}.kv dd{margin:0}.line-items{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:#fbfdff}.line-items .row-items{display:grid;grid-template-columns:2.2fr .8fr 1fr 1fr 38px;gap:8px;padding:8px;align-items:center;border-bottom:1px solid rgba(15,23,42,.07)}.line-items .row-items:last-child{border-bottom:0}.line-items .row-items.head{background:#f1f6fd;font-size:.76rem;color:#0b5e86;font-weight:700;text-transform:uppercase;letter-spacing:.6px}.summary-box{display:grid;grid-template-columns:1fr auto;gap:4px 16px;margin-top:12px;justify-items:end;align-items:center}.summary-box .lbl{color:var(--muted);font-size:.88rem}.summary-box .big{font-size:1.15rem;font-weight:680;font-family:var(--font-mono)}.tabs{display:flex;gap:6px;border-bottom:1px solid var(--border);margin-bottom:14px;overflow-x:auto}.tab{padding:8px 14px;border:0;background:none;font:inherit;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;white-space:nowrap;transition:color .15s,border-color .15s}.tab:hover{color:var(--text-2)}.tab.active{color:var(--brand);border-bottom-color:var(--brand);font-weight:600}.spinner{width:26px;height:26px;border:3px solid rgba(15,23,42,.12);border-top-color:var(--brand);border-radius:50%;animation:spin .7s linear infinite;margin:30px auto}@keyframes spin{to{transform:rotate(360deg)}}.lang-btn{border:1px solid var(--border-2);background:#fff;color:var(--text-2);border-radius:8px;padding:5px 9px;font-size:.8rem;cursor:pointer;font-family:inherit;transition:.15s}.lang-btn:hover{border-color:rgba(var(--glow-c),.5);color:var(--brand-dark)}.lang-btn.active{background:var(--grad-brand);border-color:transparent;color:#04222e;font-weight:650}.avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,rgba(var(--glow-c),.2),rgba(var(--glow-v),.18));color:#0369a1;border:1px solid rgba(var(--glow-c),.32);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.85rem;flex:0 0 auto}.user-menu{position:relative}.topbar-brand{display:none;align-items:center;flex:0 0 auto}.topbar-brand img{width:30px;height:30px;border-radius:8px;background:transparent;object-fit:contain;padding:0}@media (max-width: 1023.98px){.topbar-brand{display:flex}}.brand-link{display:flex;align-items:center;flex:0 0 auto;text-decoration:none;border-radius:9px}a.topbar-brand{text-decoration:none}.brand-link,a.topbar-brand{transition:transform .15s ease,opacity .15s ease}.brand-link:hover,a.topbar-brand:hover{transform:scale(1.06);opacity:.92}.pw-wrap{position:relative;display:flex;align-items:center;width:100%}.pw-wrap>input{width:100%;padding-right:46px}.pw-eye{position:absolute;right:3px;top:50%;transform:translateY(-50%);background:none;border:0;cursor:pointer;line-height:1;font-size:1.05rem;padding:8px;border-radius:8px;color:var(--muted)}.pw-eye:hover{background:rgba(var(--glow-c),.12);color:var(--brand-dark)}.oinfo{display:grid;grid-template-columns:repeat(4,max-content);align-items:center;gap:2px 10px}.oinfo-i{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.oinfo-k{display:none}.oinfo-i+.oinfo-i:before{content:"·";color:var(--muted);opacity:.7}.only-touch{display:none}@media (max-width: 1023.98px){.only-touch{display:inline-flex}.only-mobile{display:revert}.sidebar{position:fixed;inset:0 auto 0 0;transform:translate(-102%);transition:transform .22s ease;box-shadow:var(--shadow-lg);width:min(78vw,264px);flex-basis:auto;z-index:40}.sidebar.open{transform:none}.backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);z-index:35}.table-wrap:not(.keep-table){border:0;background:transparent;box-shadow:none;border-radius:0;overflow-x:clip;overflow-y:visible}.table-wrap:not(.keep-table) table{display:block;min-width:0;border-collapse:separate;font-size:.88rem}.table-wrap:not(.keep-table) thead{display:none}.table-wrap:not(.keep-table) tbody{display:block}.table-wrap:not(.keep-table) tbody tr{display:block;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:11px 14px;margin-bottom:10px}.table-wrap:not(.keep-table) tbody tr:hover{background:var(--card)}.table-wrap:not(.keep-table) tbody td{display:flex;align-items:baseline;justify-content:space-between;gap:14px;padding:5px 0;border-bottom:1px dashed var(--border);text-align:right;white-space:normal;height:auto;overflow-wrap:anywhere;word-break:break-word}.table-wrap:not(.keep-table) tbody td:before{content:attr(data-label);flex:0 0 auto;max-width:42%;text-align:left;font-size:.75rem;font-weight:600;letter-spacing:.4px;color:var(--muted)}.table-wrap:not(.keep-table) tbody td:last-child{border-bottom:0}.table-wrap:not(.keep-table) tbody td:first-child{display:block;text-align:left;font-weight:650;font-size:.98rem;color:var(--text);padding:0 0 8px;margin-bottom:6px;border-bottom:1px solid var(--border)}.table-wrap:not(.keep-table) tbody td:first-child:before{content:none}.table-wrap:not(.keep-table) tbody td.act{justify-content:flex-end;flex-wrap:wrap;gap:8px;padding-top:10px}.table-wrap:not(.keep-table) tbody td.act:before{content:none}.table-wrap:not(.keep-table) tbody td:not(:first-child):not(.act)>:first-child{margin-left:auto}.table-wrap:not(.keep-table) tbody td.oinfo{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 16px}.table-wrap:not(.keep-table) tbody td.oinfo:before{content:none}.table-wrap:not(.keep-table) tbody td.oinfo>.oinfo-i:first-child{margin-left:0}.table-wrap:not(.keep-table) tbody td.oinfo .oinfo-i+.oinfo-i:before{content:none}.table-wrap:not(.keep-table) tbody td.oinfo .oinfo-i{display:flex;align-items:baseline;justify-content:space-between;gap:10px;white-space:nowrap;min-width:0}.table-wrap:not(.keep-table) tbody td.oinfo .oinfo-k{display:block;flex:0 0 auto;white-space:nowrap;font-size:.78rem;font-weight:500;color:var(--muted)}.table-wrap:not(.keep-table) tbody td[colspan],.table-wrap:not(.keep-table) tbody td.empty{display:block;text-align:center;padding:6px 0;border-bottom:0;font-weight:400;font-size:.9rem}.table-wrap:not(.keep-table) tbody td[colspan]:before,.table-wrap:not(.keep-table) tbody td.empty:before{content:none}}@media (max-width: 639.98px){.hide-mobile{display:none!important}.table-wrap:not(.keep-table) tbody td.oinfo{grid-template-columns:1fr;gap:0}.table-wrap:not(.keep-table) tbody td.oinfo .oinfo-i{align-items:baseline;padding:5px 0;border-bottom:1px dashed var(--border)}.table-wrap:not(.keep-table) tbody td.oinfo .oinfo-i:last-child{border-bottom:0}.content{padding:14px 14px 40px}.page-head h1{font-size:1.15rem}.stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.stat .v{font-size:1.2rem}.form-grid{grid-template-columns:1fr}.line-items .row-items{grid-template-columns:1fr 1fr}.line-items .row-items.head{display:none}.modal-foot{flex-direction:column-reverse}.modal-foot .btn{width:100%}table{min-width:480px}.items table{min-width:600px}.chips{gap:6px}.chip{font-size:.8rem;padding:4px 10px}.totals-box{width:100%}.form-foot{flex-direction:column-reverse}.form-foot .btn{width:100%}.toolbar{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;align-items:center}.toolbar>select,.toolbar>input[type=date]{width:100%}.toolbar>input[type=search],.toolbar>input[type=text],.toolbar>.span2{grid-column:1 / -1;width:100%}.toolbar>.spacer{display:none}.toolbar>.switch{grid-column:1 / -1}.toolbar>button.btn{justify-self:end}}@media (min-width: 640px) and (max-width: 1023.98px){:root{--side: 210px}.stats{grid-template-columns:repeat(3,minmax(0,1fr))}.content{padding:18px 22px 44px}.toolbar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;align-items:center}.toolbar>select,.toolbar>input[type=date]{width:100%}.toolbar>input[type=search],.toolbar>input[type=text]{grid-column:1 / -1;width:100%}.toolbar>.spacer{display:none}.toolbar>.switch{grid-column:1 / -1}.toolbar>button.btn{grid-column:1 / -1;justify-self:end;width:auto}table th,table td{padding:9px 10px}.table-wrap:not(.keep-table) tbody{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px}.table-wrap:not(.keep-table) tbody tr{margin-bottom:0}.table-wrap:not(.keep-table) tbody tr:has(td[colspan]){grid-column:1 / -1}}@media (min-width: 1024px){.content{padding:26px clamp(24px,4vw,64px) 56px}.stats{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}}.chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.chip{display:inline-flex;align-items:baseline;gap:6px;background:#fff;border:1px solid var(--border);border-radius:999px;padding:5px 12px;font-size:.85rem;color:var(--muted);box-shadow:var(--shadow);white-space:nowrap}.chip b{color:var(--text);font-weight:650;font-family:var(--font-mono)}.items-head{display:flex;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap}.items-head h4{margin:0 auto 0 0;font-size:.98rem}.items .table-wrap{margin-bottom:4px}th.num,td.num,th.num input,td.num input{text-align:right}.totals{display:flex;justify-content:flex-end;margin-top:12px}.totals-box{background:linear-gradient(180deg,#f8fbff,#f0f6fe);border:1px solid var(--border-2);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px 16px;width:min(380px,100%)}.totals-box .tr{display:flex;align-items:baseline;gap:16px;justify-content:space-between;padding:4px 0;font-size:.9rem}.totals-box .tr span{color:var(--muted)}.totals-box .tr b{color:var(--text);font-family:var(--font-mono)}.totals-box .tr.big{border-top:1px solid var(--border);margin-top:6px;padding-top:10px;font-size:1.05rem}.totals-box .tr.big span,.totals-box .tr.big b{color:var(--text);font-weight:700}.totals-box .tr.big b{color:var(--brand-dark)}.form-foot{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;margin-top:16px;padding-top:14px;border-top:1px solid var(--border)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}@media print{body{background:#fff;color:#111}.sidebar,.topbar,.btn,.toolbar,.modal-foot{display:none!important}.card,.table-wrap,.modal{background:#fff;border-color:#ccc;box-shadow:none}}
