@media (width<=1023px){.topbar{--menu-display:inline-flex}}:root{--gold:#c59b3e;--brand:#a67c2a;--brand-600:#8c6720;--brand-50:#fbf7ee;--brand-100:#f5ead1;--brand-200:#e9d4a3;--bg:#f7f5f0;--surface:#fff;--surface-2:#f3f0e9;--border:#e7e2d6;--border-strong:#d6cfbf;--text:#170d04;--text-2:#4a4036;--text-3:#6f655a;--muted:#a39a8e;--green:#15803d;--green-bg:#dcfce7;--red:#b91c1c;--red-bg:#fee2e2;--amber:#b45309;--amber-bg:#fef3c7;--blue:#1d4ed8;--blue-bg:#dbeafe;--purple:#6d28d9;--purple-bg:#ede9fe;--teal:#0f766e;--teal-bg:#ccfbf1;--gray-bg:#f3f4f6;--radius:12px;--radius-sm:8px;--shadow:0 1px 2px #1018280d;--shadow-md:0 6px 20px -4px #1018281f;--font:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;--sidebar-w:240px;--topbar-h:56px;--bottomnav-h:60px;--safe-b:env(safe-area-inset-bottom,0px);--safe-t:env(safe-area-inset-top,0px)}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--topbar-h) + 12px)}@media (width<=767px){html{scroll-padding-bottom:calc(var(--bottomnav-h) + var(--safe-b) + 90px)}}body{font-family:var(--font);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;overscroll-behavior-y:none;margin:0;font-size:15px;line-height:1.45}h1,h2,h3,h4{letter-spacing:-.01em;margin:0;font-weight:700}h1{font-size:22px}h2{font-size:18px}h3{font-size:15px}h4{color:var(--text-3);text-transform:uppercase;letter-spacing:.04em;font-size:13px}p{margin:0}a{color:var(--brand);text-decoration:none}button{font-family:inherit;font-size:inherit}img{max-width:100%;display:block}::placeholder{color:var(--muted)}.muted{color:var(--text-3)}.small{font-size:13px}.xs{font-size:12px}.bold{font-weight:600}.strong{font-weight:700}.nowrap{white-space:nowrap}.ellipsis{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.right{text-align:right}.center{text-align:center}.mono{font-variant-numeric:tabular-nums}.text-green{color:var(--green)}.text-red{color:var(--red)}.text-amber{color:var(--amber)}.text-brand{color:var(--brand)}.text-blue{color:var(--blue)}.mt-1{margin-top:6px}.mt-2{margin-top:12px}.mt-3{margin-top:20px}.mb-1{margin-bottom:6px}.mb-2{margin-bottom:12px}.mb-3{margin-bottom:20px}.flex{align-items:center;gap:8px;display:flex}.flex-1{flex:1;min-width:0}.between{justify-content:space-between}.wrap{flex-wrap:wrap}.col{flex-direction:column;align-items:stretch}.grid{gap:12px;display:grid}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}@media (width<=900px){.grid-4,.grid-3{grid-template-columns:repeat(2,1fr)}}@media (width<=560px){.grid-2.stack,.grid-3.stack,.grid-4.stack{grid-template-columns:1fr}}.show-mobile{display:none!important}@media (width<=767px){.hide-mobile{display:none!important}.show-mobile{display:initial!important}}.shell{min-height:100dvh}.sidebar{width:var(--sidebar-w);background:var(--surface);border-right:1px solid var(--border);z-index:40;padding-top:var(--safe-t);flex-direction:column;display:flex;position:fixed;inset:0 auto 0 0}.sidebar .logo{color:var(--text);letter-spacing:.01em;align-items:center;gap:10px;padding:14px 18px;font-size:17px;font-weight:800;display:flex}.sidebar .logo .muted{color:var(--gold)!important}.sidebar .logo{border-bottom:1px solid var(--border);justify-content:center;margin-bottom:6px;padding:18px 18px 12px;position:relative}.sidebar .logo img{width:auto;height:92px}.sidebar .logo .erp-tag{letter-spacing:.08em;color:#fff;background:var(--gold);border-radius:999px;padding:2px 7px;font-size:10px;font-weight:700;position:absolute;top:12px;right:14px}.topbar-logo{align-items:center;display:flex}.topbar-logo img{width:auto;height:44px}.sidebar nav{flex:1;padding:4px 10px;overflow-y:auto}.sidebar nav a{color:var(--text-2);border-radius:10px;align-items:center;gap:11px;margin-bottom:2px;padding:10px 12px;font-size:14.5px;font-weight:500;display:flex}.sidebar nav a svg{opacity:.8;flex:none;width:20px;height:20px}.sidebar nav a:hover{background:var(--surface-2);color:var(--text)}.sidebar nav a.router-link-active,.sidebar nav a.active{background:var(--brand-50);color:var(--brand);font-weight:600}.sidebar nav a.active svg{opacity:1}.sidebar nav .sep{background:var(--border);height:1px;margin:8px 6px}.sidebar .user{border-top:1px solid var(--border);align-items:center;gap:10px;padding:12px 14px;display:flex}.avatar{background:var(--brand-100);width:34px;height:34px;color:var(--brand);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:13px;font-weight:700;display:inline-flex}.main{margin-left:var(--sidebar-w);flex-direction:column;min-height:100dvh;display:flex}.topbar{z-index:30;height:calc(var(--topbar-h) + var(--safe-t));padding-top:var(--safe-t);-webkit-backdrop-filter:saturate(180%)blur(8px);border-bottom:1px solid var(--border);background:#ffffffeb;align-items:center;gap:10px;padding-left:20px;padding-right:20px;display:flex;position:sticky;top:0}.topbar h1{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:18px;overflow:hidden}.content{flex:1;width:100%;max-width:1400px;margin:0 auto;padding:20px}.bottomnav{display:none}@media (width<=1023px){.sidebar{box-shadow:none;width:280px;transition:transform .22s;transform:translate(-100%)}.sidebar.open{box-shadow:var(--shadow-md);transform:none}.sidebar-backdrop{z-index:39;background:#11182766;position:fixed;inset:0}.main{margin-left:0}}@media (width<=767px){.content{padding:14px 14px calc(var(--bottomnav-h) + var(--safe-b) + 20px)}.topbar{padding-left:14px;padding-right:14px}.bottomnav{height:calc(var(--bottomnav-h) + var(--safe-b));padding-bottom:var(--safe-b);-webkit-backdrop-filter:blur(10px);border-top:1px solid var(--border);z-index:35;background:#fffffff5;display:flex;position:fixed;bottom:0;left:0;right:0}.bottomnav a{color:var(--text-3);-webkit-tap-highlight-color:transparent;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;font-size:10.5px;font-weight:500;display:flex}.bottomnav a svg{width:23px;height:23px}.bottomnav a.active{color:var(--brand)}.bottomnav a.fab{flex:none;width:72px}.bottomnav a.fab span.btn-fab{color:#fff;background:linear-gradient(135deg,#8c6720,#c59b3e);border-radius:50%;justify-content:center;align-items:center;width:50px;height:50px;margin-top:-22px;display:flex;box-shadow:0 6px 16px -4px #a67c2a99}.bottomnav a.fab svg{width:26px;height:26px}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.card-body{padding:16px}.card-head{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:14px 16px;display:flex}.card-head h3{flex:1}.card+.card{margin-top:12px}@media (width<=767px){.card-body{padding:13px}.card-head{padding:12px 13px}}.stat{padding:14px 16px}.stat .label{color:var(--text-3);font-size:12.5px;font-weight:500}.stat .value{letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin-top:2px;font-size:22px;font-weight:800}.stat .sub{color:var(--text-3);margin-top:2px;font-size:12px}@media (width<=560px){.stat .value{font-size:19px}.stat{padding:12px 13px}}.stat.brand{color:#fff;background:linear-gradient(135deg,#8c6720,#c59b3e);border:0}.stat.brand .label,.stat.brand .sub{color:#ffffffd9}.btn{border:1px solid var(--border-strong);background:var(--surface);height:40px;color:var(--text);cursor:pointer;white-space:nowrap;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;border-radius:10px;justify-content:center;align-items:center;gap:6px;padding:0 14px;font-weight:600;text-decoration:none;transition:background .12s,transform 80ms;display:inline-flex}.btn:hover{background:var(--surface-2)}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn svg{width:18px;height:18px}.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn.primary:hover{background:var(--brand-600)}.btn.success{background:var(--green);border-color:var(--green);color:#fff}.btn.danger{background:var(--surface);color:var(--red);border-color:#fca5a5}.btn.danger:hover{background:var(--red-bg)}.btn.ghost{background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--surface-2)}.btn.soft{background:var(--brand-50);color:var(--brand);border-color:#0000}.btn.soft:hover{background:var(--brand-100)}.btn.sm{border-radius:8px;height:32px;padding:0 10px;font-size:13px}.btn.sm svg{width:15px;height:15px}.btn.lg{border-radius:12px;height:48px;padding:0 20px;font-size:16px}.btn.icon{width:40px;padding:0}.btn.icon.sm{width:32px}.btn.block{width:100%}.btn-row{flex-wrap:wrap;gap:8px;display:flex}.field{flex-direction:column;gap:5px;min-width:0;display:flex}.field label,.label{color:var(--text-2);font-size:12.5px;font-weight:600}.field label .req{color:var(--red)}.input,select.input,textarea.input{border:1px solid var(--border-strong);background:var(--surface);width:100%;height:42px;font:inherit;color:var(--text);appearance:none;border-radius:10px;outline:none;padding:0 12px;font-size:16px;transition:border-color .12s,box-shadow .12s}@media (width>=768px){.input,select.input,textarea.input{height:40px;font-size:14.5px}}textarea.input{resize:vertical;height:auto;min-height:76px;padding:9px 12px;line-height:1.4}.input:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-100)}.input.sm{border-radius:8px;height:34px;padding:0 9px;font-size:14px}.input.right{text-align:right}select.input{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;padding-right:32px}.input-wrap{position:relative}.input-wrap .suffix{color:var(--text-3);pointer-events:none;font-size:13px;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.input.has-suffix{padding-right:30px}.input.sm.has-suffix{padding-right:26px}.input-wrap .prefix-icon{color:var(--muted);pointer-events:none;width:18px;height:18px;position:absolute;top:50%;left:11px;transform:translateY(-50%)}.input-wrap .prefix-icon+.input{padding-left:36px}.form-grid{grid-template-columns:repeat(2,1fr);gap:12px 14px;display:grid}.form-grid .span-2{grid-column:span 2}@media (width<=560px){.form-grid{grid-template-columns:1fr}.form-grid .span-2{grid-column:span 1}}.check{cursor:pointer;align-items:center;gap:8px;font-weight:500;display:inline-flex}.check input{width:18px;height:18px;accent-color:var(--brand)}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--border-strong);background:var(--surface);cursor:pointer;white-space:nowrap;-webkit-tap-highlight-color:transparent;border-radius:999px;align-items:center;gap:6px;height:34px;padding:0 12px;font-size:13.5px;font-weight:500;display:inline-flex}.chip.active{background:var(--brand);border-color:var(--brand);color:#fff}.chip.sm{height:28px;padding:0 10px;font-size:12.5px}.segment{background:var(--surface-2);border-radius:10px;gap:2px;max-width:100%;padding:3px;display:inline-flex;overflow-x:auto}.segment button{height:32px;color:var(--text-3);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:8px;padding:0 12px;font-size:13.5px;font-weight:600}.segment button.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.scroll-x{-webkit-overflow-scrolling:touch;scrollbar-width:none;overflow-x:auto}.scroll-x::-webkit-scrollbar{display:none}.hint{color:var(--text-3);font-size:12px}.qty{border:1px solid var(--border-strong);border-radius:9px;align-items:center;height:36px;display:inline-flex;overflow:hidden}.qty button{background:var(--surface-2);cursor:pointer;width:36px;height:100%;color:var(--text-2);border:0;font-size:18px}.qty input{text-align:center;width:48px;height:100%;font:inherit;-moz-appearance:textfield;border:0;outline:none;font-size:15px;font-weight:600}.qty input::-webkit-inner-spin-button{display:none}.table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}table.table{border-collapse:collapse;width:100%;font-size:14px}.table th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--text-3);border-bottom:1px solid var(--border);white-space:nowrap;background:var(--surface);padding:10px 12px;font-size:12px;font-weight:600}.table td{border-bottom:1px solid var(--border);vertical-align:middle;padding:11px 12px}.table tr:last-child td{border-bottom:0}.table tbody tr.click{cursor:pointer}.table tbody tr.click:hover{background:#fafafa}.table .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.table.compact td,.table.compact th{padding:7px 10px}.table tfoot td{background:var(--surface-2);font-weight:700}.list{flex-direction:column;display:flex}.list-item{border-bottom:1px solid var(--border);cursor:pointer;-webkit-tap-highlight-color:transparent;background:var(--surface);align-items:center;gap:12px;padding:12px 14px;display:flex}.list-item:last-child{border-bottom:0}.list-item:active{background:var(--surface-2)}.list-item .body{flex:1;min-width:0}.list-item .title{font-weight:600}.list-item .meta{color:var(--text-3);margin-top:2px;font-size:12.5px}.list-item .end{text-align:right;flex:none}.thumb{object-fit:cover;background:var(--surface-2);border-radius:9px;flex:none;width:44px;height:44px}.thumb.lg{width:64px;height:64px}.thumb.ph{color:var(--muted);justify-content:center;align-items:center;display:flex}.badge{white-space:nowrap;background:var(--gray-bg);color:var(--text-2);border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:12px;font-weight:600;line-height:1.5;display:inline-flex}.badge.dot:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.badge.green{background:var(--green-bg);color:var(--green)}.badge.red{background:var(--red-bg);color:var(--red)}.badge.amber{background:var(--amber-bg);color:var(--amber)}.badge.blue{background:var(--blue-bg);color:var(--blue)}.badge.purple{background:var(--purple-bg);color:var(--purple)}.badge.teal{background:var(--teal-bg);color:var(--teal)}.badge.brand{background:var(--brand-100);color:var(--brand)}.badge.lg{padding:4px 10px;font-size:13px}.empty{text-align:center;color:var(--text-3);padding:40px 16px}.empty svg{opacity:.35;width:44px;height:44px;margin:0 auto 10px}.pagination{border-top:1px solid var(--border);color:var(--text-3);justify-content:space-between;align-items:center;gap:8px;padding:12px 14px;font-size:13px;display:flex}.skeleton{background:linear-gradient(90deg, var(--surface-2) 25%, #e9ecef 37%, var(--surface-2) 63%);background-size:400% 100%;border-radius:8px;min-height:14px;animation:1.4s infinite sk}@keyframes sk{0%{background-position:100%}to{background-position:0}}.page-head{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;display:flex}.page-head h1{flex:1;min-width:160px}.toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;display:flex}.toolbar .search{flex:1;min-width:180px;max-width:420px}.tabs{border-bottom:1px solid var(--border);scrollbar-width:none;gap:2px;margin-bottom:14px;display:flex;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tabs button{color:var(--text-3);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 14px;font-size:14px;font-weight:600}.tabs button.active{color:var(--brand);border-color:var(--brand)}.tabs button .n{background:var(--surface-2);color:var(--text-2);border-radius:999px;margin-left:4px;padding:0 6px;font-size:11px}.modal-backdrop{z-index:100;background:#11182780;justify-content:center;align-items:center;padding:20px;animation:.15s fade;display:flex;position:fixed;inset:0}.modal{background:var(--surface);width:100%;max-width:560px;max-height:calc(100dvh - 40px);box-shadow:var(--shadow-md);border-radius:16px;flex-direction:column;animation:.18s pop;display:flex}.modal.lg{max-width:820px}.modal.xl{max-width:1080px}.modal.sm{max-width:400px}.modal-head{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:16px 18px;display:flex}.modal-head h2{flex:1;font-size:17px}.modal-body{-webkit-overflow-scrolling:touch;flex:1;padding:18px;overflow-y:auto}.modal-foot{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:flex-end;gap:8px;padding:12px 18px;display:flex}@media (width<=767px){.modal-backdrop{align-items:flex-end;padding:0}.modal{border-radius:18px 18px 0 0;max-width:none;max-height:calc(100dvh - 24px);animation:.22s up}.modal-body,.modal-head{padding:14px}.modal-foot{padding:10px 14px calc(10px + var(--safe-b))}.modal-foot .btn{flex:1;height:46px}}@keyframes fade{0%{opacity:0}}@keyframes pop{0%{opacity:0;transform:scale(.97)}}@keyframes up{0%{opacity:.6;transform:translateY(40px)}}.toasts{top:calc(12px + var(--safe-t));z-index:200;pointer-events:none;flex-direction:column;gap:8px;width:min(92vw,420px);display:flex;position:fixed;left:50%;transform:translate(-50%)}.toast{color:#fff;box-shadow:var(--shadow-md);pointer-events:auto;background:#111827;border-radius:10px;align-items:center;gap:8px;padding:11px 14px;font-size:14px;font-weight:500;animation:.2s down;display:flex}.toast.error{background:var(--red)}.toast.success{background:var(--green)}@keyframes down{0%{opacity:0;transform:translateY(-10px)}}.dropdown{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-md);z-index:50;border-radius:10px;max-height:320px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto}.dropdown .opt{cursor:pointer;border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:10px 12px;display:flex}.dropdown .opt:last-child{border-bottom:0}.dropdown .opt:hover,.dropdown .opt.hl{background:var(--brand-50)}.stepper{scrollbar-width:none;gap:4px;padding-bottom:4px;display:flex;overflow-x:auto}.stepper::-webkit-scrollbar{display:none}.step{text-align:center;min-width:86px;color:var(--muted);flex:1;padding-top:22px;font-size:12px;font-weight:600;position:relative}.step:before{content:"";background:var(--border-strong);z-index:1;border-radius:50%;width:12px;height:12px;position:absolute;top:6px;left:50%;transform:translate(-50%)}.step:after{content:"";background:var(--border);height:2px;position:absolute;top:11px;left:-50%;right:50%}.step:first-child:after{display:none}.step.done{color:var(--text-2)}.step.done:before,.step.done:after{background:var(--green)}.step.current{color:var(--brand)}.step.current:before{background:var(--brand);box-shadow:0 0 0 4px var(--brand-100)}.step.current:after{background:var(--green)}.timeline{padding-left:22px;position:relative}.timeline:before{content:"";background:var(--border);width:2px;position:absolute;top:6px;bottom:6px;left:6px}.tl-item{padding-bottom:14px;position:relative}.tl-item:before{content:"";background:var(--brand);width:10px;height:10px;box-shadow:0 0 0 1px var(--border);border:2px solid #fff;border-radius:50%;position:absolute;top:5px;left:-20px}.tl-item .when{color:var(--text-3);font-size:12px}.kanban{align-items:flex-start;gap:12px;padding-bottom:8px;display:flex;overflow-x:auto}.kanban .col{background:var(--surface-2);border-radius:12px;flex-direction:column;flex:none;width:272px;max-height:calc(100dvh - 220px);padding:8px;display:flex}.kanban .col-head{justify-content:space-between;align-items:center;padding:6px 8px 10px;font-size:13.5px;font-weight:700;display:flex}.kanban .col-body{flex-direction:column;gap:8px;display:flex;overflow-y:auto}.kcard{background:var(--surface);box-shadow:var(--shadow);cursor:pointer;border:1px solid var(--border);border-radius:10px;padding:10px 12px}.kcard:hover{border-color:var(--brand-200)}.sticky-bar{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-top:1px solid var(--border);padding:10px 0 calc(10px + var(--safe-b));z-index:20;background:#fffffff2;align-items:center;gap:12px;margin:16px -20px -20px;padding-left:20px;padding-right:20px;display:flex;position:sticky;bottom:0}@media (width<=767px){.sticky-bar{margin:16px -14px calc(-1 * (var(--bottomnav-h) + var(--safe-b) + 20px));bottom:calc(var(--bottomnav-h) + var(--safe-b));padding-bottom:10px;padding-left:14px;padding-right:14px}}.auth{background:linear-gradient(160deg,#fbf7ee,#fff 55%,#f5ead1);justify-content:center;align-items:center;min-height:100dvh;padding:20px;display:flex}.auth .box{width:100%;max-width:400px}.print-page{color:#111;background:#fff;max-width:800px;margin:0 auto;padding:24px;font-size:14px}@media print{body{background:#fff}.no-print{display:none!important}.print-page{max-width:none;padding:0}@page{margin:12mm}}.progress{background:var(--surface-2);border-radius:99px;height:8px;overflow:hidden}.progress>div{background:var(--brand);border-radius:99px;height:100%}.divider{background:var(--border);height:1px;margin:14px 0}.kv{grid-template-columns:auto 1fr;gap:6px 14px;font-size:14px;display:grid}.kv dt{color:var(--text-3)}.kv dd{word-break:break-word;margin:0;font-weight:500}.note-box{background:var(--amber-bg);color:#713f12;white-space:pre-wrap;border-radius:10px;padding:10px 12px;font-size:14px}.money-big{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:26px;font-weight:800}.fade-enter-active,.fade-leave-active{transition:opacity .12s}.fade-enter-from,.fade-leave-to{opacity:0}
