:root{--n-0:#fff;--n-25:#fbfcfd;--n-50:#f7f8fa;--n-75:#f1f3f6;--n-100:#e9ecf1;--n-200:#dfe3ea;--n-300:#cdd3dd;--n-400:#9aa2b1;--n-500:#6b7484;--n-600:#4d5562;--n-700:#353b46;--n-800:#232830;--n-900:#14171c;--bg:#f5f6f8;--surface:#fff;--surface-2:var(--n-50);--surface-3:var(--n-75);--border:#e7eaef;--border-2:#eef0f4;--border-strong:#d7dce4;--text:#1b1f27;--text-muted:#5a6271;--text-faint:#8b93a2;--primary:#4f46e5;--primary-hover:#4338ca;--primary-active:#3730a3;--primary-soft:#eef0fe;--primary-soft-2:#e4e6fb;--primary-border:#cdd1f8;--primary-ring:#4f46e52e;--green:#15a163;--green-soft:#e6f6ee;--amber:#c77a09;--amber-soft:#fbf0dc;--blue:#2f6fed;--blue-soft:#e7f0fe;--violet:#7c4ddb;--violet-soft:#f0eafb;--red:#dc3545;--red-soft:#fcebed;--slate:#5a6473;--slate-soft:#eef1f5;--r-xs:6px;--r-sm:8px;--r-md:11px;--r-lg:14px;--r-xl:18px;--r-pill:999px;--shadow-xs:0 1px 2px #14171c0d;--shadow-sm:0 1px 2px #14171c0a, 0 1px 3px #14171c0f;--shadow:0 2px 4px #14171c0a, 0 6px 16px -4px #14171c1a;--shadow-md:0 4px 8px #14171c0d, 0 12px 28px -6px #14171c24;--shadow-lg:0 8px 16px #14171c0f, 0 24px 48px -12px #14171c38;--ring:0 0 0 3px var(--primary-ring);--ease:cubic-bezier(.4, 0, .2, 1);--ease-out:cubic-bezier(.16, 1, .3, 1);--t-fast:.12s;--t-med:.2s;--t-slow:.32s;--sidebar-w:250px;--sans:"Pretendard", -apple-system, system-ui, "Segoe UI", Roboto, "Helvetica Neue", "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;--mono:ui-monospace, "SFMono-Regular", "JetBrains Mono", Consolas, monospace;font-family:var(--sans);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;font-size:14px;line-height:1.5}*{box-sizing:border-box}html,body,#root{min-height:100vh;margin:0;padding:0}body{background:var(--bg);color:var(--text)}h1,h2,h3,h4{color:var(--text);letter-spacing:-.014em;margin:0;font-weight:640}a{color:var(--primary);text-decoration:none}button{cursor:pointer;font-family:inherit}input,select,textarea{font-family:inherit;font-size:14px}:focus-visible{box-shadow:var(--ring);border-radius:var(--r-xs);outline:2px solid #0000}button:focus:not(:focus-visible){outline:none}::-webkit-scrollbar{width:11px;height:11px}::-webkit-scrollbar-thumb{background:var(--n-300);background-clip:padding-box;border:3px solid #0000;border-radius:8px}::-webkit-scrollbar-thumb:hover{background:var(--n-400);background-clip:padding-box;border:3px solid #0000}::selection{background:var(--primary-soft-2)}.app-shell{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-w);background:var(--surface);border-right:1px solid var(--border);height:100vh;transition:width var(--t-med) var(--ease);flex-direction:column;flex-shrink:0;display:flex;position:sticky;top:0}.sidebar-brand{border-bottom:1px solid var(--border);align-items:center;gap:11px;min-height:61px;padding:17px 18px;display:flex}.sidebar-brand .logo{width:32px;height:32px;box-shadow:var(--shadow-xs);border-radius:9px;flex-shrink:0}.sidebar-brand .brand-text{white-space:nowrap;flex-direction:column;line-height:1.2;display:flex;overflow:hidden}.sidebar-brand .brand-text strong{letter-spacing:-.01em;font-size:14px;font-weight:700}.sidebar-brand .brand-text span{color:var(--text-faint);font-size:11px;font-weight:500}.brand-lockup{align-items:center;gap:10px;min-width:0;display:flex}.brand-lockup svg{border-radius:8px;flex-shrink:0}.brand-words{white-space:nowrap;flex-direction:column;line-height:1.18;display:flex;overflow:hidden}.brand-name{letter-spacing:-.02em;font-size:15px;font-weight:750}.brand-tag{color:var(--text-faint);letter-spacing:.01em;font-size:10.5px;font-weight:540}.nav{flex:1;padding:12px;overflow:hidden auto}.nav-section-label{letter-spacing:.07em;text-transform:uppercase;color:var(--text-faint);white-space:nowrap;padding:16px 10px 7px;font-size:10.5px;font-weight:700}.nav-item{width:100%;color:var(--text-muted);border-radius:var(--r-sm);text-align:left;white-space:nowrap;transition:background var(--t-fast) var(--ease), color var(--t-fast) var(--ease);background:0 0;border:none;align-items:center;gap:11px;padding:9px 11px;font-size:13.5px;font-weight:540;display:flex;position:relative}.nav-item>svg{color:var(--text-faint);transition:color var(--t-fast) var(--ease);flex-shrink:0}.nav-item:hover{background:var(--surface-3);color:var(--text)}.nav-item:hover>svg{color:var(--text-muted)}.nav-item.active{background:var(--primary-soft);color:var(--primary-hover);font-weight:620}.nav-item.active>svg{color:var(--primary)}.nav-item.active:before{content:"";background:var(--primary);border-radius:0 3px 3px 0;width:3px;height:18px;position:absolute;top:50%;left:-12px;transform:translateY(-50%)}.nav-badge{background:var(--primary);color:#fff;border-radius:var(--r-pill);text-align:center;min-width:18px;margin-left:auto;padding:1px 7px;font-size:11px;font-weight:700}.sidebar-foot{border-top:1px solid var(--border);flex-direction:column;gap:9px;padding:12px;display:flex}.app-shell.collapsed{--sidebar-w:72px}.app-shell.collapsed .sidebar-brand{justify-content:center;padding:17px 0}.app-shell.collapsed .brand-words,.app-shell.collapsed .nav-item span,.app-shell.collapsed .nav-section-label,.app-shell.collapsed .nav-badge,.app-shell.collapsed .sidebar-foot .demo-badge,.app-shell.collapsed .sidebar-foot .btn span{display:none}.app-shell.collapsed .nav-item{justify-content:center;padding:10px}.app-shell.collapsed .nav-item.active:before{left:-12px}.app-shell.collapsed .sidebar-foot .btn{justify-content:center}.main{flex-direction:column;flex:1;min-width:0;max-width:100%;display:flex;overflow-x:clip}.topbar{-webkit-backdrop-filter:saturate(1.4)blur(10px);border-bottom:1px solid var(--border);z-index:30;background:#ffffffd1;align-items:center;gap:12px;height:61px;padding:0 22px;display:flex;position:sticky;top:0}.topbar h1{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:16.5px;font-weight:650;overflow:hidden}.topbar-spacer{flex:1}.topbar-divider{background:var(--border);width:1px;height:26px;margin:0 2px}.icon-btn{border-radius:var(--r-sm);width:34px;height:34px;color:var(--text-muted);transition:background var(--t-fast) var(--ease), color var(--t-fast) var(--ease);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover{background:var(--surface-3);color:var(--text)}.content{width:100%;max-width:1340px;animation:fadeUp var(--t-slow) var(--ease-out);padding:26px 28px 64px}@keyframes fadeUp{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.btn{border:1px solid var(--border-strong);background:var(--surface);color:var(--text);border-radius:var(--r-sm);white-space:nowrap;box-shadow:var(--shadow-xs);transition:background var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease), box-shadow var(--t-fast) var(--ease), transform var(--t-fast) var(--ease);justify-content:center;align-items:center;gap:7px;padding:8px 14px;font-size:13.5px;font-weight:580;display:inline-flex}.btn:hover{background:var(--surface-2);border-color:var(--border-strong)}.btn:active{transform:translateY(.5px)}.btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.btn-primary{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:0 1px 2px #4f46e547, var(--shadow-xs)}.btn-primary:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.btn-primary:active{background:var(--primary-active)}.btn-danger{color:var(--red);border-color:#f1c4c9}.btn-danger:hover{background:var(--red-soft)}.btn-sm{padding:6px 11px;font-size:12.5px}.btn-icon{box-shadow:none;padding:8px}.btn-ghost{box-shadow:none;background:0 0;border-color:#0000}.btn-ghost:hover{background:var(--surface-3)}.segmented{background:var(--surface-3);border:1px solid var(--border);border-radius:var(--r-sm);gap:2px;padding:3px;display:inline-flex}.segmented button{color:var(--text-muted);transition:background var(--t-fast) var(--ease), color var(--t-fast) var(--ease), box-shadow var(--t-fast) var(--ease);background:0 0;border:none;border-radius:6px;padding:5px 12px;font-size:12.5px;font-weight:580}.segmented button:hover{color:var(--text)}.segmented button.on{background:var(--surface);color:var(--text);box-shadow:var(--shadow-xs);font-weight:640}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-sm)}.card-pad{padding:18px}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-sm);overflow:hidden}.panel-head{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:15px 18px;display:flex}.panel-head h3{font-size:14.5px;font-weight:640}.panel-head .spacer{flex:1}.panel-sub{color:var(--text-faint);font-size:12px;font-weight:500}.page-head{flex-wrap:wrap;align-items:flex-end;gap:14px;margin-bottom:20px;display:flex}.page-head .titles h2{letter-spacing:-.02em;font-size:22px;font-weight:680}.page-head .titles p{color:var(--text-muted);margin-top:4px;font-size:13px}.page-head .actions{flex-wrap:wrap;gap:8px;margin-left:auto;display:flex}.table-wrap{overflow-x:auto}table.tbl{border-collapse:collapse;width:100%;font-size:13.5px}table.tbl th{text-align:left;color:var(--text-faint);text-transform:uppercase;letter-spacing:.045em;border-bottom:1px solid var(--border);background:var(--surface-2);white-space:nowrap;padding:11px 16px;font-size:11px;font-weight:600}table.tbl td{border-bottom:1px solid var(--border-2);vertical-align:middle;padding:13px 16px}table.tbl tbody tr{transition:background var(--t-fast) var(--ease)}table.tbl tbody tr:hover{background:var(--surface-2)}table.tbl tbody tr:last-child td{border-bottom:none}.tbl .num{text-align:right;font-variant-numeric:tabular-nums}th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:color var(--t-fast) var(--ease)}th.sortable:hover{color:var(--text-muted)}th.sortable .th-in{align-items:center;gap:4px;display:inline-flex}th.sortable.num .th-in{flex-direction:row-reverse}.sort-caret{color:var(--primary);transition:transform var(--t-fast) var(--ease);display:inline-flex}.sort-caret.desc{transform:rotate(180deg)}.mono{font-family:var(--mono);letter-spacing:-.01em;font-size:12.5px}.badge{border-radius:var(--r-pill);white-space:nowrap;align-items:center;gap:5px;padding:3px 9px 3px 8px;font-size:11.5px;font-weight:620;line-height:1.4;display:inline-flex}.badge .dot{background:currentColor;border-radius:50%;width:6px;height:6px}.badge.received{color:var(--slate);background:var(--slate-soft)}.badge.confirmed{color:var(--blue);background:var(--blue-soft)}.badge.shipping{color:var(--violet);background:var(--violet-soft)}.badge.completed{color:var(--green);background:var(--green-soft)}.badge.rejected{color:var(--red);background:var(--red-soft)}.chip{border-radius:var(--r-xs);background:var(--surface-2);border:1px solid var(--border);color:var(--text-muted);align-items:center;gap:5px;padding:2px 8px;font-size:11.5px;font-weight:600;display:inline-flex}.demo-badge{color:var(--amber);background:var(--amber-soft);border-radius:var(--r-pill);white-space:nowrap;border:1px solid #f0dcb4;align-items:center;gap:5px;padding:3px 10px;font-size:11px;font-weight:640;display:inline-flex}.demo-badge:before{content:"";background:var(--amber);border-radius:50%;width:6px;height:6px}.field{flex-direction:column;gap:6px;display:flex}.field label{color:var(--text-muted);font-size:12.5px;font-weight:580}.field .req{color:var(--red);margin-left:2px}.input,.select,.textarea{border:1px solid var(--border-strong);background:var(--surface);border-radius:var(--r-sm);width:100%;color:var(--text);box-shadow:var(--shadow-xs);transition:border-color var(--t-fast) var(--ease), box-shadow var(--t-fast) var(--ease);outline:none;padding:9px 11px}.input::placeholder,.textarea::placeholder{color:var(--text-faint)}.input:hover,.select:hover,.textarea:hover{border-color:var(--n-400)}.input:focus,.select:focus,.textarea:focus{border-color:var(--primary);box-shadow:var(--ring)}.select{appearance:none;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='%238b93a2' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 9px center;background-repeat:no-repeat;padding-right:32px}.textarea{resize:vertical;min-height:66px}.form-grid{grid-template-columns:1fr 1fr;gap:15px;display:grid}.form-grid .full{grid-column:1/-1}.form-section-label{letter-spacing:.05em;text-transform:uppercase;color:var(--text-faint);align-items:center;gap:8px;margin-bottom:12px;font-size:11px;font-weight:700;display:flex}.form-section-label:not(:first-child){margin-top:4px}.field-hint{color:var(--text-faint);font-size:11.5px}.alert{border-radius:var(--r-sm);align-items:center;gap:9px;margin-bottom:16px;padding:10px 13px;font-size:13px;font-weight:580;display:flex}.alert svg{flex-shrink:0}.alert-error{background:var(--red-soft);color:var(--red);border:1px solid #f3ccd1}.alert-info{background:var(--primary-soft);color:var(--primary-hover);border:1px solid var(--primary-border)}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;display:flex}.search-box{flex:1;min-width:200px;max-width:380px;position:relative}.search-box .input{padding-left:35px}.search-box svg{color:var(--text-faint);pointer-events:none;position:absolute;top:50%;left:11px;transform:translateY(-50%)}.stat-grid{grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:20px;display:grid}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-sm);transition:box-shadow var(--t-med) var(--ease), transform var(--t-med) var(--ease);padding:17px 18px 16px;position:relative;overflow:hidden}.stat:hover{box-shadow:var(--shadow);transform:translateY(-1px)}.master-stat{text-align:left;width:100%;font:inherit;color:inherit;cursor:pointer;display:block}.master-stat.on{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary), var(--shadow-sm)}.master-stat.on:after{content:"";background:var(--primary);width:3px;position:absolute;top:0;bottom:0;left:0}.stat-top{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.stat .label{color:var(--text-muted);font-size:12.5px;font-weight:580}.stat .value{letter-spacing:-.025em;font-variant-numeric:tabular-nums;font-size:27px;font-weight:700;line-height:1.1}.stat .sub{color:var(--text-faint);align-items:center;gap:6px;margin-top:7px;font-size:12px;display:flex}.stat-ico{border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.delta{border-radius:var(--r-pill);align-items:center;gap:2px;padding:2px 7px 2px 5px;font-size:11.5px;font-weight:680;display:inline-flex}.delta.up{color:var(--green);background:var(--green-soft)}.delta.down{color:var(--red);background:var(--red-soft)}.delta.flat{color:var(--text-muted);background:var(--surface-3)}.dash-grid{grid-template-columns:1.45fr 1fr;gap:16px;display:grid}.dash-grid-3{grid-template-columns:1fr 1fr;gap:16px;margin-top:16px;display:grid}.bar-row{align-items:center;gap:12px;padding:8px 0;display:flex}.bar-row .bar-label{width:128px;color:var(--text);flex-shrink:0;align-items:center;gap:7px;font-size:13px;display:flex}.bar-track{background:var(--surface-3);border-radius:var(--r-pill);flex:1;height:8px;overflow:hidden}.bar-fill{border-radius:var(--r-pill);background:var(--primary);height:100%;transition:width .6s var(--ease-out)}.bar-row .bar-val{text-align:right;font-variant-numeric:tabular-nums;width:70px;color:var(--text);font-size:13px;font-weight:640}.donut-wrap{align-items:center;gap:22px;display:flex}.donut{flex-shrink:0}.donut-center-num{fill:var(--text);letter-spacing:-.02em;font-size:22px;font-weight:720}.donut-center-label{fill:var(--text-faint);text-transform:uppercase;letter-spacing:.06em;font-size:10px;font-weight:600}.donut-legend{flex-direction:column;flex:1;gap:9px;display:flex}.legend-row{align-items:center;gap:9px;font-size:12.5px;display:flex}.legend-row .lg-dot{border-radius:3px;flex-shrink:0;width:9px;height:9px}.legend-row .lg-name{color:var(--text-muted);font-weight:540}.legend-row .lg-val{font-variant-numeric:tabular-nums;margin-left:auto;font-weight:680}.linechart{width:100%;height:auto;display:block}.lc-area{opacity:.16}.lc-line{fill:none;stroke:var(--primary);stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round}.lc-dot{fill:var(--surface);stroke:var(--primary);stroke-width:2.4px}.lc-grid{stroke:var(--border-2);stroke-width:1px}.lc-label{fill:var(--text-faint);font-size:10.5px;font-weight:500}.lc-peak{fill:var(--text);font-size:11px;font-weight:700}.lc-hit{cursor:pointer}.donut-arc{cursor:pointer;transition:opacity var(--t-fast) var(--ease), stroke-dasharray .6s var(--ease-out)}.donut:hover .donut-arc{opacity:.55}.donut .donut-arc:hover{opacity:1}.legend-row{cursor:default}.filter-pills{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.pill{border:1px solid var(--border-strong);background:var(--surface);color:var(--text-muted);border-radius:var(--r-pill);box-shadow:var(--shadow-xs);transition:background var(--t-fast) var(--ease), color var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease);padding:6px 13px;font-size:12.5px;font-weight:580}.pill:hover{background:var(--surface-2);color:var(--text)}.pill.on{background:var(--primary);border-color:var(--primary);color:#fff}.cart-summary{border-top:1px solid var(--border);margin-top:14px;padding-top:14px}.cs-row{justify-content:space-between;align-items:baseline;padding:3px 0;font-size:13px;display:flex}.cs-val{font-variant-numeric:tabular-nums;font-weight:640}.cs-val.strong{letter-spacing:-.02em;font-size:17px;font-weight:720}.catalog-layout{grid-template-columns:1fr 350px;align-items:start;gap:18px;display:grid}.product-grid{grid-template-columns:repeat(auto-fill,minmax(228px,1fr));gap:14px;display:grid}.product-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-xs);transition:box-shadow var(--t-med) var(--ease), border-color var(--t-med) var(--ease), transform var(--t-med) var(--ease);flex-direction:column;gap:10px;padding:16px;display:flex}.product-card:hover{box-shadow:var(--shadow);border-color:var(--border-strong);transform:translateY(-2px)}.product-card .pc-top{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.product-card .pc-name{letter-spacing:-.01em;font-size:14px;font-weight:620;line-height:1.35}.product-card .pc-sku{font-family:var(--mono);color:var(--text-faint);margin-top:3px;font-size:11.5px}.product-card .pc-price{letter-spacing:-.02em;font-size:16px;font-weight:720}.product-card .pc-foot{align-items:center;gap:8px;margin-top:auto;display:flex}.fav-btn{color:var(--text-faint);border-radius:var(--r-xs);transition:transform var(--t-fast) var(--ease), color var(--t-fast) var(--ease);background:0 0;border:none;padding:3px;line-height:0}.fav-btn:hover{transform:scale(1.15)}.fav-btn.on{color:#f5a623}.cart-panel{position:sticky;top:78px}.cart-line{border-bottom:1px solid var(--border-2);align-items:center;gap:10px;padding:11px 0;display:flex}.cart-line:last-of-type{border-bottom:none}.cart-line .cl-name{flex:1;min-width:0}.cart-line .cl-name strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;display:block;overflow:hidden}.qty-stepper{border:1px solid var(--border-strong);border-radius:var(--r-sm);box-shadow:var(--shadow-xs);align-items:center;display:inline-flex;overflow:hidden}.qty-stepper button{background:var(--surface-2);width:28px;height:30px;color:var(--text-muted);transition:background var(--t-fast) var(--ease);border:none;font-size:15px}.qty-stepper button:hover{background:var(--surface-3);color:var(--text)}.qty-stepper input{text-align:center;background:var(--surface);-moz-appearance:textfield;border:none;outline:none;width:46px;font-weight:600}.qty-stepper input::-webkit-outer-spin-button{-webkit-appearance:none}.qty-stepper input::-webkit-inner-spin-button{-webkit-appearance:none}.modal-backdrop{-webkit-backdrop-filter:blur(3px);z-index:100;animation:fadeIn var(--t-med) var(--ease);background:#11151c6b;justify-content:center;align-items:flex-start;padding:54px 18px;display:flex;position:fixed;inset:0;overflow-y:auto}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);width:100%;max-width:560px;animation:pop var(--t-med) var(--ease-out);overflow:hidden}.modal.wide{max-width:780px}.modal.xwide{max-width:920px}@keyframes pop{0%{opacity:0;transform:translateY(12px)scale(.985)}to{opacity:1;transform:none}}.modal-head{border-bottom:1px solid var(--border);align-items:center;padding:17px 20px;display:flex}.modal-head h3{font-size:16px;font-weight:650}.modal-head .x{color:var(--text-muted);border-radius:var(--r-xs);transition:background var(--t-fast) var(--ease), color var(--t-fast) var(--ease);background:0 0;border:none;margin-left:auto;padding:5px;line-height:0}.modal-head .x:hover{background:var(--surface-3);color:var(--text)}.modal-body{max-height:66vh;padding:21px;overflow-y:auto}.modal-foot{border-top:1px solid var(--border);background:var(--surface-2);justify-content:flex-end;gap:9px;padding:15px 20px;display:flex}.menu{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);box-shadow:var(--shadow-lg);z-index:50;min-width:168px;animation:pop var(--t-fast) var(--ease-out);padding:5px;position:absolute;top:calc(100% + 5px);right:0}.menu button{border-radius:var(--r-xs);text-align:left;width:100%;color:var(--text);transition:background var(--t-fast) var(--ease);background:0 0;border:none;align-items:center;gap:9px;padding:8px 10px;font-size:13px;display:flex}.menu button:hover{background:var(--surface-2)}.dropdown{position:relative}.toast-wrap{z-index:200;flex-direction:column;gap:10px;display:flex;position:fixed;bottom:22px;right:22px}.toast{background:var(--n-900);color:#fff;border-radius:var(--r-sm);box-shadow:var(--shadow-lg);max-width:380px;animation:toastIn var(--t-med) var(--ease-out);align-items:center;gap:11px;padding:12px 16px;font-size:13.5px;font-weight:520;display:flex}.toast .t-ico{border-radius:var(--r-pill);flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;display:inline-flex}.toast.success .t-ico{background:#22c55e38}.toast.error .t-ico{background:#ef44443d}.toast.info .t-ico{background:#ffffff29}@keyframes toastIn{0%{opacity:0;transform:translateY(10px)scale(.97)}to{opacity:1;transform:none}}.login-page{grid-template-columns:1.05fr 1fr;min-height:100vh;display:grid}.login-aside{color:#fff;background:radial-gradient(120% 120% at 0 0,#6366f1 0%,#0000 42%),radial-gradient(120% 120% at 100% 100%,#2563eb 0%,#0000 46%),linear-gradient(150deg,#3730a3 0%,#4338ca 48%,#4f46e5 100%);flex-direction:column;justify-content:space-between;padding:56px;display:flex;position:relative;overflow:hidden}.login-aside:after{content:"";pointer-events:none;background-image:linear-gradient(#ffffff0b 1px,#0000 1px),linear-gradient(90deg,#ffffff0b 1px,#0000 1px);background-size:40px 40px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(120% 90% at 50% 0,#000 30%,#0000 80%);mask-image:radial-gradient(120% 90% at 50% 0,#000 30%,#0000 80%)}.login-aside>*{z-index:1;position:relative}.login-aside .la-brand{letter-spacing:-.01em;align-items:center;gap:11px;font-size:16.5px;font-weight:700;display:flex}.login-aside .la-brand .logo{border-radius:10px;width:36px;height:36px;box-shadow:0 4px 14px #00000040}.login-aside .la-eyebrow{border-radius:var(--r-pill);color:#fffffff2;background:#ffffff1f;border:1px solid #ffffff2e;align-self:flex-start;align-items:center;gap:7px;margin-bottom:20px;padding:5px 12px;font-size:12px;font-weight:600;display:inline-flex}.login-aside h2{color:#fff;letter-spacing:-.025em;white-space:pre-line;font-size:35px;font-weight:720;line-height:1.18}.login-aside .la-mid p{color:#ffffffc7;max-width:400px;margin-top:16px;font-size:15px;line-height:1.6}.la-feats{flex-direction:column;gap:13px;margin-top:30px;display:flex}.la-feat{color:#fffffff0;align-items:center;gap:12px;font-size:14px;font-weight:500;display:flex}.la-feat .fi{background:#ffffff21;border:1px solid #ffffff29;border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;display:flex}.la-stats{border-top:1px solid #ffffff29;gap:30px;margin-top:8px;padding-top:26px;display:flex}.la-stat .n{letter-spacing:-.02em;font-size:24px;font-weight:740}.la-stat .l{color:#ffffffb8;margin-top:2px;font-size:12px}.login-main{background:var(--surface);justify-content:center;align-items:center;padding:40px 24px;display:flex}.login-card{width:100%;max-width:392px;animation:fadeUp var(--t-slow) var(--ease-out)}.login-card-brand{border-bottom:1px solid var(--border);margin-bottom:22px;padding-bottom:20px;display:none}.login-card h1{letter-spacing:-.025em;font-size:25px;font-weight:700}.login-card .sub{color:var(--text-muted);margin:7px 0 26px;font-size:14px}.login-form{flex-direction:column;gap:15px;display:flex}.role-toggle{grid-template-columns:1fr 1fr;gap:9px;display:grid}.role-card{border:1.5px solid var(--border-strong);border-radius:var(--r-sm);text-align:left;background:var(--surface);transition:border-color var(--t-fast) var(--ease), background var(--t-fast) var(--ease), box-shadow var(--t-fast) var(--ease);padding:12px 13px}.role-card:hover{border-color:var(--n-400)}.role-card.on{border-color:var(--primary);background:var(--primary-soft);box-shadow:var(--ring)}.role-card strong{align-items:center;gap:6px;font-size:14px;font-weight:640;display:flex}.role-card span{color:var(--text-muted);margin-top:3px;font-size:12px;display:block}.login-divider{color:var(--text-faint);align-items:center;gap:12px;margin:2px 0;font-size:11.5px;font-weight:500;display:flex}.login-divider:before,.login-divider:after{content:"";background:var(--border);flex:1;height:1px}.btn-lg{padding:11px 16px;font-size:14px;font-weight:620}.login-note{color:var(--text-faint);text-align:center;margin-top:4px;font-size:12px}.skeleton{background:linear-gradient(90deg, var(--surface-3) 25%, var(--n-100) 37%, var(--surface-3) 63%);border-radius:var(--r-xs);background-size:400% 100%;animation:1.4s infinite shimmer}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.empty-state{text-align:center;color:var(--text-faint);padding:48px 20px;font-size:14px}.empty-illu{border-radius:var(--r-lg);background:var(--surface-3);width:56px;height:56px;color:var(--text-faint);justify-content:center;align-items:center;margin-bottom:14px;display:inline-flex}.empty-state .es-title{color:var(--text-muted);font-size:14.5px;font-weight:620}.empty-state .es-desc{margin-top:5px;font-size:13px}.tabs{border-bottom:1px solid var(--border);gap:2px;margin-bottom:18px;display:flex}.tab{color:var(--text-muted);transition:color var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease);background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 15px;font-size:13.5px;font-weight:580}.tab:hover{color:var(--text)}.tab.on{color:var(--primary);border-bottom-color:var(--primary);font-weight:640}.dropzone{border:1.5px dashed var(--border-strong);border-radius:var(--r-md);text-align:center;color:var(--text-muted);background:var(--surface-2);cursor:pointer;transition:border-color var(--t-fast) var(--ease), background var(--t-fast) var(--ease), color var(--t-fast) var(--ease);padding:30px}.dropzone:hover,.dropzone.drag{border-color:var(--primary);background:var(--primary-soft);color:var(--primary-hover)}.progress{background:var(--surface-3);border-radius:var(--r-pill);height:8px;margin-top:12px;overflow:hidden}.progress-bar{background:var(--primary);border-radius:var(--r-pill);height:100%;transition:width .15s var(--ease)}.upload-stats{gap:10px;margin-top:14px;display:flex}.upload-stat{border:1px solid var(--border);border-radius:var(--r-sm);text-align:center;background:var(--surface-2);flex:1;padding:11px 12px}.upload-stat .n{font-variant-numeric:tabular-nums;font-size:21px;font-weight:720}.upload-stat .l{color:var(--text-muted);margin-top:1px;font-size:11.5px}.upload-stat.ok .n{color:var(--green)}.upload-stat.err .n{color:var(--red)}.muted{color:var(--text-muted)}.faint{color:var(--text-faint)}.right{text-align:right}.flex{display:flex}.flex-center{align-items:center;display:flex}.gap-8{gap:8px}.gap-12{gap:12px}.mt-16{margin-top:16px}.mt-8{margin-top:8px}.wfull{width:100%}@media (width<=1100px){.stat-grid{grid-template-columns:repeat(2,1fr)}.dash-grid,.dash-grid-3,.catalog-layout{grid-template-columns:1fr}.cart-panel{position:static}}@media (width<=920px){.topbar .user-meta{display:none}}@media (width<=860px){:root{--sidebar-w:0px}.sidebar{z-index:90;transition:transform var(--t-med) var(--ease);width:282px;max-width:86vw;box-shadow:var(--shadow-lg);position:fixed;top:0;left:0;transform:translate(-100%)}.sidebar.open{transform:none}.app-shell.collapsed{--sidebar-w:0px}.app-shell.collapsed .sidebar{width:282px}.app-shell.collapsed .brand-words,.app-shell.collapsed .nav-item span,.app-shell.collapsed .nav-section-label,.app-shell.collapsed .nav-badge,.app-shell.collapsed .sidebar-foot .demo-badge,.app-shell.collapsed .sidebar-foot .btn span{display:revert}.app-shell.collapsed .nav-item{justify-content:flex-start;padding:9px 11px}.scrim{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:80;animation:fadeIn var(--t-med) var(--ease);background:#11151c6b;position:fixed;inset:0}.login-page{grid-template-columns:1fr}.login-aside{display:none}.login-card-brand{display:block}.form-grid{grid-template-columns:1fr}.menu-toggle{display:inline-flex!important}.collapse-toggle{display:none!important}.topbar .topbar-controls{display:none}.nav-item{padding:12px 11px;font-size:14px}}@media (width<=560px){.stat-grid{grid-template-columns:1fr}.stat-grid.master-grid{grid-template-columns:1fr 1fr;gap:10px}.master-grid .stat{padding:13px 13px 12px}.master-grid .value{font-size:22px}.content{padding:16px 14px 84px}.donut-wrap{flex-direction:column;align-items:stretch;gap:14px}.page-head .titles h2{font-size:19px}.page-head .actions{width:100%}.page-head .actions .btn{flex:1}.toolbar{gap:8px}.search-box{flex:100%;min-width:0;max-width:none}.toolbar .select{flex:calc(50% - 4px);min-width:0;width:auto!important}.tabs{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tab{white-space:nowrap;flex-shrink:0}.filter-pills{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;padding-bottom:2px;overflow-x:auto}.filter-pills::-webkit-scrollbar{display:none}.pill{flex-shrink:0}.donut-wrap .donut{align-self:center}.toast-wrap{left:12px;right:12px;bottom:calc(80px + env(safe-area-inset-bottom))}.toast{width:100%;max-width:none}}.menu-toggle,.mobile-only{display:none}@media (width<=860px){.mobile-only{display:block}.mobile-only.flex{display:flex}}.drawer-controls{display:none}@media (width<=860px){.drawer-controls{flex-direction:column;gap:10px;padding-bottom:4px;display:flex}.drawer-controls .seg-label{letter-spacing:.05em;text-transform:uppercase;color:var(--text-faint);margin-bottom:2px;font-size:11px;font-weight:700}.drawer-controls .segmented{width:100%}.drawer-controls .segmented button{flex:1;padding:9px 10px}.drawer-user{border-radius:var(--r-sm);background:var(--surface-2);border:1px solid var(--border);align-items:center;gap:10px;padding:10px;display:flex}.drawer-user .du-avatar{border-radius:var(--r-pill);background:var(--primary-soft);width:34px;height:34px;color:var(--primary-hover);flex-shrink:0;justify-content:center;align-items:center;font-size:14px;font-weight:700;display:flex}}.po-parties{grid-template-columns:1fr 1fr;gap:24px;margin-bottom:20px;display:grid}.po-meta{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px;display:grid}@media (width<=560px){.po-parties{grid-template-columns:1fr;gap:14px}.po-meta{grid-template-columns:1fr 1fr}}@media (width<=640px){table.tbl:not(.tbl-keep),table.tbl:not(.tbl-keep) thead,table.tbl:not(.tbl-keep) tbody,table.tbl:not(.tbl-keep) tr,table.tbl:not(.tbl-keep) td{width:100%;display:block}table.tbl:not(.tbl-keep) thead{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}table.tbl:not(.tbl-keep) tbody tr{border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-xs);background:var(--surface);margin-bottom:12px;padding:6px 4px}table.tbl:not(.tbl-keep) tbody tr:hover{background:var(--surface)}table.tbl:not(.tbl-keep) tbody tr:last-child{margin-bottom:0}table.tbl:not(.tbl-keep) td{text-align:right;border-bottom:1px solid var(--border-2);justify-content:space-between;align-items:center;gap:14px;padding:8px 14px;display:flex}table.tbl:not(.tbl-keep) td:last-child{border-bottom:none}table.tbl:not(.tbl-keep) td.num{text-align:right}table.tbl:not(.tbl-keep) td:before{content:attr(data-label);text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--text-faint);flex-shrink:0;font-size:11px;font-weight:650}table.tbl:not(.tbl-keep) td.cell-actions{justify-content:flex-end;padding-top:12px}table.tbl:not(.tbl-keep) td.cell-actions:before{display:none}table.tbl:not(.tbl-keep) td.cell-actions .btn-sm{flex:1}table.tbl:not(.tbl-keep) td[colspan]{text-align:center;display:block}table.tbl:not(.tbl-keep) td[colspan]:before{display:none}.dropdown .menu{left:auto;right:0}table.tbl.tbl-keep{min-width:460px;font-size:12.5px}table.tbl.tbl-keep th,table.tbl.tbl-keep td{padding:9px 10px}.modal-backdrop{align-items:flex-end;padding:0}.modal,.modal.wide,.modal.xwide{border-radius:var(--r-lg) var(--r-lg) 0 0;max-width:100%;max-height:92vh;animation:sheetUp var(--t-med) var(--ease-out);flex-direction:column;display:flex}.modal-head{padding-top:22px;position:relative}.modal-head:before{content:"";border-radius:var(--r-pill);background:var(--border-strong);width:38px;height:4px;position:absolute;top:8px;left:50%;transform:translate(-50%)}.modal-body{-webkit-overflow-scrolling:touch;flex:1;max-height:none}.modal-foot{padding:12px 16px calc(12px + env(safe-area-inset-bottom));position:sticky;bottom:0}.modal-foot .btn{flex:1;padding:11px 14px}}@keyframes sheetUp{0%{transform:translateY(100%)}to{transform:none}}.cart-fab{display:none}@media (width<=1100px){.cart-panel.as-drawer{display:none}.cart-fab{left:14px;right:14px;bottom:calc(14px + env(safe-area-inset-bottom));z-index:70;background:var(--primary);color:#fff;border-radius:var(--r-md);box-shadow:var(--shadow-lg);border:none;align-items:center;gap:12px;padding:13px 16px;font-size:14px;font-weight:640;display:flex;position:fixed}.cart-fab:disabled{opacity:.6}.cart-fab .cf-count{border-radius:var(--r-pill);background:#ffffff38;padding:2px 9px;font-size:12.5px;font-weight:700}.cart-fab .cf-total{font-variant-numeric:tabular-nums;margin-left:auto}.cart-drawer-backdrop{z-index:100;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:fadeIn var(--t-med) var(--ease);background:#11151c6b;align-items:flex-end;display:flex;position:fixed;inset:0}.cart-drawer{background:var(--surface);border-radius:var(--r-lg) var(--r-lg) 0 0;width:100%;max-height:86vh;box-shadow:var(--shadow-lg);animation:sheetUp var(--t-med) var(--ease-out);flex-direction:column;display:flex}.cart-drawer .cd-head{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:18px 18px 12px;display:flex;position:relative}.cart-drawer .cd-head:before{content:"";border-radius:var(--r-pill);background:var(--border-strong);width:38px;height:4px;position:absolute;top:8px;left:50%;transform:translate(-50%)}.cart-drawer .cd-body{flex:1;padding:12px 18px;overflow-y:auto}}@media (width>=1101px){.cart-fab,.cart-drawer-backdrop{display:none}}@media (width<=1100px){.catalog-page-pad{padding-bottom:78px}}@media (width<=860px){.btn{min-height:44px;padding:11px 15px}.btn-sm{min-height:38px;padding:9px 13px}.icon-btn{width:44px;height:44px}.qty-stepper button{width:40px;height:40px}.tab{padding:12px 14px}.pill{padding:9px 15px}.fav-btn{padding:8px}.menu button{padding:12px}.modal-head .x{justify-content:center;align-items:center;width:40px;height:40px;display:flex}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.print-only{display:none}@media print{body{background:#fff}.app-shell>.sidebar,.topbar,.toast-wrap,.scrim,.no-print{display:none!important}.main,.content{max-width:none!important;padding:0!important;animation:none!important}.modal-backdrop{-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;padding:0;position:static;overflow:visible}.modal,.modal.wide,.modal.xwide{box-shadow:none;border-radius:0;width:100%;max-width:none;animation:none}.modal-head,.modal-foot{display:none!important}.modal-body{max-height:none;padding:0;overflow:visible}.print-only{display:block}.print-doc{color:#000;padding:8mm;font-size:12px}@page{margin:12mm}}
