:root{
  --paper:#F4F7FA;--ink:#152B45;--teal:#087F8C;--white:#FFFFFF;--muted:#64748B;--gold:#D58A22;
  --line:#DCE4EC;--line-dark:#C9D5E1;--soft:#EAF2F5;--danger:#B54747;--success:#25755A;
  --shadow:0 18px 55px rgba(21,43,69,.12);--radius:12px;--mono:"SFMono-Regular",Consolas,"Liberation Mono",monospace;
  --sans:"Microsoft YaHei UI","PingFang SC","Noto Sans CJK SC","Segoe UI",sans-serif;
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:14px}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}[hidden]{display:none!important}
:focus-visible{outline:3px solid rgba(8,127,140,.28);outline-offset:2px}.muted{color:var(--muted)}.eyebrow{margin:0 0 6px;color:var(--teal);font-size:11px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}.num{font-family:var(--mono);font-variant-numeric:tabular-nums}.nowrap{white-space:nowrap}.danger-text{color:var(--danger)}
.login-view{min-height:100vh;display:grid;grid-template-columns:minmax(360px,44%) 1fr;background:var(--white)}.login-brand{position:relative;overflow:hidden;display:grid;place-items:center;background:var(--ink);color:#fff}.login-brand:before{content:"";position:absolute;width:540px;height:540px;border:1px solid rgba(255,255,255,.12);border-radius:50%;left:-210px;bottom:-230px;box-shadow:0 0 0 74px rgba(255,255,255,.035),0 0 0 148px rgba(255,255,255,.025)}.login-brand:after{content:"518";position:absolute;right:-30px;top:40px;font:800 190px/1 var(--mono);letter-spacing:-.12em;color:rgba(255,255,255,.035)}.login-brand__inner{position:relative;z-index:1;width:min(340px,72%)}.brand-seal{display:grid;place-items:center;width:66px;height:66px;border:1px solid rgba(255,255,255,.48);border-radius:50%;font:700 14px var(--mono);letter-spacing:.08em}.login-brand p{margin:42px 0 0;font-size:28px;line-height:1.5;font-weight:650;letter-spacing:.02em}.login-panel{display:grid;place-items:center;padding:42px}.login-card{width:min(390px,100%)}.login-wordmark{display:flex;align-items:center;gap:10px;margin-bottom:70px;font:750 18px var(--mono);letter-spacing:-.04em}.wordmark-dot{display:inline-block;width:12px;height:12px;background:var(--gold);border-radius:50%}.login-card h1{margin:0 0 10px;font-size:34px;letter-spacing:-.04em}.login-card>.muted{margin:0 0 34px}.login-note{text-align:center;color:var(--muted);font-size:12px;margin-top:20px}
.app-shell{min-height:100vh;display:grid;grid-template-columns:224px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;background:var(--ink);color:#fff;padding:25px 16px 18px}.brand{display:grid;grid-template-columns:14px 1fr;column-gap:10px;align-items:center;padding:0 10px 28px}.brand strong{font:750 17px var(--mono);letter-spacing:-.05em}.brand small{grid-column:2;color:rgba(255,255,255,.44);font-size:10px;letter-spacing:.18em;margin-top:3px}.nav{display:flex;flex-direction:column;gap:3px}.nav-button{position:relative;display:flex;align-items:center;gap:11px;width:100%;height:43px;padding:0 12px;border:0;border-radius:8px;background:transparent;color:rgba(255,255,255,.67);text-align:left;font-size:13px}.nav-button svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.7}.nav-button:hover{background:rgba(255,255,255,.055);color:#fff}.nav-button.is-active{background:rgba(8,127,140,.28);color:#fff;font-weight:700}.nav-button.is-active:before{content:"";position:absolute;left:-16px;width:3px;height:22px;background:#4EC3C9;border-radius:0 3px 3px 0}.sidebar-foot{margin-top:auto;display:flex;align-items:center;gap:8px;padding:13px 11px 0;border-top:1px solid rgba(255,255,255,.1);font-size:11px;color:rgba(255,255,255,.48)}.status-dot{width:7px;height:7px;border-radius:50%;background:#56B391;box-shadow:0 0 0 4px rgba(86,179,145,.13)}
.workspace{min-width:0}.topbar{height:82px;padding:0 34px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:rgba(244,247,250,.93);backdrop-filter:blur(12px);position:sticky;top:0;z-index:30}.topbar h1{font-size:23px;margin:0;letter-spacing:-.035em}.topbar-actions,.toolbar,.inline-actions,.filter-row{display:flex;align-items:center;gap:10px}.today-label{font:12px var(--mono);color:var(--muted);padding-right:14px;border-right:1px solid var(--line)}.user-menu{position:relative}.user-button{display:flex;align-items:center;gap:9px;padding:5px 8px 5px 5px;border:0;background:transparent;border-radius:8px}.user-button:hover{background:#fff}.user-button>span:first-child{display:grid;place-items:center;width:29px;height:29px;border-radius:50%;background:var(--ink);color:#fff;font-size:12px}.user-button b{font-size:12px}.popover{position:absolute;right:0;top:42px;width:145px;padding:6px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);border-radius:10px;z-index:80}.popover button{display:block;width:100%;padding:9px 10px;border:0;background:transparent;border-radius:6px;text-align:left;font-size:12px}.popover button:hover{background:var(--paper)}.content{padding:26px 34px 54px;max-width:1640px;margin:auto}
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:18px}.page-head h2{margin:0 0 5px;font-size:19px;letter-spacing:-.025em}.page-head p{margin:0;color:var(--muted);font-size:12px}.section-title{margin:0;font-size:15px}.button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:36px;padding:0 14px;border:1px solid var(--line-dark);border-radius:8px;background:#fff;font-size:12px;font-weight:700;white-space:nowrap}.button:hover{border-color:#9FB0C0;background:#F9FBFC}.button--primary{background:var(--teal);border-color:var(--teal);color:#fff}.button--primary:hover{background:#076D78;border-color:#076D78}.button--dark{background:var(--ink);border-color:var(--ink);color:#fff}.button--danger{color:var(--danger);border-color:#E6C5C5;background:#FFF9F9}.button--ghost{background:transparent;border-color:transparent}.button--wide{width:100%;min-height:43px}.icon-button{display:inline-grid;place-items:center;width:30px;height:30px;border:0;border-radius:6px;background:transparent;color:var(--muted)}.icon-button:hover{background:var(--paper);color:var(--ink)}
.card{width:100%;min-width:0;max-width:100%;background:#fff;border:1px solid var(--line);border-radius:var(--radius)}.card-head{min-height:56px;padding:14px 18px;display:flex;align-items:center;justify-content:space-between;gap:14px;border-bottom:1px solid var(--line)}.card-head h3{margin:0;font-size:14px}.card-body{padding:18px}.toolbar{justify-content:space-between;margin-bottom:14px;align-items:flex-end;flex-wrap:wrap}.toolbar__left,.toolbar__right{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap}.search{position:relative}.search input{width:230px;padding-left:34px}.search:before{content:"⌕";position:absolute;left:12px;top:9px;color:var(--muted);font-size:17px}
.field{display:flex;flex-direction:column;gap:7px}.field>span,.field-label{font-size:11px;font-weight:700;color:#455A70}.field em{font-style:normal;color:var(--danger)}.field input,.field select,.field textarea,.search input,.compact-select{width:100%;min-height:37px;padding:8px 10px;border:1px solid var(--line-dark);border-radius:7px;background:#fff;outline:0}.field input:focus,.field select:focus,.field textarea:focus,.search input:focus,.compact-select:focus{border-color:var(--teal);box-shadow:0 0 0 3px rgba(8,127,140,.1)}.field textarea{min-height:78px;resize:vertical}.field small{color:var(--muted);font-size:10px;line-height:1.5}.field--check{flex-direction:row;align-items:center;padding-top:23px}.field--check input{width:16px;min-height:auto}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.form-grid .span-2{grid-column:span 2}.form-error{min-height:18px;color:var(--danger);font-size:12px}.form-note{padding:11px 13px;border-radius:7px;background:#F1F7F8;color:#41626A;font-size:11px;line-height:1.6}.select-label{display:flex;flex-direction:column;gap:5px;font-size:10px;font-weight:700;color:var(--muted)}.compact-select{width:auto;min-width:140px;font-size:12px}
.table-scroll{width:100%;min-width:0;max-width:100%;overflow-x:auto;overflow-y:hidden}.data-table{width:100%;border-collapse:collapse;font-size:12px}.data-table th{padding:11px 15px;background:#F8FAFC;color:#52677B;font-size:10px;letter-spacing:.05em;text-align:left;white-space:nowrap;border-bottom:1px solid var(--line)}.data-table td{padding:12px 15px;border-bottom:1px solid #E8EEF3;vertical-align:middle;white-space:nowrap}.data-table tr:last-child td{border-bottom:0}.data-table tbody tr:hover{background:#FAFCFD}.data-table .cell-note{max-width:260px;overflow:hidden;text-overflow:ellipsis;color:var(--muted)}.row-actions{display:flex;justify-content:flex-end;gap:3px}.tag{display:inline-flex;align-items:center;gap:5px;padding:4px 8px;border-radius:999px;background:#EEF3F7;color:#52677B;font-size:10px;font-weight:700}.tag:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor}.tag--on{background:#E9F6F0;color:var(--success)}.tag--off{background:#F0F2F4;color:#7B8794}.tag--warn{background:#FFF4E3;color:#9A651B}.tag--bad{background:#FBECEC;color:var(--danger)}.tag--teal{background:#E7F5F6;color:var(--teal)}
.empty{display:grid;place-items:center;text-align:center;min-height:290px;padding:44px 20px}.empty-mark{position:relative;width:72px;height:72px;margin-bottom:18px;border:1px solid var(--line-dark);border-radius:50%;background:var(--paper)}.empty-mark:before,.empty-mark:after{content:"";position:absolute;background:var(--teal);opacity:.75}.empty-mark:before{width:24px;height:2px;left:24px;top:35px}.empty-mark:after{width:2px;height:24px;left:35px;top:24px}.empty h3{margin:0 0 7px;font-size:16px}.empty p{max-width:420px;margin:0 0 18px;color:var(--muted);line-height:1.7;font-size:12px}
.formula{display:grid;grid-template-columns:minmax(130px,1fr) 38px minmax(130px,1fr) 38px minmax(130px,1fr) 38px minmax(150px,1.1fr);align-items:stretch;margin-bottom:17px;background:var(--ink);color:#fff;border-radius:14px;overflow:hidden;box-shadow:0 14px 35px rgba(21,43,69,.13)}.formula-term{padding:22px 24px;min-width:0}.formula-term span{display:block;color:rgba(255,255,255,.54);font-size:10px;letter-spacing:.1em;margin-bottom:10px}.formula-term strong{display:block;font:700 clamp(19px,2vw,29px)/1 var(--mono);letter-spacing:-.05em;overflow:hidden;text-overflow:ellipsis}.formula-term small{display:block;color:rgba(255,255,255,.4);margin-top:8px;font-size:10px}.formula-op{display:grid;place-items:center;color:#66D0D4;font:300 25px var(--mono)}.formula-result{background:var(--teal)}.formula-result span,.formula-result small{color:rgba(255,255,255,.7)}.formula.is-incomplete .formula-result{background:#4B6074}.formula.is-incomplete .formula-result strong{font-size:18px;letter-spacing:0}.profit-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.55fr);gap:16px}.profit-grid>*{min-width:0}.metric-note{display:flex;justify-content:space-between;gap:16px;padding:12px 16px;background:#FFF8EB;border:1px solid #F0D7A9;border-radius:9px;color:#795318;font-size:11px}.detail-list{display:grid;gap:8px}.detail-item{padding:12px;border:1px solid var(--line);border-radius:8px}.detail-item__top{display:flex;justify-content:space-between;margin-bottom:7px}.detail-item p{margin:0;color:var(--muted);font-size:11px}.locked-banner{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:11px 14px;margin-bottom:14px;border:1px solid #A7D0D3;background:#EBF8F8;border-radius:9px;color:#245E64;font-size:12px}
.inventory-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px}.summary-tile{padding:16px 18px}.summary-tile span{display:block;color:var(--muted);font-size:10px;margin-bottom:8px}.summary-tile strong{font:700 22px var(--mono)}.tabs{display:flex;gap:3px;border-bottom:1px solid var(--line);margin-bottom:14px}.tab{position:relative;padding:11px 16px;border:0;background:transparent;color:var(--muted);font-size:12px;font-weight:700}.tab.is-active{color:var(--teal)}.tab.is-active:after{content:"";position:absolute;left:10px;right:10px;bottom:-1px;height:2px;background:var(--teal)}
.stepper{display:grid;grid-template-columns:repeat(3,1fr);margin:0 0 20px;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff}.step{position:relative;padding:13px 16px 13px 44px;color:var(--muted);font-size:11px;border-right:1px solid var(--line)}.step:last-child{border:0}.step b{position:absolute;left:15px;top:10px;display:grid;place-items:center;width:24px;height:24px;border:1px solid var(--line-dark);border-radius:50%;font:700 10px var(--mono)}.step.is-active{background:#EEF8F8;color:var(--teal);font-weight:700}.step.is-active b,.step.is-done b{background:var(--teal);border-color:var(--teal);color:#fff}.dropzone{display:grid;place-items:center;min-height:250px;padding:35px;border:1px dashed #AEBECD;border-radius:10px;background:#FAFCFD;text-align:center}.dropzone.is-over{border-color:var(--teal);background:#F0F9F9}.dropzone input{position:absolute;width:1px;height:1px;opacity:0}.drop-icon{display:grid;place-items:center;width:52px;height:52px;margin-bottom:15px;border-radius:50%;background:var(--soft);color:var(--teal);font-size:22px}.dropzone h3{margin:0 0 7px}.dropzone p{color:var(--muted);font-size:11px;margin:0 0 15px}.mapping-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.preview-counts{display:flex;gap:7px;flex-wrap:wrap}.preview-count{padding:7px 10px;background:#F0F4F7;border-radius:6px;font:11px var(--mono)}
.modal-backdrop{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:24px;background:rgba(11,28,45,.48);backdrop-filter:blur(3px);animation:fade-in .16s ease}.modal{width:min(650px,100%);max-height:min(820px,calc(100vh - 48px));display:flex;flex-direction:column;background:#fff;border-radius:14px;box-shadow:0 30px 90px rgba(6,23,38,.3);animation:modal-in .18s ease}.modal--wide{width:min(950px,100%)}.modal__head{display:flex;align-items:center;justify-content:space-between;padding:19px 22px;border-bottom:1px solid var(--line)}.modal__head h2{margin:0;font-size:17px}.modal__body{padding:21px 22px;overflow:auto}.modal__foot{display:flex;justify-content:flex-end;gap:9px;padding:14px 22px;border-top:1px solid var(--line)}.confirm-copy{line-height:1.7;color:#455A70}.confirm-copy strong{color:var(--ink)}
.toast-region{position:fixed;right:20px;bottom:20px;z-index:150;display:grid;gap:8px}.toast{min-width:260px;max-width:420px;padding:13px 16px;border-radius:9px;background:var(--ink);color:#fff;box-shadow:var(--shadow);font-size:12px;animation:toast-in .2s ease}.toast--error{background:var(--danger)}.loading{position:fixed;z-index:200;left:50%;top:16px;transform:translateX(-50%);display:flex;align-items:center;gap:9px;padding:9px 14px;background:var(--ink);color:#fff;border-radius:999px;box-shadow:var(--shadow);font-size:11px}.loading>span:first-child{width:13px;height:13px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}@keyframes fade-in{from{opacity:0}}@keyframes modal-in{from{opacity:0;transform:translateY(9px) scale(.985)}}@keyframes toast-in{from{opacity:0;transform:translateY(8px)}}
@media(max-width:1050px){.profit-grid{grid-template-columns:1fr}.formula-term{padding:18px 16px}.formula{grid-template-columns:minmax(110px,1fr) 25px minmax(110px,1fr) 25px minmax(110px,1fr) 25px minmax(125px,1fr)}}
@media(max-width:760px){.app-shell{display:block}.sidebar{position:sticky;z-index:50;height:auto;padding:12px 14px 0}.brand{padding:0 4px 11px;grid-template-columns:14px 1fr auto}.brand small{grid-column:3;grid-row:1;margin:0}.nav{flex-direction:row;overflow-x:auto;padding-bottom:9px}.nav-button{flex:0 0 auto;width:auto;height:36px;padding:0 11px}.nav-button.is-active:before{left:10px;right:10px;top:auto;bottom:-9px;width:auto;height:2px}.nav-button svg{display:none}.sidebar-foot{display:none}.topbar{height:68px;padding:0 18px}.today-label{display:none}.topbar h1{font-size:19px}.content{padding:20px 16px 40px}.page-head{align-items:flex-start;flex-direction:column}.page-head .toolbar__right{width:100%}.formula{display:grid;grid-template-columns:1fr 30px 1fr;border-radius:11px}.formula-term{padding:15px}.formula-term strong{font-size:18px}.formula-op{font-size:19px}.formula .formula-op:nth-of-type(2){display:none}.formula .formula-term:nth-of-type(3){grid-column:1}.formula .formula-op:nth-of-type(3){grid-column:2}.formula-result{grid-column:3;grid-row:2}.inventory-summary{grid-template-columns:1fr}.form-grid,.mapping-grid{grid-template-columns:1fr}.form-grid .span-2{grid-column:auto}.login-view{grid-template-columns:1fr}.login-brand{display:none}.login-panel{padding:28px}.login-wordmark{margin-bottom:55px}.step{padding:11px;text-align:center}.step b{position:static;margin:0 auto 5px}.toolbar{align-items:stretch}.toolbar__left,.toolbar__right{width:100%}.search,.search input{width:100%}.modal-backdrop{padding:10px}.modal{max-height:calc(100vh - 20px)}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}}
