:root{font-family:Inter,PingFang SC,Microsoft YaHei,Arial,sans-serif;color:#22252b;background:#f5f7f8;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0}button,input,textarea{font:inherit}button{cursor:pointer}.login-shell{min-height:100vh;display:grid;place-items:center;background:linear-gradient(145deg,#f4f0ea,#e9f2f2 52%,#f7f7f2);padding:24px}.login-panel{width:min(420px,100%);background:#fff;border:1px solid #e4e6e8;border-radius:8px;padding:32px;box-shadow:0 24px 60px #232a331f}.login-panel .primary,.login-panel .small-btn{width:100%}.brand-mark{width:52px;height:52px;display:grid;place-items:center;color:#fff;background:#2b6f6a;border-radius:8px;margin-bottom:18px}h1,h2,h3,p{margin-top:0}.login-panel p,.form-header p,.confirm-section p{color:#6b7179}label{display:grid;gap:8px;color:#4d535b;font-size:14px}input,textarea{width:100%;border:1px solid #d8dde2;border-radius:6px;padding:11px 12px;background:#fff;color:#22252b;outline:none}input:focus,textarea:focus{border-color:#2b6f6a;box-shadow:0 0 0 3px #2b6f6a1f}textarea{min-height:110px;resize:vertical}.primary,.ghost,.small-btn,.icon-btn{border:0;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;border-radius:6px;text-decoration:none}.primary{background:#2b6f6a;color:#fff;padding:0 16px}.ghost,.small-btn,.icon-btn{background:#eef2f1;color:#2b343c;padding:0 12px}.danger{background:#fff0ed;color:#bb3e2d}.alert,.success{border-radius:6px;padding:10px 12px;margin:12px 0}.alert{background:#fff0ed;color:#a33224}.success{background:#edf8f2;color:#24623e}.inline{margin-bottom:0}.screen-note{min-height:100vh;display:grid;place-items:center;color:#6b7179}.admin-shell{min-height:100vh;display:grid;grid-template-columns:280px minmax(0,1fr)}.sidebar{position:relative;overflow:hidden;background:radial-gradient(circle at 20% 0%,rgba(133,216,204,.18),transparent 34%),linear-gradient(180deg,#1d3339,#1f3037 52%,#17272d);color:#fff;padding:30px 24px;display:flex;flex-direction:column;gap:30px;box-shadow:inset -1px 0 #ffffff14}.sidebar:after{content:"";position:absolute;inset:auto 26px 86px;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.18),transparent)}.sidebar h2{margin-bottom:22px;font-size:23px;line-height:1.35;letter-spacing:0}.user-chip{display:flex;flex-wrap:wrap;gap:8px 10px;align-items:center;width:fit-content;max-width:100%;padding:12px 14px;border:1px solid rgba(145,209,200,.18);border-radius:8px;color:#effafa;background:#ffffff0f;box-shadow:inset 0 1px #ffffff14}.user-chip b{flex-basis:100%;padding-left:28px;color:#91d1c8;font-size:13px}nav{display:grid;gap:12px}nav button,.sidebar .ghost{border:0;width:100%;min-height:48px;justify-content:flex-start;gap:12px;padding:0 16px;border-radius:8px;background:#ffffff0f;color:#dce6e8;font-size:16px;font-weight:700;box-shadow:inset 0 1px #ffffff0f;transition:background .18s ease,color .18s ease,transform .18s ease,box-shadow .18s ease}nav button:hover,.sidebar .ghost:hover{transform:translateY(-1px);background:#ffffff1a;color:#fff}nav button.active{background:linear-gradient(135deg,#f5f0e7,#d4efe9);color:#19343b;box-shadow:0 14px 30px #00000029}nav button svg,.sidebar .ghost svg{width:20px;height:20px;flex:none}nav button.active svg{color:#2b6f6a}.sidebar .ghost{color:#d6e6e8;background:transparent;box-shadow:none;padding-left:10px}.sidebar .ghost:hover{background:#ffffff12;color:#fff}.sidebar .ghost{margin-top:0}.sidebar-actions{margin-top:auto;display:grid;gap:10px}.content{padding:28px;display:grid;gap:24px;align-content:start}.section-band{background:#fff;border:1px solid #e2e7ea;border-radius:8px;padding:22px}.client-form{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr)) auto;gap:12px;align-items:center}.user-form{grid-template-columns:repeat(4,minmax(120px,1fr)) auto}.client-list{display:grid;gap:14px}.client-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;padding:16px;border:1px solid #e2e7ea;border-radius:8px;background:#fbfcfc}.client-main{min-width:0;display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center}.client-main strong{width:100%;font-size:18px}.client-main span,.pill{border-radius:999px;background:#eef2f1;color:#475159;padding:4px 9px;font-size:13px}.active-pill{background:#edf8f2;color:#24623e}.expired-pill{background:#fff0ed;color:#a33224}.muted{margin-bottom:14px;color:#6b7179}code{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#2b6f6a}.link-code{max-width:100%;overflow:hidden;border:0;padding:0;background:transparent;color:#2b6f6a;text-align:left;text-overflow:ellipsis;white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px}.link-code:hover{text-decoration:underline}.client-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.pagination{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-top:18px}.pagination span{min-width:56px;color:#5f6972;text-align:center;font-weight:700}.demo-login{width:100%;margin-top:10px}.row-actions{display:flex;gap:8px;flex-wrap:wrap}.table-wrap{width:100%;overflow:auto}table{width:100%;border-collapse:collapse;min-width:760px}th,td{border-bottom:1px solid #e5e9ec;padding:12px;text-align:left;vertical-align:middle}th{color:#69727c;font-size:13px;background:#f7f9fa}tr.expired{background:#fff8f7}.form-shell{min-height:100vh;max-width:none;margin:0;padding:30px 18px 56px;background:radial-gradient(circle at top left,rgba(178,126,83,.18),transparent 34%),linear-gradient(135deg,#f8f0e7,#eef5f3 52%,#f7f4ee)}.form-export-area{width:min(1180px,100%);margin:0 auto}.form-shell.narrow{min-height:100vh;display:grid;place-items:center}.password-panel,.form-hero,.form-section{background:#fff;border:1px solid rgba(151,128,103,.18);border-radius:8px;padding:26px;margin-bottom:18px;box-shadow:0 18px 50px #342c2314}.password-panel{width:min(420px,100%)}.form-hero{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:22px;align-items:end;min-height:190px;color:#fff;background:linear-gradient(135deg,#294142eb,#2b6f6ae0),url(https://images.unsplash.com/photo-1523438885200-e635ba2c371e?auto=format&fit=crop&w=1600&q=80) center/cover}.form-hero:after{content:"";position:absolute;inset:auto 28px 24px;height:1px;background:#ffffff57}.hero-copy,.hero-meta{position:relative;z-index:1}.eyebrow{display:inline-block;margin-bottom:14px;color:#f2d6b1;font-size:12px;letter-spacing:0;text-transform:uppercase}.form-title{border:0;box-shadow:none;padding:0;margin:0;color:#fff;background:transparent;font-size:34px;font-weight:700;line-height:1.2;overflow-wrap:anywhere}.form-hero p{margin:12px 0 0;color:#ffffffd1}.hero-meta{min-width:190px;display:grid;gap:8px;justify-items:end}.hero-meta span,.hero-meta b{display:inline-flex;max-width:260px;border-radius:999px;padding:8px 12px;background:#ffffff24;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hero-meta b{font-weight:500}.form-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;width:fit-content;max-width:100%;margin:-34px auto 22px;padding:10px;border:1px solid rgba(151,128,103,.18);border-radius:8px;background:#ffffffeb;box-shadow:0 14px 38px #342c231f;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}button:disabled{cursor:wait;opacity:.65}.toast{position:fixed;right:24px;top:24px;z-index:20;min-width:160px;padding:13px 16px;border:1px solid rgba(43,111,106,.18);border-radius:8px;color:#174d45;background:#eefaf5f5;box-shadow:0 16px 42px #22333b2e;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-weight:700}.toast-error{border-color:#bb3e2d33;color:#a33224;background:#fff0edf5}.modal-backdrop{position:fixed;inset:0;z-index:30;display:grid;place-items:center;padding:20px;background:#1821256b;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.step-dialog{width:min(420px,100%);display:grid;gap:18px;padding:24px;border:1px solid rgba(151,128,103,.22);border-radius:8px;background:#fff;box-shadow:0 30px 80px #121c223d}.qr-dialog{width:min(420px,100%);display:grid;justify-items:center;gap:16px;padding:24px;border:1px solid rgba(151,128,103,.22);border-radius:8px;background:#fff;box-shadow:0 30px 80px #121c223d}.qr-dialog h3{margin:0}.qr-dialog img{width:220px;height:220px;padding:12px;border:1px solid #e4e8e6;border-radius:8px;background:#fff}.qr-link{width:100%;padding:10px 12px;border-radius:6px;background:#f3f7f6}.preview-info{width:100%;display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px 16px;padding:14px;border-radius:8px;background:#f7faf9}.preview-info span{color:#738079}.preview-info b{color:#273238}.step-dialog h3{margin:0;font-size:22px}.dialog-actions{display:flex;justify-content:flex-end;gap:10px}.field-grid,.signature-grid{display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));gap:14px}.section-title{display:flex;align-items:center;gap:12px;margin-bottom:18px}.section-title span{width:38px;height:38px;display:grid;place-items:center;flex:none;border-radius:50%;color:#fff;background:#2b6f6a;font-weight:700}.section-title h3{margin:0;font-size:22px}.form-section label{color:#6a5d4f;font-weight:600}.form-section input,.form-section textarea{border-color:#eadfd3;background:#fffdfa}.form-section input:focus,.form-section textarea:focus{border-color:#b97b49;box-shadow:0 0 0 3px #b97b4924}.steps-table{min-width:0;border-collapse:separate;border-spacing:0;table-layout:fixed}.steps-table th{color:#6d6156;background:#f6efe8}.steps-table th:first-child{border-radius:8px 0 0}.steps-table th:last-child{border-radius:0 8px 0 0}.steps-table td{border-bottom:1px solid #efe6dd;background:#fffdfa;transition:background .16s ease,opacity .16s ease}.steps-table th:nth-child(1),.steps-table td:nth-child(1){width:62px}.steps-table th:nth-child(2),.steps-table td:nth-child(2){width:220px}.steps-table th:nth-child(5),.steps-table td:nth-child(5){width:70px;text-align:center}.steps-table th:nth-child(6),.steps-table td:nth-child(6){width:62px;text-align:center}.steps-table tr:nth-child(2n) td{background:#fbf7f1}.steps-table tbody tr{cursor:grab}.steps-table tbody tr:active{cursor:grabbing}.steps-table tbody tr.dragging-row td{background:#eaf4f2;opacity:.72}.drag-handle{display:inline-flex;align-items:center;justify-content:center;width:26px;height:30px;margin-right:6px;color:#9a8d80;font-size:13px;font-weight:700;letter-spacing:-2px;vertical-align:middle;cursor:grab;-webkit-user-select:none;user-select:none}.step-number{width:30px;height:30px;display:inline-grid;place-items:center;border-radius:50%;background:#eef4f2;color:#2b6f6a;font-weight:700}.step-title{display:block;min-width:0;color:#2c3336;font-weight:700;overflow-wrap:anywhere}.steps-table td input:not([type=checkbox]){min-height:38px;border:0;border-bottom:1px solid #dfd2c5;border-radius:0;background:#ffffff94;box-shadow:none}.steps-table td input:not([type=checkbox]):focus{border-color:#b97b49;box-shadow:0 2px #b97b4929}.steps-table input[type=checkbox]{position:absolute;opacity:0;pointer-events:none}.confirm-check{width:34px;height:34px;display:inline-grid;place-items:center}.confirm-check span{width:26px;height:26px;display:block;border:1px solid #c7d7d4;border-radius:7px;background:linear-gradient(180deg,#fff,#f5faf8);box-shadow:inset 0 1px 2px #22333b0f,0 4px 12px #2b6f6a14}.confirm-check input:checked+span{border-color:#2b6f6a;background:#2b6f6a;box-shadow:0 5px 14px #2b6f6a38}.confirm-check input:checked+span:after{content:"";width:12px;height:7px;display:block;margin:7px auto 0;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg)}.confirm-check:focus-within span{box-shadow:0 0 0 3px #2b6f6a29}.steps-table .icon-btn{width:36px;min-height:36px;padding:0}.confirm-section{background:linear-gradient(180deg,#fffbf6f5,#fffffffa),repeating-linear-gradient(45deg,rgba(185,123,73,.06) 0,rgba(185,123,73,.06) 1px,transparent 1px,transparent 10px)}.confirm-section p{margin-bottom:20px;padding:16px 18px;border-left:4px solid #c69a6f;border-radius:6px;background:#fffaf4;color:#5d554e;line-height:1.8}.signature-grid{grid-template-columns:repeat(4,minmax(150px,1fr));gap:18px}.signature-field{gap:12px}.signature-field>span{color:#55473c;font-weight:700}.signature-box{min-height:72px;display:flex;align-items:flex-end;padding:0 2px 12px;border-bottom:2px solid #c9ad91;background:linear-gradient(180deg,transparent 62%,rgba(201,173,145,.08))}.signature-box input{border:0;padding:0;width:100%;text-align:left;background:transparent;font-size:20px;font-weight:700;color:#2c3336}.signature-box input:focus{box-shadow:none}.is-exporting .export-hide,.is-exporting .toast,.is-exporting .drag-handle{display:none!important}.is-exporting .form-export-area{padding:0}footer{color:#8a765f;text-align:center;padding:18px 0 40px;font-weight:700}@media print{@page{size:A4 landscape;margin:8mm}.export-hide,.toast,.drag-handle{display:none!important}html,body{width:297mm;background:#fff!important}.form-shell{padding:0;background:#fff}.form-export-area{width:100%}.form-hero,.form-section{box-shadow:none;margin-bottom:8px;padding:12px;break-inside:avoid}.form-hero{min-height:92px;grid-template-columns:1fr auto;color-adjust:exact;-webkit-print-color-adjust:exact;print-color-adjust:exact}.form-title{font-size:22px}.section-title{margin-bottom:8px}.section-title span{width:28px;height:28px;font-size:12px}.section-title h3{font-size:16px}.field-grid{grid-template-columns:repeat(5,1fr);gap:8px}.table-wrap{overflow:visible}.steps-table{width:100%;min-width:0;table-layout:fixed;font-size:10px}.steps-table th,.steps-table td{padding:4px 5px}.steps-table th:nth-child(1),.steps-table td:nth-child(1){width:32px}.steps-table th:nth-child(2),.steps-table td:nth-child(2){width:130px}.steps-table th:nth-child(5),.steps-table td:nth-child(5){width:42px;text-align:center}.step-number{width:22px;height:22px}.step-title{min-width:0}.steps-table input{min-height:26px;padding:4px;font-size:10px}.confirm-check,.confirm-check span{width:20px;height:20px}.confirm-check input:checked+span:after{width:9px;height:5px;margin-top:5px}.confirm-section p{padding:8px 10px;margin-bottom:8px;line-height:1.5}.signature-grid{grid-template-columns:repeat(4,1fr);gap:12px}.signature-box{min-height:42px;padding-bottom:6px}footer{padding:8px 0 0}}@media(max-width:900px){.admin-shell{grid-template-columns:1fr}.sidebar{position:static}.client-form,.user-form,.client-card{grid-template-columns:1fr}.client-actions{justify-content:flex-start}}@media(max-width:640px){.content,.form-shell{padding:12px}.field-grid,.signature-grid{grid-template-columns:1fr}.form-title{font-size:22px}.form-hero{grid-template-columns:1fr;min-height:240px}.hero-meta{justify-items:start}.form-actions{width:100%;margin:0 0 16px}.form-section{padding:18px}.section-title{align-items:flex-start}.section-title h3{font-size:20px;line-height:1.35}.table-wrap{overflow:visible}.steps-table{min-width:0;display:block}.steps-table thead{display:none}.steps-table tbody{display:grid;gap:14px}.steps-table tr,.steps-table tr:nth-child(2n){display:grid;gap:10px;padding:14px;border:1px solid #eee2d7;border-radius:8px;background:#fffdfa;box-shadow:0 10px 24px #342c230f}.steps-table tr.dragging-row{opacity:.72;background:#eaf4f2}.steps-table td,.steps-table tr:nth-child(2n) td{width:auto!important;display:grid;gap:6px;padding:0;border:0;background:transparent;text-align:left}.steps-table td:before{content:attr(data-label);color:#8b7968;font-size:12px;font-weight:700}.steps-table td:first-child{display:flex;align-items:center;gap:8px}.steps-table td:first-child:before,.steps-table td:nth-child(2):before{display:none}.steps-table td:nth-child(2){padding-bottom:4px;border-bottom:1px solid #efe6dd}.drag-handle{width:30px;height:30px;margin-right:0;border-radius:8px;background:#f3eee8}.step-number{width:34px;height:34px}.step-title{font-size:18px;line-height:1.4}.steps-table td input:not([type=checkbox]){min-height:44px;width:100%;padding:8px 0;font-size:15px}.steps-table td[data-label=确认]{display:flex;align-items:center;justify-content:space-between}.steps-table td[data-label=确认]:before{font-size:14px}.steps-table td[data-label=删除]{justify-items:stretch}.steps-table .icon-btn{width:100%;min-height:40px}.confirm-check{width:42px;height:42px}.confirm-check span{width:30px;height:30px}.confirm-check input:checked+span:after{margin-top:8px}}
