:root{
  --bg:#f3f6fa;--surface:#fff;--surface-2:#f8fafc;--text:#172033;--muted:#667085;
  --border:#dce3ec;--primary:#d92b2b;--primary-dark:#b91f1f;--primary-soft:#fff1f1;
  --blue:#2459a9;--blue-soft:#edf4ff;--success:#18794e;--success-soft:#eaf8f0;
  --warning:#9a5a00;--warning-soft:#fff7e4;--danger:#b42318;--danger-soft:#fff5f4;
  --shadow:0 14px 38px rgba(17,31,55,.09);--radius:17px;
}
*{box-sizing:border-box}
html{color-scheme:light}
body{margin:0;background:radial-gradient(circle at top left,#fff 0,#f3f6fa 34%,#eef2f7 100%);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;line-height:1.5;min-height:100vh}
button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:var(--blue)}
.shell{max-width:1380px;margin:0 auto;padding:24px 18px 56px}
.hero{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:16px}
.brand{display:flex;align-items:center;gap:14px}.brand-mark{width:54px;height:54px;border-radius:18px;background:linear-gradient(145deg,#ff5a5a,#c91d1d);display:grid;place-items:center;color:#fff;font-size:22px;font-weight:900;box-shadow:0 10px 25px rgba(217,43,43,.24)}
h1{font-size:clamp(23px,3vw,32px);line-height:1.15;margin:0 0 4px;letter-spacing:-.025em}.subtitle{color:var(--muted);font-size:14px}
.hero-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.status-chip{display:inline-flex;align-items:center;gap:7px;padding:7px 11px;border-radius:999px;background:var(--surface);border:1px solid var(--border);font-size:12px;font-weight:800;color:var(--muted);white-space:nowrap}.status-chip::before{content:"";width:8px;height:8px;border-radius:50%;background:#8a94a6}.status-chip.ok::before{background:var(--success)}.status-chip.warn::before{background:#d68b17}.status-chip.pending::before{background:var(--blue)}
.notice{display:flex;gap:12px;align-items:flex-start;background:#fff;border:1px solid #f0d6a8;border-left:5px solid #d68b17;border-radius:14px;padding:14px 16px;margin:0 0 16px;box-shadow:0 5px 18px rgba(91,65,15,.05)}.notice b{color:#7a4700}.notice p{margin:2px 0 0;color:#6c5840;font-size:13px}
.tabs{display:flex;gap:8px;padding:5px;background:#e8edf4;border-radius:14px;width:max-content;max-width:100%;overflow:auto;margin-bottom:17px}.tab{border:0;background:transparent;color:var(--muted);font-weight:800;padding:10px 16px;border-radius:10px;white-space:nowrap}.tab.active{background:#fff;color:var(--text);box-shadow:0 3px 11px rgba(20,35,60,.09)}
.panel{display:none}.panel.active{display:block}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}
.card-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px 20px;border-bottom:1px solid var(--border)}.card-head h2{font-size:18px;margin:0}.card-head p{font-size:13px;color:var(--muted);margin:3px 0 0}.card-body{padding:20px}
.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.field{display:flex;flex-direction:column;gap:7px;min-width:0}.field.full{grid-column:1/-1}.field.span-2{grid-column:span 2}.field label,.label{font-size:13px;font-weight:750;color:#344054}.required::after{content:" *";color:var(--primary)}
input,select,textarea{width:100%;border:1px solid #cfd7e3;background:#fff;border-radius:11px;padding:11px 12px;color:var(--text);outline:none;transition:.18s border,.18s box-shadow}input:focus,select:focus,textarea:focus{border-color:#6d93d3;box-shadow:0 0 0 3px rgba(36,89,169,.12)}textarea{min-height:86px;resize:vertical}.hint{font-size:12px;color:var(--muted);margin:0}
.checkline{display:flex;align-items:flex-start;gap:10px;padding:13px 14px;border:1px solid var(--border);background:var(--surface-2);border-radius:12px;font-size:13px}.checkline input{width:18px;height:18px;margin-top:2px;accent-color:var(--primary);flex:0 0 auto}
.signature-wrap{grid-column:1/-1;border:1px solid var(--border);border-radius:14px;overflow:hidden;background:#fff}.signature-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;background:var(--surface-2);border-bottom:1px solid var(--border)}.signature-head strong{font-size:14px}.signature-head span{font-size:12px;color:var(--muted)}canvas{display:block;width:100%;height:clamp(180px,25vw,250px);background:linear-gradient(to bottom,rgba(0,0,0,0) 68%,rgba(36,89,169,.08) 69%,rgba(0,0,0,0) 70%),repeating-linear-gradient(0deg,#fff,#fff 31px,#f2f5f9 32px);touch-action:none;cursor:crosshair}.signature-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;color:var(--muted);font-size:12px}
.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px;flex-wrap:wrap}.btn{border:1px solid var(--border);background:#fff;color:var(--text);border-radius:11px;padding:10px 15px;font-weight:750;display:inline-flex;align-items:center;justify-content:center;gap:7px;transition:.18s}.btn:hover{background:#f8fafc;border-color:#c2cbd9}.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:0 7px 18px rgba(217,43,43,.18)}.btn.primary:hover{background:var(--primary-dark);border-color:var(--primary-dark)}.btn.blue{background:var(--blue);border-color:var(--blue);color:#fff}.btn.danger{color:var(--danger);border-color:#efc6c2;background:#fff7f6}.btn.small{padding:7px 10px;font-size:12px;border-radius:9px}.btn:disabled{opacity:.55;cursor:not-allowed}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:0 20px 18px}.stat{padding:14px;border:1px solid var(--border);border-radius:13px;background:linear-gradient(180deg,#fff,#fbfcfe)}.stat strong{display:block;font-size:23px;line-height:1.2}.stat span{font-size:12px;color:var(--muted)}
.toolbar{display:grid;grid-template-columns:1.6fr repeat(3,minmax(130px,.55fr));gap:10px;padding:18px 20px;border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:#fbfcfe}.toolbar input,.toolbar select{padding:10px 11px}.records-scroll{overflow:auto;max-height:67vh}table{width:100%;border-collapse:separate;border-spacing:0;min-width:1020px}th,td{padding:12px;border-bottom:1px solid #e8edf3;text-align:left;vertical-align:middle;font-size:13px}th{position:sticky;top:0;z-index:2;background:#f7f9fc;color:#475467;font-size:12px;letter-spacing:.02em}tbody tr:hover{background:#fbfdff}.person strong{display:block}.person span{color:var(--muted);font-size:12px}.amount{font-variant-numeric:tabular-nums;font-weight:750}.badge{display:inline-flex;align-items:center;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:800;white-space:nowrap}.badge.ok{color:var(--success);background:var(--success-soft)}.badge.warn{color:var(--warning);background:var(--warning-soft)}.badge.pending{color:var(--blue);background:var(--blue-soft)}.badge.error{color:var(--danger);background:var(--danger-soft)}.empty{padding:44px 20px;text-align:center;color:var(--muted)}.empty strong{display:block;color:var(--text);font-size:16px;margin-bottom:5px}.table-actions{white-space:nowrap}
.modal{width:min(780px,calc(100vw - 30px));border:0;border-radius:18px;padding:0;box-shadow:0 24px 80px rgba(12,22,42,.28)}.modal::backdrop{background:rgba(15,23,42,.45);backdrop-filter:blur(2px)}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:17px 20px;border-bottom:1px solid var(--border)}.modal-head h3{margin:0;font-size:18px}.modal-body{padding:20px}.modal-foot{display:flex;justify-content:flex-end;gap:10px;padding:14px 20px;border-top:1px solid var(--border);background:#fbfcfe}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.detail-item{padding:11px 12px;border:1px solid var(--border);border-radius:11px;background:#fbfcfe}.detail-item.wide{grid-column:1/-1}.detail-item small{display:block;color:var(--muted);font-size:11px;margin-bottom:3px}.detail-item b{font-size:14px;word-break:break-all}.signature-image{width:100%;max-height:240px;object-fit:contain;background:#fff;border:1px dashed #b9c5d6;border-radius:12px;margin-top:8px}
.toast{position:fixed;right:20px;bottom:20px;z-index:99;background:#111827;color:#fff;padding:12px 15px;border-radius:11px;box-shadow:0 12px 35px rgba(0,0,0,.22);opacity:0;transform:translateY(10px);pointer-events:none;transition:.2s;max-width:min(430px,calc(100vw - 40px));font-size:13px}.toast.show{opacity:1;transform:translateY(0)}.footer-note{padding:13px 20px;color:var(--muted);font-size:12px;border-top:1px solid var(--border);background:#fbfcfe}
.cloud-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:18px}.cloud-box{border:1px solid var(--border);border-radius:14px;background:#fbfcfe;padding:16px}.cloud-box h3{margin:0 0 5px;font-size:16px}.cloud-box p{margin:0 0 12px;color:var(--muted);font-size:13px}.cloud-box+.cloud-box{margin-top:13px}.cloud-status-list{display:grid;gap:9px;margin-top:12px}.cloud-status-row{display:flex;justify-content:space-between;gap:12px;padding:10px 11px;border:1px solid var(--border);border-radius:10px;background:#fff;font-size:13px}.cloud-status-row span{color:var(--muted)}.cloud-status-row b{text-align:right;word-break:break-all}.steps{counter-reset:step;display:grid;gap:10px}.step{position:relative;padding-left:38px;font-size:13px;color:#475467}.step::before{counter-increment:step;content:counter(step);position:absolute;left:0;top:0;width:26px;height:26px;border-radius:9px;background:var(--blue-soft);color:var(--blue);display:grid;place-items:center;font-weight:900}.step b{color:var(--text)}.config-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.security-note{padding:12px 13px;border-radius:11px;background:var(--warning-soft);color:#7a4700;font-size:12px}.sync-progress{height:7px;background:#e6ebf2;border-radius:99px;overflow:hidden;margin-top:10px}.sync-progress>i{display:block;height:100%;width:0;background:linear-gradient(90deg,#2459a9,#50a2ff);transition:width .2s}
.install-note{display:none;background:var(--blue-soft);border:1px solid #c9dcff;color:#204d8c;border-radius:12px;padding:11px 13px;margin-bottom:15px;font-size:13px}.install-note.show{display:block}
@media(max-width:960px){.hero{flex-direction:column}.hero-actions{justify-content:flex-start}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.field.span-2{grid-column:span 2}.stats{grid-template-columns:repeat(2,1fr)}.toolbar{grid-template-columns:1fr 1fr}.toolbar input:first-child{grid-column:1/-1}.cloud-grid{grid-template-columns:1fr}}
@media(max-width:640px){.shell{padding:16px 10px 42px}.brand-mark{width:46px;height:46px}.card-body{padding:15px}.form-grid{grid-template-columns:1fr;gap:13px}.field.span-2{grid-column:auto}.card-head{padding:15px}.card-head p{display:none}.stats{padding:0 15px 15px}.toolbar{padding:14px;grid-template-columns:1fr}.toolbar input:first-child{grid-column:auto}.form-actions{display:grid;grid-template-columns:1fr}.form-actions .btn{width:100%}.detail-grid{grid-template-columns:1fr}.detail-item.wide{grid-column:auto}.modal-foot{display:grid;grid-template-columns:1fr}.modal-foot .btn{width:100%}.tabs{width:100%}.tab{flex:1}.config-grid{grid-template-columns:1fr}.card-head .inline{width:100%;display:grid;grid-template-columns:1fr 1fr}.card-head .inline .btn{width:100%}}
