*{box-sizing:border-box}body{margin:0;background:var(--ui-bg);color:#253542;font-family:Inter,"Microsoft YaHei","PingFang SC",sans-serif;font-size:14px}button,input,select,textarea{font:inherit}button{cursor:pointer;border:1px solid var(--ui-line);background:white;color:var(--ui-primary);padding:8px 15px;border-radius:3px;white-space:nowrap}button:hover{background:var(--ui-soft)}button:disabled{opacity:.45;cursor:wait}.primary{background:var(--ui-primary);color:white;border-color:var(--ui-primary)}.primary:hover{background:var(--ui-hover)}.danger{color:#be4949;border-color:#e8bdbd}.quiet{border:0;background:none;color:#6e7d87}input,select,textarea{border:1px solid #dce3e6;padding:9px 11px;border-radius:3px;background:white;color:#283c45;min-width:0}input:focus,select:focus,textarea:focus{outline:2px solid var(--ui-line);outline-offset:0}textarea{min-height:80px;resize:vertical}a{color:var(--ui-primary);text-decoration:none}h1,h2,h3,p{margin-top:0}h1{font-size:24px;font-weight:600;letter-spacing:-.5px}h2{font-size:18px}h3{font-size:15px}.muted{color:#85929a}.small{font-size:12px}.negative{color:#c44d54}.positive{color:var(--ui-primary)}.top{height:64px;background:white;border-bottom:1px solid #e5eaed;display:flex;align-items:center;justify-content:space-between;padding:0 30px;gap:12px}.brand{display:flex;align-items:center;gap:10px;font-weight:700;letter-spacing:.7px}.brand b{display:grid;place-items:center;background:var(--ui-primary);color:white;width:34px;height:34px;border-radius:8px;font-size:22px}.brand small{font-size:11px;font-weight:400;color:#8d9a9f;display:block;letter-spacing:1.7px}.top-right{display:flex;align-items:center;gap:12px}.workspace{margin:24px 30px 90px;min-height:calc(100vh - 180px)}.titlebar{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:20px}.titlebar h1{margin-bottom:7px}.actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.panel{background:white;border:1px solid #e2e9e7;border-radius:4px;margin-bottom:18px}.panel-head{padding:17px 20px;border-bottom:1px solid #ecf0ef;display:flex;justify-content:space-between;align-items:center;gap:12px}.panel-body{padding:20px}.filters{padding:16px 18px;background:#fcfdfd;display:flex;gap:10px;align-items:end;flex-wrap:wrap;border-bottom:1px solid #e7ecea}.filters label{flex:1;min-width:130px;max-width:280px}.filters input,.filters select{width:100%;margin-top:5px}.filters .label{font-size:11px;color:#84938d}.tabs{display:flex;gap:22px;border-bottom:1px solid #dce6e1;padding:0 20px;overflow:auto}.tabs button{padding:15px 0;border:0;border-bottom:2px solid transparent;border-radius:0;color:#7b8b85;background:none}.tabs button.active{color:var(--ui-primary);border-color:var(--ui-primary)}.table-wrap{overflow:auto;max-width:100%}table{border-collapse:collapse;width:100%;font-size:13px;text-align:left}th{font-weight:500;color:#6c7d77;background:#f2f5f4;padding:12px 14px;white-space:nowrap}td{padding:13px 14px;border-bottom:1px solid #edf1ef;max-width:320px;word-break:break-word}tbody tr:hover{background:#f8fcfa}td button{font-size:12px;padding:5px 9px;margin:2px}td small{display:block;color:#92a098;font-size:11px;margin-top:5px}.table-footer{display:flex;justify-content:space-between;padding:13px 18px;font-size:12px;color:#8a9790}.empty{padding:60px 20px;text-align:center;color:#8f9c96}.empty b{display:block;font-size:28px;color:#b8cdc3;margin-bottom:12px}.badge{display:inline-block;padding:4px 8px;font-size:11px;border-radius:3px;background:#eaf5f0;color:var(--ui-primary);white-space:nowrap}.badge.red{background:#fcecef;color:#bb4d60}.badge.grey{background:#edf0f2;color:#7d8992}.bottom{position:fixed;bottom:0;left:0;right:0;height:50px;background:#424b5f;display:flex;align-items:stretch;z-index:20;color:#b8ccc8;box-shadow:0 -1px 6px #22332815}.bottom button{border:0;background:none;color:#bed5cd;border-right:1px solid #586074;border-radius:0}.bottom button:first-child{background:var(--ui-primary);color:white;min-width:90px}.bottom .center{display:flex;margin:auto}.bottom .mine{margin-left:auto}.menu{position:fixed;left:12px;bottom:60px;background:white;width:260px;max-height:80vh;overflow:auto;border:1px solid #e0e7e4;box-shadow:0 12px 50px #182f3926;border-radius:7px;padding:8px;z-index:50}.menu button{display:flex;align-items:center;gap:16px;width:100%;text-align:left;border:0;padding:13px;color:#455d53}.menu button.active{background:#e7f5ed;color:var(--ui-primary)}.menu .icon{width:23px;color:var(--ui-primary);font-size:20px}.version{position:fixed;bottom:52px;right:12px;background:#465563;color:#fff;font-size:10px;padding:3px 7px;border-radius:3px;z-index:10}.modal-back{position:fixed;inset:0;background:#1b2c3c66;z-index:100;display:flex;align-items:center;justify-content:center;padding:22px}.modal{width:min(900px,96vw);max-height:92vh;overflow:auto;background:white;border-radius:9px;box-shadow:0 20px 90px #11253540}.modal.narrow{width:510px}.modal header{position:sticky;top:0;padding:18px 24px;background:#fff;display:flex;justify-content:space-between;align-items:center;z-index:2;border-bottom:1px solid #e6eeea}.modal header h2{margin:0}.modal .content{padding:24px}.modal footer{padding:16px 24px;display:flex;gap:10px;justify-content:end;border-top:1px solid #e5ece8;position:sticky;bottom:0;background:white;z-index:2}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}.field{display:flex;flex-direction:column;gap:7px;font-size:12px;color:#61756b}.field input,.field textarea,.field select{width:100%;font-size:14px}.field.full{grid-column:1/-1}.field small{color:#8b9c92}.field input[type=checkbox]{width:auto;align-self:start}.error{padding:12px;background:#fff0f1;color:#b23e4e;border-radius:4px;margin:12px 0}.notice{padding:12px 16px;border:1px solid #cbe4dc;background:#f0f9f5;color:#447962;font-size:13px;margin:12px 0;line-height:1.7}.notice.warn{border-color:#efd7c0;background:#fff7f0;color:#a06b35}#toast{position:fixed;top:78px;left:50%;transform:translateX(-50%);background:var(--ui-deep);color:white;z-index:300;padding:12px 22px;border-radius:5px;display:none;max-width:90vw;box-shadow:0 8px 30px #0002}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:22px}.kpi{padding:24px;background:white;border:1px solid #e1e9e5;border-radius:6px}.kpi .num{font-size:30px;margin:12px 0;color:var(--ui-deep);font-weight:600;letter-spacing:-1px}.kpi .caption{font-size:12px;color:#92a098}.kpi .label{color:#6c8376;font-size:12px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:20px}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.card{padding:24px;background:white;border:1px solid #dfebe5;border-radius:6px}.card .symbol{width:42px;height:42px;display:grid;place-items:center;background:#e8f4ee;color:var(--ui-primary);border-radius:10px;font-size:23px;margin-bottom:20px}.card p{color:#8b9891;font-size:13px;line-height:1.8}.auth{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;background:#fff}.auth-intro{background:var(--ui-deep);padding:10vh 12%;color:white;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.auth-intro:after{content:'';position:absolute;width:470px;height:470px;border:1px solid #ffffff20;border-radius:50%;bottom:-180px;right:-200px;box-shadow:0 0 0 70px #ffffff04,0 0 0 140px #ffffff04}.auth-intro h1{font-size:46px;line-height:1.5;letter-spacing:1px}.auth-intro p{color:#add0bd;line-height:2}.auth-box{align-self:center;justify-self:center;width:min(410px,86%);padding:40px 0}.auth-box .field{margin:17px 0}.auth-box button.primary{width:100%;padding:13px}.auth-box .switch{display:flex;gap:15px;margin-top:20px}.auth-intro .brand{font-size:19px}.auth .caption{font-size:12px;color:#93b9a4}.pos{display:grid;grid-template-columns:280px 1fr 280px;gap:16px}.pos .panel{min-width:0}.pos .catalog{max-height:60vh;overflow:auto}.product-tile{width:100%;text-align:left;display:flex;justify-content:space-between;border:0;border-bottom:1px solid #e5eee7;padding:15px;border-radius:0;color:#3f5e4d}.product-tile small{display:block;color:#91a295;margin-top:6px}.matrix input{width:70px;padding:7px}.matrix td{padding:8px}.cart input{width:85px;padding:7px}.cart .remark{width:100px}.cart .remove{color:#c37777;border:0}.total{font-size:32px;color:var(--ui-primary);font-weight:600;margin:25px 0}.steps{display:flex;gap:4px;margin:16px 0}.step{flex:1;padding:12px 5px;text-align:center;font-size:12px;background:#f0f3f1;color:#92a196}.step.done{background:#daf0e5;color:#24815b}.bar{height:8px;background:#edf1ee;overflow:hidden;border-radius:10px;margin:10px 0}.bar>i{display:block;height:100%;background:var(--ui-primary)}.chart{height:200px;display:flex;align-items:end;gap:12px;padding:20px 10px 30px;border-bottom:1px solid #edf1ee}.chart>div{flex:1;position:relative;min-width:20px;background:#5bb697;border-radius:3px 3px 0 0;min-height:2px}.chart small{position:absolute;bottom:-25px;white-space:nowrap;font-size:10px;color:#83968b;left:0}.chart span{position:absolute;top:-20px;left:0;font-size:10px;color:#3c7b5f}.side{display:none}.modern{background:#f2f5f8}.modern .top{margin-left:224px;height:72px}.modern .side{display:flex;flex-direction:column;position:fixed;top:0;bottom:0;left:0;width:224px;background:var(--ui-deep);padding:28px 18px;z-index:25;color:white;overflow:auto}.side .brand{margin:0 8px 28px;font-size:16px}.side button{border:0;background:none;color:#a6c1b5;text-align:left;padding:12px 14px;border-radius:7px;margin:2px 0;display:flex;gap:13px}.side button.active{background:var(--ui-deep);color:#fff}.side .foot{margin-top:auto;padding:20px 12px;font-size:11px;line-height:1.9;color:#85a997}.modern .workspace{margin-left:254px}.modern .bottom{display:none}.modern .version{bottom:12px}.modern .panel,.modern .kpi,.modern .card{border-radius:10px;box-shadow:0 3px 12px #12302003}.modern button{border-radius:6px}.modern h1{font-size:28px}.hero{background:linear-gradient(110deg,var(--ui-deep),#427b60);color:white;padding:28px 30px;border-radius:10px;margin-bottom:24px;display:flex;justify-content:space-between;gap:25px}.hero p{color:#bad9ca;font-size:13px;margin-bottom:0;line-height:1.9}.hero .eyebrow{font-size:11px;color:#9dceb4;letter-spacing:2px;margin-bottom:13px}.hero .hero-shape{font-size:72px;font-weight:200;color:#83bca2}.checkbox-list{display:flex;flex-wrap:wrap;gap:10px}.checkbox-list label{padding:8px;border:1px solid #e0e9e3;display:flex;gap:8px;align-items:center}.checkbox-list input{width:auto}.thumb{width:38px;height:42px;object-fit:cover;border-radius:4px;background:#eef2ef;display:grid;place-items:center;color:#9db2a6}.split-info{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;background:#f6f9f7;padding:18px;margin-bottom:20px}.split-info span{font-size:12px;color:#83958b;display:block;margin-bottom:8px}.mobile-only{display:none}.form-section{grid-column:1/-1;font-size:13px;padding:10px 0;border-bottom:1px solid #e5eee7;color:var(--ui-primary);margin-top:10px}.print-page{padding:30px;background:white;color:black}.print-page h1{text-align:center}.print-page table th,.print-page table td{border:1px solid #bbb}.print-page .meta{display:flex;gap:25px;justify-content:space-between;margin:20px 0}.print-page .signature{margin-top:40px;display:flex;justify-content:space-between}.marketing-results{white-space:pre-wrap;line-height:1.8;padding:20px;background:#f8fbf9;border:1px solid #e4eee7}.offline-dot{color:#d59474}.highlight{background:#e5f5b9}.links{display:flex;gap:12px;flex-wrap:wrap;margin:15px 0}.links button{font-size:12px}.table-wrap input[type=checkbox]{accent-color:var(--ui-primary)}.dashboard-note{padding:18px 0;display:flex;justify-content:space-between;color:#93a198;font-size:12px}.inline-fields{display:flex;gap:10px;align-items:end}.inline-fields>*{flex:1;min-width:0}
@media(max-width:1100px){.pos{grid-template-columns:220px 1fr}.pos .checkout{grid-column:1/-1}.pos .checkout .panel-body{display:flex;gap:18px;align-items:center;flex-wrap:wrap}.pos .checkout .field{flex:1;min-width:180px}.cards{grid-template-columns:repeat(2,1fr)}.modern .workspace{margin-left:220px}.modern .side{width:195px}.modern .top{margin-left:195px}.top-right .company{display:none}}
@media(max-width:760px){.auth{grid-template-columns:1fr}.auth-intro{display:none}.auth-box{padding:40px 0}.top{height:60px;padding:0 14px}.top-right{gap:4px}.top-right button{font-size:11px;padding:7px}.top-right .user{display:none}.workspace,.modern .workspace{margin:18px 12px 90px}.modern .top{margin-left:0}.modern .side{display:none}.modern .bottom{display:flex}.modern .version{bottom:52px}.brand{font-size:12px}.brand small{font-size:8px}.titlebar{flex-direction:column;gap:12px}.titlebar h1,.modern h1{font-size:22px}.kpis{grid-template-columns:repeat(2,1fr);gap:10px}.kpi{padding:15px}.kpi .num{font-size:24px}.grid-2,.cards{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.modal-back{padding:10px}.modal .content{padding:17px}.pos{grid-template-columns:1fr}.pos .catalog{max-height:220px}.pos .checkout{grid-column:auto}.pos .checkout .panel-body{display:block}.filters{padding:12px}.filters label{min-width:120px}.bottom .center button{padding:8px 12px}.bottom button:first-child{min-width:60px}.split-info{grid-template-columns:1fr 1fr}.hero{padding:22px}.hero .hero-shape{display:none}.tabs{gap:17px;padding:0 14px}.mobile-only{display:block}.panel-head{padding:14px}.table-wrap{max-height:65vh}td,th{padding:10px}.auth-box h1{font-size:30px}}
@media print{body{background:white}.top,.side,.bottom,.version,.titlebar,.filters,.tabs,.no-print,#toast{display:none!important}.workspace,.modern .workspace{margin:0}.modal-back{position:static;display:block;padding:0;background:none}.modal{max-height:none;overflow:visible;width:100%;box-shadow:none}.modal header,.modal footer{display:none}.modal .content{padding:0}.print-page{padding:0}.print-page table{font-size:11px}#app:has(+ #overlay .print-page){display:none}.table-wrap{overflow:visible;max-height:none}}
@media(max-width:760px){.table-wrap table{min-width:720px}td{word-break:normal;min-width:85px}.bottom .center{min-width:0;overflow-x:auto;max-width:calc(100% - 60px);margin:0}.bottom .mine{display:none}.bottom .center button{font-size:11px;padding:8px 10px;flex-shrink:0}.side .brand small{white-space:nowrap}.pos .table-wrap table{min-width:650px}}
/* Additional operational workflows */
.duplicate-phone{color:#a35a0b;background:#fff2da;padding:5px;border-radius:4px}
.duplicate-phone:empty{display:none}
.fabric-group{padding:16px;border-bottom:1px solid #e3e9e6}
.fabric-group details{margin:12px 0 0 16px}
.fabric-group summary{cursor:pointer;font-weight:600}
.editable-copy{padding:12px;border:1px solid #d9e5df;border-radius:6px}
.attribute-editor{grid-column:1/-1;padding:15px;background:#f5faf7}
.grid-2>*{min-width:0}
.attribute-editor input{max-width:180px;width:100%}
.wrap-json{white-space:pre-wrap;word-break:break-word;max-width:540px}
[data-wake-text]{width:100%;min-height:100px}
/* Interaction states come after theme rules so navigation remains responsive. */
button:enabled:hover{background:#dcefe7;border-color:#78b9a3}
button.primary:enabled:hover,.bottom button:first-child:enabled:hover{background:var(--ui-primary);color:#fff}
.tabs button:enabled:hover{background:#e0f2ea;color:var(--ui-primary)}
.bottom button:enabled:hover{background:#58677d;color:#fff}
.side button:enabled:hover{background:var(--ui-deep);color:#fff}
button:enabled:active{filter:brightness(.88);box-shadow:inset 0 2px 4px #0003}
button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #e3a32e;outline-offset:2px}
.tabs button:focus-visible{outline-offset:-3px}
button:disabled{cursor:not-allowed}
button[aria-busy=true]{cursor:progress;opacity:.75}
.button-progress{display:inline-flex;align-items:center;gap:5px;margin-left:7px;font-size:11px}
.button-progress:before{content:'';width:10px;height:10px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:button-spin .8s linear infinite}
summary{cursor:pointer}
@keyframes button-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.button-progress:before{animation:none}}

[hidden]{display:none!important}

.auth-home{display:inline-flex;align-items:center;min-height:44px;padding:8px 14px;margin-bottom:16px;border:1px solid var(--ui-line,#a5dfcc);border-radius:8px;background:var(--ui-soft,#edf8f4);color:var(--ui-deep,#173b32);text-decoration:none;font-size:14px}.auth-home:hover{background:var(--ui-line,#a5dfcc)}.auth-home:focus-visible{outline:2px solid var(--ui-hover,#278e71);outline-offset:3px}
