:root{--blue:#2674f0;--ink:#222;--muted:#7c8391;--line:#e4e7ec;--bg:#f0f2f5;--font:Arial,"PingFang SC","Microsoft YaHei",sans-serif}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);font:16px/1.6 var(--font);margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.6;cursor:wait}a{color:#2169d8;text-decoration:none}a:hover{text-decoration:underline}:is(button:focus-visible,a:focus-visible){outline-offset:3px;outline:3px solid #8eb9ff}.topbar{border-bottom:1px solid var(--line);background:#fff;align-items:center;gap:13px;min-height:74px;padding:18px 36px;font-size:18px;font-weight:600;display:flex}.doc-symbol{color:var(--blue);font-size:30px;line-height:1}.preview-strip{color:#41638d;background:#edf4ff;justify-content:space-between;gap:16px;padding:8px 36px;font-size:13px;display:flex}.form-shell{max-width:1040px;margin:32px auto 0;padding:0 20px}.cover{background:radial-gradient(at 28% 10%,#c2f3fd 0%,#0000 65%),linear-gradient(135deg,#9ce5f8,#d1d9fa 50%,#9bc4f7);border-radius:13px 13px 0 0;height:220px;position:relative;overflow:hidden}.cover:before{content:"";border:36px solid #fff7;border-radius:50%;width:110%;height:130px;position:absolute;top:40px;left:-15%;transform:rotate(-16deg)}.cover:after{content:"";clip-path:polygon(0 0,100% 8%,84% 100%,0 68%);background:linear-gradient(115deg,#fffb,#fafaff22);width:360px;height:240px;position:absolute;top:-40px;right:40px;transform:rotate(26deg)}.cover i{border-top:22px solid #ffffffb0;border-radius:50%;width:650px;height:180px;position:absolute;top:110px;left:180px;transform:rotate(-12deg)}.cover b{background:linear-gradient(20deg,#2e8bf5,#fff3);border-radius:50%;width:450px;height:140px;position:absolute;bottom:-20px;right:-90px;transform:rotate(-20deg)}.card{background:#fff;border:1px solid #fff;border-radius:12px;margin-bottom:12px;padding:28px 32px}.intro{margin-top:-15px;padding:30px 32px;position:relative}.intro h1{letter-spacing:-.4px;margin:0 0 12px;font-size:27px;line-height:1.4}.intro p{margin:7px 0}.subtle{color:var(--muted);font-size:13px}.required-note{color:#6e7787;border-top:1px solid #f0f1f5;margin-top:16px;padding-top:14px;font-size:13px}.required-note span,.asterisk{color:#ef5350}.form-fields{border:0;min-width:0;margin:0;padding:0}.question-label{gap:3px;margin-bottom:16px;font-size:18px;font-weight:500;line-height:1.65;display:flex}.question input:not([type=radio]):not([type=file]),select,textarea{width:100%;min-height:50px;color:var(--ink);background:#fff;border:1px solid #d6dae2;border-radius:6px;outline:none;padding:12px 15px;display:block}.question input::placeholder,textarea::placeholder{color:#a0a5ad}.question input:focus,select:focus,textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px #2674f012}select{cursor:pointer}textarea{resize:vertical;min-height:84px}.field-help{color:#9096a0;margin:-4px 0 16px;font-size:14px}.radio-options{gap:11px;display:grid}.radio-label{cursor:pointer;align-items:flex-start;gap:12px;line-height:1.65;display:flex}.radio-label input{-webkit-appearance:none;appearance:none;cursor:pointer;background:#fff;border:1.7px solid #cfd3db;border-radius:50%;flex-shrink:0;width:21px;height:21px;margin:5px 0 0}.radio-label input:checked{border:6px solid var(--blue)}.radio-label input:focus-visible{outline-offset:2px;outline:3px solid #b9d6ff}.upload-box{cursor:pointer;border:1px solid #d6dae2;border-radius:6px;flex-direction:column;justify-content:center;align-items:center;gap:7px;min-height:110px;display:flex;position:relative}.upload-box:hover{background:#f7faff;border-color:#8ab4f8}.upload-box small{color:#9197a2;font-size:13px}.upload-box input{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.upload-box:focus-within{outline:3px solid #b9d6ff}.upload-grid{grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:12px;display:grid}.upload-grid:empty{display:none}.upload-grid figure{margin:0;position:relative}.upload-grid img{object-fit:cover;border-radius:6px;width:100%;height:155px}.remove{color:#fff;background:#263344bb;border:0;border-radius:50%;width:29px;height:29px;position:absolute;top:6px;right:6px}.upload-box+.field-help{margin:12px 0 0}.invalid{border-color:#ef7272;box-shadow:0 0 0 1px #ef727233}.field-error{color:#d13e39;margin:12px 0 0;font-size:13px}.notice{color:#a5392e;background:#fff2ee;border:1px solid #ffccc2;border-radius:8px;padding:12px 16px;line-height:1.6}.submit-area{text-align:center;padding:24px 30px}.primary{background:var(--blue);color:#fff;border:0;border-radius:7px;min-height:48px;padding:12px 28px;font-weight:500;box-shadow:0 2px 4px #2674f01a}.primary:hover{background:#1c65d4}.submit{width:100%;max-width:420px}.completion{text-align:left;color:#7a8392;max-width:420px;margin:0 auto 20px;font-size:13px}.completion>div{background:#dee5ee;border-radius:4px;height:4px;margin-top:8px;overflow:hidden}.completion i{background:#71a6f6;height:100%;transition:width .2s;display:block}footer{text-align:center;color:#929aa7;padding:24px 12px 36px;font-size:12px}.success{text-align:center;margin-top:-15px;padding:55px 28px;position:relative}.success h1{font-size:25px}.success-check{color:#26a267;background:#e8f7ee;border-radius:50%;place-items:center;width:66px;height:66px;margin:auto;font-size:34px;display:grid}.success .primary{margin-top:24px}.muted{color:#9098a5;font-size:13px}.date-hint{color:#9096a0;margin-top:6px;font-size:12px;display:block}.admin-shell{max-width:1240px;margin:28px auto;padding:0 24px}.admin-header{justify-content:space-between;align-items:center;gap:18px;margin:25px 0;display:flex}.admin-header h1{margin:0;font-size:26px}.admin-header p{color:var(--muted);margin:4px 0;font-size:13px}.secondary{color:#40516a;background:#fff;border:1px solid #d9dfe8;border-radius:7px;padding:10px 17px;display:inline-block}.admin-tools{background:#fff;border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;padding:15px 18px;display:flex}.tools-left{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.admin-tools select{width:auto;max-width:100%;min-height:40px;padding:8px 10px;font-size:13px}.segmented{background:#edf0f5;border-radius:7px;gap:3px;padding:3px;display:flex}.segmented button{color:#6f7785;background:0 0;border:0;border-radius:5px;padding:8px 12px;font-size:13px}.segmented button.active{color:#2169d8;background:#fff;box-shadow:0 1px 4px #152b4a12}.admin-content{grid-template-columns:210px 1fr;align-items:start;gap:20px;display:grid}.people-tabs{border:1px solid var(--line);background:#fff;border-radius:10px;position:sticky;top:20px;overflow:hidden}.people-tabs button{text-align:left;background:#fff;border-top:0;border-bottom:1px solid #f0f2f6;border-left:3px solid #0000;border-right:0;justify-content:space-between;align-items:center;width:100%;padding:13px 17px;display:flex}.people-tabs button.active{border-left-color:var(--blue);color:#1f66cc;background:#edf5ff}.people-tabs strong{font-weight:500;display:block}.people-tabs small{color:#8a94a3;font-size:11px}.count{color:#7a8493;background:#eef1f6;border-radius:12px;padding:1px 7px;font-size:11px}.record{border:1px solid var(--line);background:#fff;border-radius:10px;margin-bottom:22px;overflow:hidden}.record-header{background:#f7faff;border-bottom:1px solid #e4ebf6;justify-content:space-between;align-items:flex-start;gap:14px;padding:22px 25px;display:flex}.record-header h2{margin:0 0 4px;font-size:20px}.record-header p{color:#7b8799;margin:0;font-size:12px}.record-number{color:#9aa9bd;font-size:12px}.record-table{border-collapse:collapse;table-layout:fixed;width:100%;font-size:14px}.record-table th{color:#647184;text-align:left;background:#fcfcfd;width:40%;font-weight:400}.record-table th,.record-table td{vertical-align:top;word-break:break-word;white-space:pre-wrap;border-bottom:1px solid #edf0f5;padding:14px 24px}.record-table tr:last-child>*{border-bottom:0}.record-table th span{color:#8994a4;font-size:12px;display:block}.not-applicable{color:#a3acb9;font-size:12px}.report-photos{flex-wrap:wrap;gap:10px;display:flex}.report-photos img{object-fit:cover;border:1px solid #e0e5ee;border-radius:5px;width:130px;height:95px}.photo-open{cursor:zoom-in;background:0 0;border:0;padding:0}.sample-tag{color:#9b7435;white-space:nowrap;background:#fff2dc;border-radius:4px;padding:3px 7px;font-size:11px}.sample-note{color:#8b703f;background:#fff9ed;border:1px solid #f0dfbd;border-radius:7px;margin-bottom:18px;padding:10px 15px;font-size:13px}.empty{border:1px solid var(--line);text-align:center;color:#8b96a7;background:#fff;border-radius:10px;padding:60px 20px}.photo-modal{color:#fff;background:#000d;border:0;border-radius:12px;max-width:95vw;max-height:95vh;padding:18px}.photo-modal::backdrop{background:#000b}.photo-modal img{object-fit:contain;max-width:85vw;max-height:78vh;display:block}.photo-modal button{background:#fff;border:0;border-radius:6px;margin:12px 0 0 auto;padding:7px 20px;display:block}.admin-status{color:#7b8799;font-size:13px}.exporting{color:#2368c6;font-size:13px}.lock-card{background:#fff;border-radius:12px;max-width:620px;margin:70px auto;padding:36px}.lock-card h1{font-size:23px}.lock-card p{color:var(--muted);font-size:14px}.admin-bottom{text-align:center;color:#919baa;margin-top:16px;font-size:12px}@media (max-width:700px){body{font-size:15px}.topbar{min-height:62px;padding:14px 17px;font-size:14px}.preview-strip{align-items:center;padding:8px 16px;font-size:11px}.form-shell{margin-top:17px;padding:0 10px}.cover{height:140px}.card{border-radius:10px;padding:22px 20px}.intro h1{font-size:22px}.question-label{font-size:16px}.upload-grid{grid-template-columns:repeat(2,1fr)}.upload-grid img{height:120px}.submit-area{padding:20px 12px}.admin-shell{margin-top:16px;padding:0 12px}.admin-header{align-items:flex-start}.admin-header h1{font-size:20px}.admin-header .secondary{padding:8px;font-size:11px}.admin-content{display:block}.people-tabs{margin-bottom:16px;display:flex;position:static;overflow-x:auto}.people-tabs button{border-bottom:3px solid #0000;border-left:0;gap:8px;min-width:120px;padding:10px 12px}.people-tabs button.active{border-bottom-color:var(--blue)}.people-tabs small{white-space:nowrap}.record-table th{width:42%}.record-table th,.record-table td{padding:12px 13px;font-size:12px}.record-table th span{font-size:11px}.record-header{padding:18px 15px}.record-header h2{font-size:17px}.admin-tools{padding:12px}.tools-left{width:100%}.admin-tools select{max-width:100%}.report-photos img{width:90px;height:80px}.segmented button{padding:7px 9px;font-size:12px}.success h1{font-size:22px}}html,body{touch-action:pan-x pan-y}button,input,select,textarea,label{touch-action:manipulation}.radio-label{-webkit-user-select:none;user-select:none;border:1px solid #0000;border-radius:8px;align-items:center;gap:14px;min-height:52px;margin:0;padding:12px 14px;position:relative}.radio-label:has(input:checked){background:#edf5ff;border-color:#c7dcff}.radio-label:hover{background:#f5f8fd}.radio-label input{-webkit-appearance:none;appearance:none;pointer-events:none;width:24px;min-width:24px;height:24px;margin:0;position:relative}.radio-label span{pointer-events:none;flex:1}.date-trigger{text-align:left;width:100%;min-height:52px;color:var(--ink);background:#fff;border:1px solid #d6dae2;border-radius:6px;justify-content:space-between;align-items:center;padding:12px 15px;display:flex}.date-dialog{width:min(560px,100vw - 28px);color:var(--ink);border:0;border-radius:12px;padding:24px}.date-dialog::backdrop{background:#172b4d66}.date-dialog h2,.monthly-progress h2{margin:0 0 16px;font-size:18px}.date-selects{grid-template-columns:1.1fr 1.4fr 1fr;gap:10px;display:grid}.date-selects label{font-size:14px}.date-selects select{margin-top:8px;padding:10px 6px;font-size:16px}.date-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:24px;display:flex}.date-actions button{min-height:48px;padding:10px 14px}.monthly-progress{text-align:left;border:1px solid #dbe8fb;margin-top:16px}.monthly-progress p{color:#758199;font-size:13px}.monthly-progress strong{color:#2265ba;font-size:16px;display:block}.monthly-progress progress{width:100%;height:12px;accent-color:var(--blue)}.calendar-navigation{justify-content:space-between;align-items:center;gap:4px;margin-bottom:16px;display:flex}.calendar-navigation strong{text-align:center;font-size:16px;line-height:1.4}.calendar-navigation small{color:#758199;font-size:12px;font-weight:400;display:block}.calendar-navigation button{color:#3461a0;background:#f6f9fe;border:1px solid #dce4ee;border-radius:6px;min-width:38px;min-height:44px;font-size:20px}.calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;display:grid}.calendar-weekday{text-align:center;color:#758199;margin-bottom:4px;font-size:11px}.calendar-grid button{color:#263753;background:#f6f8fc;border:1px solid #0000;border-radius:6px;min-height:44px;padding:8px 0}.calendar-grid button.chosen{background:var(--blue);color:#fff}.calendar-grid button:hover{border-color:var(--blue)}.date-selected{color:#758199;font-size:13px}.date-dialog{max-height:90dvh;overflow:auto}.report-period{border:1px solid var(--line);background:#fff;border-radius:10px;flex-wrap:wrap;align-items:end;gap:14px;margin-bottom:18px;padding:18px;display:flex}.report-period label{color:#647184;min-width:140px;font-size:13px}.report-period select{margin-top:6px;font-size:14px}.report-period p{color:#7b8799;margin:0 0 5px;font-size:12px}.customer-picker{border:1px solid var(--line);background:#fff;border-radius:10px;margin-bottom:14px;padding:18px}.customer-picker label{color:#40516a;margin-bottom:8px;font-size:15px;display:block}.customer-picker p{color:#7b8799;margin:8px 0 0;font-size:12px}.assessment{color:#285c9e;background:#edf5ff;border:1px solid #d1e3ff;border-radius:10px;flex-wrap:wrap;gap:6px 18px;margin-bottom:14px;padding:16px 18px;font-size:14px;display:flex}.assessment small{color:#7b8799;flex-basis:100%;font-size:12px}.year-overview{border:1px solid var(--line);background:#fff;border-radius:10px;margin-bottom:14px;padding:18px}.year-overview h2{margin:0 0 12px;font-size:17px}.year-overview>div{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.year-overview button{color:#40516a;background:#f7faff;border:1px solid #dbe5f1;border-radius:6px;min-height:64px;padding:10px}.year-overview strong{color:#2465ba;display:block}.year-overview p{color:#7b8799;margin-bottom:0;font-size:12px}.more-visits{margin:0 auto 20px;display:block}@media (max-width:700px){.report-period label{flex:1;min-width:110px}.report-period p{flex-basis:100%}.year-overview>div{grid-template-columns:repeat(3,1fr)}}.visit-metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:18px 0;display:grid}.visit-metrics>div{background:#f1f6ff;border-radius:8px;padding:14px}.visit-metrics span{color:#647184;font-size:13px}.monthly-progress .visit-metrics strong{color:#2465ba;font-size:36px;line-height:1.4}.visit-metrics small{white-space:nowrap;font-size:12px;font-weight:400}.visit-reminder{color:#285c9e;background:#e8f2ff;border:1px solid #d2e4ff;border-radius:10px;flex-wrap:wrap;align-items:center;gap:10px 20px;margin-bottom:14px;padding:14px 22px;font-size:14px;display:flex}.visit-reminder b{font-size:25px}.visit-number{font-size:28px;line-height:1.4}.remaining-count{font-weight:600}.record-header p.submitted-time{color:#536983;margin-top:7px;font-size:16px;line-height:1.6}.submitted-time time{color:#2f507a;white-space:nowrap;font-size:20px;font-weight:600}.record-header p.customer-visit-count{color:#647184;margin-top:6px;font-size:14px}.customer-visit-count b{color:#3465a0;font-size:21px}.year-overview strong{font-size:23px}.people-tabs .count{font-size:15px;font-weight:600}.admin-status{font-size:15px}@media (max-width:700px){.visit-metrics{gap:7px}.visit-metrics>div{padding:10px 8px}.visit-metrics span{font-size:11px}.monthly-progress .visit-metrics strong{font-size:30px}.visit-metrics small{font-size:11px;display:block}.submitted-time time{font-size:18px}.record-header p.submitted-time{font-size:14px}.visit-number{font-size:25px}.visit-reminder{padding:12px 18px;font-size:13px}}.auth-card{max-width:560px;margin:60px auto;padding:32px}.auth-card form,.account-settings form{gap:18px;display:grid}.auth-card label,.account-settings label{gap:8px;display:grid}.auth-card input,.account-settings input{background:#fff;border:1px solid #ccd5e1;border-radius:8px;width:100%;padding:14px;font-size:16px}.account-panel{max-width:1200px;margin:16px auto;padding:0 24px}.account-bar,.account-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.account-bar span,.account-row span{flex:1}.account-settings{background:#fff;border:1px solid #dce3eb;border-radius:14px;margin-top:16px;padding:24px}.account-row{border-bottom:1px solid #e4e8ee;padding:16px 0}.account-settings form{max-width:500px}.account-settings h2{margin-top:24px}.account-settings p{line-height:1.7}.account-settings input[readonly]{font-size:14px}.auth-card .error{overflow-wrap:anywhere}@media (max-width:600px){.auth-card{margin:24px 12px;padding:24px}.account-panel{padding:0 12px}.account-settings{padding:16px}.account-row span{flex-basis:100%}}
