:root{--primary:#17324d;--primary-2:#234b70;--accent:#b68a45;--bg:#f3f0e9;--surface:#fffdfa;--text:#25313c;--muted:#71808c;--line:#e4ddd1;--danger:#b1463f;--success:#2f7a5e;--shadow:0 18px 48px rgba(25,42,58,.09);font-family:"PingFang SC","Microsoft YaHei",system-ui,sans-serif;color:var(--text);background:var(--bg)}
*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--bg);font-size:15px;line-height:1.5}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}.hidden{display:none!important}
.login-shell{min-height:100vh;display:grid;grid-template-columns:minmax(360px,1fr) minmax(430px,560px);background:linear-gradient(130deg,#132d46 0%,#204767 58%,#efe7d7 58%)}
.login-hero{padding:72px;display:flex;flex-direction:column;justify-content:space-between;color:#fff;min-height:100vh}.brand-lockup{font-size:30px;font-weight:800;letter-spacing:2px}.brand-lockup span{color:#d5ad69}.login-copy h1{font-size:48px;line-height:1.18;margin:0 0 22px;max-width:650px}.login-copy p{font-size:17px;line-height:1.9;color:#dce7ef;max-width:620px}.login-points{display:flex;gap:14px;flex-wrap:wrap}.login-points span{padding:9px 14px;border:1px solid rgba(255,255,255,.28);border-radius:999px;background:rgba(255,255,255,.07)}
.login-panel-wrap{display:flex;align-items:center;padding:48px}.login-card{width:100%;background:rgba(255,253,250,.98);border-radius:24px;padding:36px;box-shadow:0 30px 90px rgba(15,38,57,.22)}.login-card h2{font-size:28px;margin:0 0 8px}.login-card>.sub{color:var(--muted);margin:0 0 26px}.tabs{display:flex;background:#ece8df;border-radius:12px;padding:4px;margin-bottom:22px}.tab{flex:1;border:0;background:transparent;padding:11px;border-radius:9px}.tab.active{background:white;color:var(--primary);font-weight:700;box-shadow:0 2px 10px rgba(0,0,0,.07)}
.field{display:grid;gap:7px;margin-bottom:16px}.field label{font-size:14px;color:#465866;font-weight:700}.input,.field input,.field select,.field textarea{width:100%;min-height:44px;border:2px solid #cfc6ba;background:white;border-radius:10px;padding:11px 12px;outline:none;transition:.2s}.field textarea{min-height:96px;resize:vertical}.input:focus,.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(182,138,69,.12)}
.btn{min-height:42px;border:1px solid transparent;border-radius:10px;padding:10px 15px;background:#e9edf0;color:var(--text);font-size:14px;font-weight:650;display:inline-flex;align-items:center;justify-content:center;gap:7px}.btn:hover{filter:brightness(.98)}.btn.primary{background:var(--primary);color:#fff}.btn.gold{background:var(--accent);color:#fff}.btn.outline{background:white;border-color:#cfc6ba}.btn.danger{background:#fff2f0;color:var(--danger);border-color:#efd3ce}.btn.success{background:#eaf6f0;color:var(--success);border-color:#cce8db}.btn.small{min-height:36px;padding:8px 11px;font-size:13px}.btn.full{width:100%;padding:13px}.muted{color:var(--muted)}.hint{background:#f6f3ec;border:1px solid #d8cfc1;border-radius:10px;padding:12px 14px;color:#5e5a54;line-height:1.7}.error{color:var(--danger);margin-top:10px}.qr-box{height:210px;border:1px dashed #cfc4b2;border-radius:16px;display:flex;align-items:center;justify-content:center;flex-direction:column;background:#faf7f0;margin-bottom:16px}.qr-code{font:700 16px ui-monospace,monospace;background:white;border:8px solid white;box-shadow:0 5px 20px rgba(0,0,0,.08);padding:22px;word-break:break-all;max-width:210px;text-align:center}
.btn:disabled{cursor:not-allowed;opacity:.5;filter:none}
.app-shell{display:grid;grid-template-columns:246px 1fr;min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;background:var(--primary);color:#dce7ee;padding:25px 18px;display:flex;flex-direction:column;z-index:20}.sidebar .brand{font-size:20px;font-weight:800;color:white;padding:5px 10px 24px}.sidebar .brand b{color:#d8ae68}.side-caption{font-size:12px;color:#afc0cb;padding:16px 10px 7px;text-transform:uppercase;letter-spacing:1px}.nav-item{min-height:44px;border:0;background:transparent;color:#d7e2e9;width:100%;text-align:left;padding:11px 12px;border-radius:10px;margin:2px 0;display:flex;gap:10px;align-items:center}.nav-item:hover,.nav-item.active{background:rgba(255,255,255,.1);color:#fff}.nav-item.active{box-shadow:inset 3px 0 var(--accent)}.sidebar-footer{margin-top:auto;border-top:1px solid rgba(255,255,255,.12);padding:15px 8px 0}.sidebar-footer .user{font-weight:700;color:#fff;margin-bottom:3px}.sidebar-footer .role{font-size:13px;color:#b6c6d0;margin-bottom:12px}.sidebar-footer button{min-height:36px;background:transparent;border:0;color:#dbe5eb;padding:4px 0}
.main{min-width:0}.topbar{height:70px;background:rgba(255,253,250,.92);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);padding:0 28px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:12}.topbar h1{font-size:20px;margin:0}.top-actions{display:flex;gap:9px;align-items:center}.assist-bar{background:#fff2cf;border-bottom:1px solid #e8cf8e;padding:10px 28px;display:flex;justify-content:space-between;align-items:center;color:#69511a}.content{padding:26px 28px 54px;max-width:1680px;margin:auto}.view{display:none}.view.active{display:block}.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:20px}.page-head h2{font-size:25px;margin:0 0 6px}.page-head p{margin:0;color:var(--muted);line-height:1.7}.actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}
.stats{display:grid;grid-template-columns:repeat(5,minmax(140px,1fr));gap:14px;margin-bottom:22px}.stat{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:18px;box-shadow:0 8px 24px rgba(32,48,60,.04)}.stat .label{color:var(--muted);font-size:12px}.stat strong{display:block;font-size:28px;color:var(--primary);margin-top:6px}.stat small{color:var(--muted)}
.card{background:var(--surface);border:1px solid var(--line);border-radius:15px;box-shadow:0 9px 25px rgba(35,48,60,.045);overflow:hidden}.card+.card{margin-top:16px}.card-head{padding:16px 18px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:14px}.card-head h3{margin:0;font-size:16px}.card-body{padding:18px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse;min-width:820px}.table th{position:sticky;top:0;background:#f7f4ee;color:#66727c;font-size:12px;text-align:left;padding:11px 12px;border-bottom:1px solid var(--line);white-space:nowrap}.table td{padding:11px 12px;border-bottom:1px solid #eee9e1;vertical-align:top}.table tr:hover td{background:#fffcf7}.table input,.table textarea,.table select{border:1px solid #ddd6ca;border-radius:7px;padding:7px;background:white;min-width:80px}.table textarea{min-width:220px;min-height:58px}.badge{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;font-size:11px;background:#edf1f4;color:#566773;white-space:nowrap}.badge.active,.badge.published{background:#e8f4ee;color:#267253}.badge.trial,.badge.draft{background:#fff4d9;color:#8b6416}.badge.disabled,.badge.expired{background:#f9e8e6;color:#a1413a}.badge.review{background:#e8eff9;color:#315e92}
.filters{display:flex;gap:10px;flex-wrap:wrap;padding:13px 16px;border-bottom:1px solid var(--line);background:#fbf9f4}.filters input,.filters select{min-height:42px;border:2px solid #cfc6ba;border-radius:9px;background:white;padding:9px 11px;min-width:150px}.filters .search{min-width:260px;flex:1}.count-note{font-size:13px;color:var(--muted);display:flex;align-items:center}
.modal-backdrop{position:fixed;inset:0;background:rgba(16,29,40,.52);display:flex;align-items:center;justify-content:center;padding:24px;z-index:100}.modal{width:min(760px,100%);max-height:92vh;overflow:auto;background:var(--surface);border-radius:18px;box-shadow:0 30px 100px rgba(0,0,0,.28)}.modal.wide{width:min(1150px,100%)}.modal-head{position:sticky;top:0;background:var(--surface);z-index:2;border-bottom:1px solid var(--line);padding:18px 22px;display:flex;justify-content:space-between;align-items:center}.modal-head h3{margin:0}.modal-body{padding:20px 22px}.modal-foot{position:sticky;bottom:0;background:var(--surface);border-top:1px solid var(--line);padding:14px 22px;display:flex;justify-content:flex-end;gap:9px}.icon-btn{border:1px solid #d2c9bc;background:#eeeae2;border-radius:9px;width:40px;height:40px}
.permission-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.check-row{display:flex;align-items:flex-start;gap:10px;border:1px solid var(--line);border-radius:10px;padding:11px;background:#fff}.check-row>input[type=checkbox]{width:22px!important;height:22px;min-width:22px;margin:0;accent-color:var(--success);cursor:pointer}.check-row strong{display:block;font-size:13px}.check-row small{color:var(--muted);line-height:1.5}.colors{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.color-input{border:1px solid var(--line);border-radius:10px;padding:8px;background:white}.color-input input[type=color]{width:100%;height:36px;border:0;background:transparent}.color-input label{font-size:11px;color:var(--muted)}
.doc-layout{display:grid;grid-template-columns:270px minmax(0,1fr);gap:16px}.doc-list{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:8px;height:calc(100vh - 145px);position:sticky;top:94px;overflow:auto}.doc-group{font-size:11px;color:var(--muted);padding:13px 10px 6px}.doc-item{width:100%;border:0;background:transparent;text-align:left;padding:10px;border-radius:9px;margin:2px 0}.doc-item:hover,.doc-item.active{background:#f0ece3;color:var(--primary)}.doc-item strong{display:block}.doc-item small{color:var(--muted)}.editor-shell{min-width:0}.empty{border:1px dashed #cec6b8;border-radius:14px;padding:70px 25px;text-align:center;color:var(--muted);background:rgba(255,255,255,.45)}
.breadcrumb{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.crumb{border:0;background:transparent;color:#506a7e;padding:3px}.crumb:hover{text-decoration:underline}.node-grid{display:grid;gap:10px}.node-row{border:1px solid var(--line);border-radius:11px;background:white;padding:12px;display:grid;grid-template-columns:minmax(180px,1fr) minmax(140px,2fr) auto;align-items:center;gap:12px}.node-row:hover{border-color:#cbbda7}.node-label strong{display:block;word-break:break-word}.node-label small{display:block;color:var(--muted);margin-top:3px;word-break:break-all}.node-preview{color:#64717b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.node-actions{display:flex;gap:6px}.value-editor input,.value-editor textarea,.value-editor select{width:100%;border:1px solid #d8d1c6;border-radius:8px;padding:8px;background:white}.value-editor textarea{min-height:70px;resize:vertical}.switch{position:relative;width:56px;height:32px;background:#d5dce1;border:2px solid #8796a2;border-radius:20px;display:inline-block;vertical-align:middle;box-shadow:inset 0 1px 2px rgba(20,38,53,.12);cursor:pointer}.switch input{opacity:0;width:0;height:0}.switch i{position:absolute;width:24px;height:24px;left:2px;top:2px;background:white;border-radius:50%;transition:.2s;box-shadow:0 2px 5px rgba(0,0,0,.28)}.switch:has(input:checked){background:var(--success);border-color:#246348}.switch input:focus-visible+i{outline:3px solid rgba(182,138,69,.38);outline-offset:3px}.switch input:checked+i{transform:translateX(24px)}
.formula-box{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.formula-help{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.formula-help button{border:1px solid #ddd5c8;background:#faf7f1;border-radius:7px;padding:5px 7px;font-size:11px}.formula-status{font-size:12px;margin-top:6px}.save-strip{position:sticky;bottom:14px;z-index:11;background:rgba(255,253,250,.94);backdrop-filter:blur(12px);border:1px solid var(--line);border-radius:13px;padding:11px 13px;box-shadow:var(--shadow);display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px}.save-strip .status{color:var(--muted)}
.toast-stack{position:fixed;right:22px;top:22px;z-index:200;display:grid;gap:9px}.toast{background:#19344c;color:#fff;padding:12px 15px;border-radius:10px;box-shadow:0 15px 45px rgba(0,0,0,.2);min-width:250px}.toast.error{background:#9f403b}.toast.success{background:#2e7159}
.mobile-menu{display:none}.section-note{border-left:4px solid var(--accent);background:#fff9ed;padding:12px 15px;border-radius:0 9px 9px 0;line-height:1.7}.path-pill{font:11px ui-monospace,monospace;color:#667985;background:#eef2f4;border-radius:6px;padding:3px 6px}.separator{height:1px;background:var(--line);margin:18px 0}
#quoteSettingsForm .check-row,#platformQuoteForm .check-row{align-items:center;gap:18px;min-height:86px;padding:16px 18px;border:2px solid #8998a4;border-radius:14px;background:#f9fbfc;box-shadow:0 3px 12px rgba(25,50,73,.07);cursor:pointer;transition:border-color .2s,background .2s,box-shadow .2s}
#quoteSettingsForm .check-row:hover,#platformQuoteForm .check-row:hover{border-color:var(--primary-2);box-shadow:0 5px 16px rgba(25,50,73,.12)}
#quoteSettingsForm .check-row:has(input:checked),#platformQuoteForm .check-row:has(input:checked){border-color:var(--success);background:#eef8f3;box-shadow:0 0 0 3px rgba(47,122,94,.1)}
#quoteSettingsForm .check-row>input[type=checkbox],#platformQuoteForm .check-row>input[type=checkbox]{appearance:none;-webkit-appearance:none;width:66px!important;height:36px;min-width:66px;margin:0;border:2px solid #758692;border-radius:999px;background:radial-gradient(circle at 18px 50%,#fff 0 11px,transparent 12px),#d9e0e4;box-shadow:inset 0 1px 3px rgba(25,50,73,.2);cursor:pointer;transition:border-color .2s,background .2s}
#quoteSettingsForm .check-row>input[type=checkbox]:checked,#platformQuoteForm .check-row>input[type=checkbox]:checked{border-color:#246348;background:radial-gradient(circle at 48px 50%,#fff 0 11px,transparent 12px),var(--success)}
#quoteSettingsForm .check-row>input[type=checkbox]:focus-visible,#platformQuoteForm .check-row>input[type=checkbox]:focus-visible{outline:4px solid rgba(182,138,69,.32);outline-offset:3px}
#quoteSettingsForm .check-row strong,#platformQuoteForm .check-row strong{font-size:16px;color:var(--primary)}
#quoteSettingsForm .check-row small,#platformQuoteForm .check-row small{display:block;margin-top:6px;font-size:13px;line-height:1.7;color:#596a76}
@media(max-width:1100px){.stats{grid-template-columns:repeat(3,1fr)}.doc-layout{grid-template-columns:230px 1fr}.grid-3{grid-template-columns:1fr 1fr}.colors{grid-template-columns:repeat(3,1fr)}}
@media(max-width:820px){.login-shell{display:block;background:var(--primary)}.login-hero{display:none}.login-panel-wrap{min-height:100vh;padding:20px}.app-shell{display:block}.sidebar{position:fixed;left:-260px;width:246px;transition:.25s}.sidebar.open{left:0;box-shadow:20px 0 60px rgba(0,0,0,.25)}.mobile-menu{display:inline-flex}.topbar{padding:0 15px}.content{padding:18px 14px 40px}.stats{grid-template-columns:1fr 1fr}.page-head{display:block}.page-head .actions{margin-top:12px}.grid-2,.grid-3{grid-template-columns:1fr}.doc-layout{display:block}.doc-list{position:static;height:auto;margin-bottom:12px;max-height:260px}.node-row{grid-template-columns:1fr}.permission-grid{grid-template-columns:1fr}.modal-backdrop{padding:10px}.colors{grid-template-columns:1fr 1fr}}
