:root{--blue:#0768d8;--deep:#064ba8;--ink:#142e4e;--muted:#718095;--line:#e6ecf3;--surface:#f4f7fb;--radius:16px}*{box-sizing:border-box}body{margin:0;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei","PingFang SC",sans-serif;font-size:14px;line-height:1.6}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.7}h1,h2,h3,p{margin:0}h1{font-weight:720;line-height:1.35}h2{font-size:18px}h3{font-size:14px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #68b3ff;outline-offset:3px}.muted{color:var(--muted)}.small{font-size:12px}.blue{color:var(--blue)}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:650}.skip{position:fixed;top:-100px;left:16px;padding:10px;background:white;z-index:100}.skip:focus{top:10px}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:43px;padding:10px 20px;border-radius:9px;font-weight:600;font-size:14px;border:1px solid transparent;transition:background .15s,transform .15s}.primary{background:var(--blue);color:white;box-shadow:0 4px 10px #0065d21a}.primary:hover{background:var(--deep)}.secondary{background:white;border-color:#dce5ef;color:#365477}.secondary:hover{background:#f1f7ff}.text-link{color:var(--blue);font-weight:550;font-size:13px}.text-button{border:0;background:none;color:var(--muted);padding:4px 10px}.icon-button{background:#f1f5fa;border:0;border-radius:50%;width:32px;height:32px;font-size:24px;line-height:1}.alert{border-radius:10px;padding:14px 18px;margin-bottom:20px;font-size:13px}.alert.error{background:#fff0ef;color:#b23931}.alert.success{background:#eaf8f0;color:#197c50}.errorlist{color:#bd3732;font-size:12px;list-style:none;margin:5px 0 0;padding:0}input:not([type=radio]):not([type=checkbox]),select,textarea{width:100%;border:1px solid #dfe6ee;border-radius:8px;padding:11px 12px;color:var(--ink);background:#fff;min-width:0;outline-offset:1px}input::placeholder,textarea::placeholder{color:#a1aab7;font-size:13px}input[aria-invalid=true],textarea[aria-invalid=true]{border-color:#d65b55}textarea{resize:vertical;min-height:86px}input[type=checkbox],input[type=radio]{accent-color:var(--blue);width:17px;height:17px;flex-shrink:0;cursor:pointer}.field{min-width:0}.field label,.field legend{display:block;margin-bottom:8px;font-size:13px;font-weight:550}.field b,fieldset b{color:#e57b76;font-weight:400}.field-hint{display:block;text-align:right;font-size:11px;color:#96a1b1;margin-top:4px}.full{grid-column:1/-1}.public-body{background:#edf3fa}.mobile-shell{max-width:520px;margin:0 auto;background:#fff;min-height:100vh;box-shadow:0 0 50px #2454830b}.public-header{height:74px;display:flex;align-items:center;justify-content:space-between;padding:0 24px}.brand{display:inline-flex;align-items:center}.brand-logo{display:block;width:218px;max-width:58vw;height:auto;object-fit:contain;object-position:left center}.brand picture{display:block}.public-header{background:#eff0f4}.header-tag{font-size:11px;color:#5e7797;letter-spacing:1px}.hero{height:286px;position:relative;overflow:hidden;background:linear-gradient(117deg,#0459c9 0%,#0874e4 55%,#42adf4 100%);color:white}.hero:before{content:"";position:absolute;width:360px;height:360px;border-radius:50%;left:-140px;top:-220px;border:50px solid #ffffff06}.hero-copy{position:relative;z-index:1;padding:29px 24px}.hero .eyebrow{font-size:10px;letter-spacing:2px;color:#d3eaff}.hero h1{font-size:35px;line-height:1.28;letter-spacing:1px;margin:11px 0 12px}.hero-dot{color:#8ee7ff}.hero-copy p{color:#d6eaff;font-size:11px;line-height:1.9}.hero-art{position:absolute;width:214px;height:238px;right:-22px;top:16px;object-fit:contain}.hero-bottom{display:flex;justify-content:space-between;position:absolute;bottom:0;left:0;right:0;background:#004cb722;padding:12px 24px;color:#cce8ff;font-size:10px;letter-spacing:.5px}.hero-bottom i{display:inline-block;width:5px;height:5px;background:#97e5ff;border-radius:50%;vertical-align:middle;margin-right:5px}.source-strip{padding:17px 24px;display:flex;align-items:center;gap:9px;border-bottom:8px solid #f5f8fc;font-size:10px;color:#718198}.source-strip strong{color:#244363;margin-left:3px;font-size:12px}.avatar{width:30px;height:30px;background:#edf5ff;color:#246ec6;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;font-weight:600;flex-shrink:0}.share-chip{border:1px solid #c6ddfa;background:#f5faff;color:var(--blue);border-radius:30px;padding:7px 12px;font-size:11px;font-weight:600;margin-left:auto;white-space:nowrap}.appointment-form{padding:0 24px}.form-section{padding-top:24px}.section-title{display:flex;align-items:center;gap:8px;margin-bottom:18px}.section-title h2{font-size:16px}.step-number{color:#0c6dde;background:#eaf4ff;font-size:10px;font-weight:750;width:25px;height:25px;display:flex;align-items:center;justify-content:center;border-radius:7px}.required-hint{font-size:10px;color:#94a0ad;margin-left:auto}.business-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.business-card{min-height:88px;border:1px solid #e0e8f2;border-radius:11px;position:relative;padding:13px 12px 12px;background:#fff;cursor:pointer;display:flex;flex-direction:column;align-items:flex-start;gap:5px;font-size:11px;font-weight:550;transition:background .15s}.business-card:has(input:checked){border-color:#167bea;background:#f1f7ff;box-shadow:inset 0 0 0 .5px #167bea}.business-card input{position:absolute;inset:0;width:100%;height:100%;opacity:0;margin:0}.business-card:has(input:focus-visible){outline:3px solid #68b3ff;outline-offset:2px}.business-icon{font-size:24px;color:#2179d8;line-height:1}.radio-mark{position:absolute;right:11px;top:14px;width:14px;height:14px;border:1px solid #d3dce8;border-radius:50%;background:white}.business-card input:checked~.radio-mark{background:#1377e8;border-color:#1377e8}.business-card input:checked~.radio-mark:after{content:'✓';display:block;color:white;font-size:10px;text-align:center;line-height:13px}.fields-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px 16px}.gender-field{border:0;padding:0;margin:0;min-width:0}.gender-options{display:flex;gap:18px;align-items:center;height:44px}.gender-options label{display:flex;align-items:center;gap:5px;margin:0;font-weight:400}.address-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:18px}.address-grid input{padding-left:9px;padding-right:9px}.note-field{margin-top:18px}.consent-panel{background:#f5f8fc;border:1px solid #ecf0f6;padding:15px;border-radius:11px;margin-top:19px}.consent-panel h3{font-size:12px;color:#536c86}.consent-panel p{font-size:11px;color:#7d8da0;line-height:1.9;margin:7px 0 12px}.consent-label{display:flex;align-items:flex-start;gap:7px;font-size:11px;cursor:pointer;color:#506783}.consent-label input{margin:2px 0 0;width:15px;height:15px}.submit-area{padding-top:21px}.submit-button{width:100%;min-height:49px;border-radius:10px;font-size:16px;letter-spacing:1px;justify-content:space-between;padding-left:26px;padding-right:26px}.submit-area p{font-size:10px;text-align:center;color:#9ba6b5;margin-top:11px}.public-footer{text-align:center;padding:29px 24px 24px;padding-bottom:max(24px,env(safe-area-inset-bottom));display:flex;flex-direction:column;align-items:center;gap:5px;color:#8c9bac;font-size:11px}.public-footer a{font-size:20px;letter-spacing:.8px;color:#2767ab;font-weight:650;display:flex;align-items:center;gap:7px}.public-footer svg{width:17px;height:17px}.public-footer small{font-size:9px;color:#a1aebe;margin-top:12px}.result-card{text-align:center;padding:50px 28px 20px;min-height:580px}.result-card h1{font-size:26px;margin:16px 0 15px}.result-card p{line-height:1.9}.success-symbol,.message-symbol{width:76px;height:76px;display:flex;align-items:center;justify-content:center;background:#e8f7f1;color:#199768;border-radius:50%;font-size:39px;margin:0 auto 24px}.message-symbol{background:#edf5ff;color:#2f7cca}.result-card .button{display:flex;margin:25px 0 17px;min-height:48px}.receipt{background:#f5f8fc;border-radius:13px;margin:28px 0 22px;padding:18px;display:grid;grid-template-columns:1fr 1fr;text-align:left;gap:16px;color:#8090a3}.receipt strong{justify-self:end;color:#334d6b}.result-card .eyebrow{display:block}.result-card .status{margin:0}dialog{border:0;border-radius:20px;padding:24px;max-width:390px;width:calc(100% - 32px);max-height:90dvh;overflow:auto;color:var(--ink);box-shadow:0 25px 100px #002c6355}dialog::backdrop{background:#0a254b80;backdrop-filter:blur(3px)}.dialog-head{display:flex;align-items:center;justify-content:space-between}.qr{display:block;max-width:100%;height:auto;object-fit:contain;margin:17px auto;image-rendering:pixelated}.save-hint{text-align:center;font-size:12px;color:#71839a;margin:0 0 17px}.link-input{font-size:12px!important;background:#f7f9fc!important;word-break:break-all}.share-actions{display:flex;flex-wrap:wrap;gap:10px;margin:17px 0}.share-actions .button{flex:1;white-space:nowrap;padding:10px}.share-actions .text-link{width:100%;text-align:center;margin:4px 0}#toast{position:fixed;bottom:35px;left:50%;transform:translateX(-50%);background:#173457;color:white;border-radius:10px;padding:12px 20px;max-width:90vw;z-index:100;display:none;font-size:13px}#toast.visible{display:block}.manager-body{background:#f5f7fb}.sidebar{position:fixed;inset:0 auto 0 0;width:230px;background:white;border-right:1px solid #e7edf5;padding:32px 18px;display:flex;flex-direction:column}.sidebar-brand{display:flex;align-items:center;gap:12px;padding:0 10px 45px;font-size:18px;font-weight:700;line-height:1.3}.sidebar-brand div span{display:block;font-size:10px;font-weight:400;color:#8493a6;margin-top:6px;letter-spacing:2px}.app-icon{display:inline-flex;align-items:center;justify-content:center;width:39px;height:39px;border-radius:11px;background:linear-gradient(140deg,#1789f5,#0350ba);color:white;font-size:38px;line-height:1;box-shadow:0 4px 10px #0567d328}.nav-label{font-size:10px;letter-spacing:2px;color:#a0aaba;margin:0 15px 13px}.sidebar nav{display:flex;flex-direction:column;gap:8px}.sidebar nav a{padding:13px 17px;border-radius:9px;color:#6c7e94;font-weight:550;display:flex;align-items:center;gap:13px;font-size:14px}.sidebar nav a span{font-size:20px;line-height:1}.sidebar nav a.active{color:#0868d7;background:#edf5ff}.sidebar-bottom{margin-top:auto;display:flex;flex-direction:column;padding:20px 15px 0;color:#98a3b3}.sidebar-bottom a{font-size:17px;font-weight:650;color:#506c8c;margin-top:4px}.version{font-size:10px;border-top:1px solid #edf0f5;margin-top:25px;padding-top:20px}.manager-content{margin-left:230px}.manager-header{height:74px;background:white;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 36px;font-size:12px;color:#728095}.slash{padding:0 12px;color:#c0cad7}.account{display:flex;gap:8px;align-items:center;color:#3d536d}.account form{margin-left:14px;padding-left:14px;border-left:1px solid #e6eaf1}.online-dot{display:inline-block;width:6px;height:6px;background:#27ac7d;border-radius:50%;vertical-align:middle}.manager-main{padding:25px 36px 36px;max-width:1700px;margin:auto;min-height:calc(100vh - 132px)}.environment-notice{background:#fff9ed;border:1px solid #f3e9cc;padding:9px 14px;border-radius:8px;font-size:11px;color:#a48a50;margin-bottom:25px}.environment-notice span{font-weight:650;margin-right:10px}.page-heading{display:flex;justify-content:space-between;align-items:center;margin:12px 0 26px;gap:20px}.page-heading h1{font-size:28px;margin-top:5px}.page-heading p{font-size:12px;color:#8b97a8;margin-top:8px}.metrics{display:grid;grid-template-columns:1.4fr 1.1fr repeat(4,1fr);gap:15px;margin-bottom:25px}.metric{padding:21px 21px 18px;border-radius:13px;background:white;border:1px solid #e9eef5;position:relative;overflow:hidden}.metric>span:first-child{color:#79899e;font-size:11px;display:flex;align-items:center;gap:6px}.metric strong{display:block;font-size:33px;font-weight:650;line-height:1.2;margin:17px 0 12px;font-variant-numeric:tabular-nums}.metric small{font-size:10px;color:#abb3bf;white-space:nowrap}.metric.featured{background:linear-gradient(125deg,#0764d3,#2888e8);color:white;border-color:transparent}.featured>span:first-child,.featured small{color:#c7e4ff}.metric-art{position:absolute;right:10px;bottom:10px;font-size:80px;font-weight:200;color:#ffffff1a;line-height:1}.status-dot{width:6px;height:6px;display:inline-block;border-radius:50%;background:#db9c38}.status-dot.following{background:#458ddd}.status-dot.completed{background:#28a787}.status-dot.invalid{background:#a9b4c1}.dashboard-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:24px;margin-bottom:25px}.panel{background:white;border:1px solid #e8edf4;border-radius:13px;overflow:hidden}.panel-heading{padding:22px 24px 18px;display:flex;justify-content:space-between;gap:10px;align-items:center}.panel-heading h2{font-size:16px}.panel-heading p{font-size:11px;color:#9aa5b5;margin-top:5px}.panel-heading .text-link{font-size:11px;white-space:nowrap}.source-chart{padding:0 24px 21px}.source-row{display:flex;align-items:center;gap:9px;margin:11px 0;font-size:12px}.source-row .avatar{width:27px;height:27px;border-radius:7px;font-size:11px}.source-name{width:56px;flex-shrink:0;overflow-wrap:anywhere}.source-name small{display:block;font-size:9px;color:#aaa}.source-row meter{flex:1;height:7px;min-width:35px;border:0;border-radius:4px;background:#f0f5fb;appearance:none}.source-row meter::-webkit-meter-bar{background:#f0f5fb;border:0;height:7px}.source-row meter::-webkit-meter-optimum-value{background:linear-gradient(90deg,#79baff,#2585ec);border-radius:4px}.source-row meter::-moz-meter-bar{background:#2585ec}.source-row strong{width:22px;text-align:right;font-size:13px;font-weight:550}.source-row>small{font-size:9px;color:#a8b3c1}.subtle-tag{background:#f5f7fb;color:#94a0b2;font-size:9px;border-radius:5px;padding:4px 8px}.business-stats{padding:0 24px 22px}.business-stats>div{display:flex;align-items:center;gap:12px;background:#f9fbfe;border:1px solid #f1f4f8;border-radius:9px;margin:10px 0;padding:11px 13px;font-size:11px}.business-stat-icon{font-size:21px;line-height:1;color:#458bdc;background:#edf4fd;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:8px}.business-stats strong{margin-left:auto;font-size:19px;font-weight:550}.business-stats strong small{font-size:9px;font-weight:400;color:#a7b0bf}.table-scroll{overflow:auto}table{border-collapse:collapse;width:100%;font-size:12px;text-align:left}th{font-weight:500;color:#91a0b4;background:#f8fafd;white-space:nowrap;padding:13px 20px;border-block:1px solid #eef2f7}td{padding:16px 20px;border-bottom:1px solid #f0f3f7;white-space:nowrap;color:#526780}td strong{font-weight:550;color:#304d6d}tr:last-child td{border-bottom:0}tbody tr:hover{background:#fafcff}.status{display:inline-flex;align-items:center;padding:3px 9px;font-size:10px;border-radius:5px;font-weight:500;white-space:nowrap}.status:before{content:"";width:4px;height:4px;background:currentColor;border-radius:50%;margin-right:5px}.status.pending{background:#fff7e7;color:#b99040}.status.following{background:#ecf4ff;color:#4a86d3}.status.completed{background:#e9f7f0;color:#3d9b79}.status.invalid{background:#f0f2f5;color:#96a0af}.empty{text-align:center;padding:50px;color:#94a3b5}.manager-footer{font-size:10px;color:#a6b0bf;display:flex;justify-content:space-between;padding:18px 36px;border-top:1px solid #e6ebf2}.filter-panel{padding:24px;margin-bottom:24px}.filter-grid{display:grid;grid-template-columns:1.3fr 1fr 1.3fr 1fr;gap:17px}.filter-grid label{font-size:11px;color:#7f8fa3}.filter-grid input,.filter-grid select{font-size:12px;padding:10px}.filter-buttons{display:flex;align-items:end;gap:10px;grid-column:span 2}.filter-buttons .button{min-height:40px;font-size:12px}.count-pill{background:#f0f5fc;color:#5f89bc;font-size:11px;padding:2px 7px;border-radius:6px;margin-left:5px}.records-table{min-width:1660px}.records-table th,.records-table td{padding:14px}.records-table .note-cell{white-space:normal;min-width:200px;max-width:300px;overflow-wrap:anywhere}.pagination{padding:17px 24px;display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#98a5b6;border-top:1px solid #f0f3f7}.pagination .button{font-size:11px;min-height:32px;padding:4px 12px}.people-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.person-card{padding:23px}.person-top{display:flex;justify-content:space-between;align-items:center}.avatar.large{width:45px;height:45px;border-radius:12px;font-size:20px}.person-card h2{margin:15px 0 7px;overflow-wrap:anywhere}.person-card p{font-size:12px}.person-card p strong{color:#315d8c;margin:0 4px}.person-card .button{margin-top:24px;font-size:12px;width:100%}.new-person{padding:25px;margin-top:25px;max-width:580px}.new-person h2{margin-bottom:15px}.new-person form p,.detail-panel form p{margin-bottom:18px}.new-person form p label,.detail-panel form p label{font-size:12px;display:inline-block;margin-bottom:6px}.new-person .small{margin-top:18px}.person-detail-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:24px;max-width:1060px}.qr-panel{text-align:center;padding:30px;display:flex;flex-direction:column;align-items:center}.qr-panel h2{margin:10px 0 0}.qr-panel>.button{margin:25px 0 15px}.qr-panel .qr{max-width:300px;width:100%}.qr-panel strong{font-size:19px;margin-bottom:4px}.detail-panel{padding:26px;margin-bottom:22px}.detail-panel h2{margin-bottom:12px}.detail-panel p.muted{font-size:12px;margin-bottom:17px}.form-actions{display:flex;gap:12px;align-items:center;margin-top:23px;flex-wrap:wrap}.person-total{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:21px;margin-top:23px;font-size:12px;color:#8191a6}.person-total strong{font-size:22px;line-height:1;color:#2a547f}.person-total small{font-size:11px;font-weight:400;color:#93a3b6}.detail-panel .small{margin:20px 0 0}.edit-panel{max-width:850px;padding:27px}.edit-panel h2{margin-bottom:25px}.edit-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.edit-grid #id_business{display:grid;grid-template-columns:1fr 1fr;gap:10px}.edit-grid #id_business label,.edit-grid #id_gender label{display:flex;align-items:center;gap:7px;font-weight:400}.edit-grid #id_gender{display:flex;gap:20px;padding-top:5px}.danger-link{color:#cc5555;font-size:12px;margin-left:auto}.danger-button{color:white;background:#c54b4b}.confirmation{padding:50px;max-width:680px;margin:60px auto;text-align:center}.confirmation h1{font-size:24px}.confirmation p{margin:20px 0 25px;color:#8b96a5;line-height:2}.confirmation .form-actions,.confirmation .consent-label{justify-content:center}.message-symbol.danger{background:#fff0ee;color:#cd645b}.login-body{background:#f3f7fc;min-height:100vh;display:flex;align-items:center;justify-content:center}.login-layout{display:grid;grid-template-columns:1fr 1fr;width:900px;max-width:calc(100% - 40px);min-height:560px;background:white;border-radius:22px;overflow:hidden;box-shadow:0 20px 70px #24537f14}.login-intro{position:relative;overflow:hidden;background:linear-gradient(135deg,#0755b8,#128df1);color:white;padding:60px 45px}.login-intro .eyebrow{font-size:9px;color:#aad8ff}.login-intro h1{font-size:38px;line-height:1.6;margin:35px 0 18px}.login-intro p{color:#c2e2ff;font-size:13px;line-height:1.9}.login-network{font-size:260px;color:#ffffff1a;position:absolute;right:-20px;bottom:-90px;line-height:1.1}.login-card{padding:58px 45px}.login-card h2{font-size:24px;margin-top:25px}.login-card>.muted{margin:6px 0 30px;font-size:12px}.login-card .field{margin-bottom:20px}.login-card .button{width:100%;margin-top:8px}.login-card>.small{margin-top:23px;text-align:center}
@media(min-width:480px){.hero-art{right:4px;width:235px}.hero h1{font-size:38px}.hero-copy{padding-left:30px}.hero{height:296px}.source-strip{font-size:12px}.source-strip strong{font-size:14px}.business-card{font-size:13px}.consent-label{font-size:12px}}
@media(max-width:1250px){.sidebar{width:200px}.manager-content{margin-left:200px}.manager-main{padding:24px}.manager-header{padding:0 24px}.metrics{grid-template-columns:repeat(3,1fr)}.metric strong{font-size:29px;margin:12px 0 7px}.dashboard-grid{gap:18px}.panel-heading{padding:20px}.business-stats,.source-chart{padding-left:20px;padding-right:20px}.source-name{width:50px}}
@media(max-width:950px){.sidebar{width:170px;padding:25px 10px}.manager-content{margin-left:170px}.sidebar-brand{padding-left:7px;font-size:15px;gap:8px}.sidebar-brand .app-icon{width:30px;height:33px}.dashboard-grid{grid-template-columns:1fr}.people-grid{grid-template-columns:repeat(2,1fr)}.filter-grid{grid-template-columns:1fr 1fr}.person-detail-grid{grid-template-columns:1fr}.manager-header>span{font-size:10px}.page-heading .button{font-size:11px;padding:10px 13px}.manager-footer span{display:none}}
@media(max-width:650px){.sidebar{position:static;width:100%;padding:13px 18px;border-right:0}.sidebar-brand{padding:0 0 15px}.nav-label,.sidebar-bottom{display:none}.sidebar nav{flex-direction:row;gap:5px}.sidebar nav a{font-size:12px;padding:9px 12px;gap:6px}.sidebar nav a span{font-size:16px}.manager-content{margin:0}.manager-header{padding:0 18px;height:52px}.manager-header>span{display:none}.account{margin-left:auto}.manager-main{padding:20px 16px}.page-heading{align-items:flex-start;gap:12px}.page-heading h1{font-size:24px}.page-heading p{font-size:11px}.page-heading .button{max-width:142px}.metrics{grid-template-columns:repeat(2,1fr);gap:10px}.metric{padding:17px}.metric strong{font-size:30px}.people-grid{gap:12px}.person-card{padding:16px}.person-card .button{padding:8px;font-size:10px}.edit-panel{padding:20px}.edit-grid{gap:16px}.edit-grid #id_business{grid-template-columns:1fr}.edit-grid #id_business label{font-size:12px}.confirmation{padding:30px 20px;margin:20px 0}.filter-panel{padding:18px}.filter-grid{gap:13px}.filter-buttons{grid-column:1/-1}.manager-footer{padding:17px}.login-layout{grid-template-columns:1fr;max-width:calc(100% - 30px);margin:20px 0}.login-intro{display:none}.login-card{padding:35px 30px}.new-person{padding:22px}.environment-notice{font-size:10px}.source-strip{padding-left:20px;padding-right:20px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
.public-body input:not([type=checkbox]):not([type=radio]),.public-body textarea{font-size:16px}.business-card{font-size:12px}

/* Customer pages only: readable type and generous touch targets. */
.public-body { font-size:18px; line-height:1.6; }
.public-body .muted { color:#5f7188; }
.public-body .public-header { padding:0 20px; gap:8px; }
.public-body .header-tag { font-size:16px; letter-spacing:0; white-space:nowrap; }
.public-body .brand { min-height:48px; flex-shrink:0; }
.public-body .hero { height:200px; }
.public-body .hero-copy { padding:24px 20px; }
.public-body .hero h1 { font-size:28px; line-height:1.3; margin:0 0 14px; }
.public-body .hero-copy p { font-size:16px; line-height:1.65; color:#e5f3ff; }
.public-body .hero-art { width:174px; height:194px; right:0; top:3px; }
.public-body .source-strip { padding:14px 20px; display:grid; grid-template-columns:36px minmax(0,1fr) auto; gap:10px; font-size:16px; color:#5f7188; }
.public-body .avatar { width:36px; height:36px; font-size:18px; }
.public-body .source-person { min-width:0; overflow-wrap:anywhere; }
.public-body .source-strip strong { display:block; margin:0; font-size:18px; }
.public-body .share-chip { font-size:20px; line-height:1.4; min-height:52px; padding:10px 14px; border-radius:12px; }
.public-body .appointment-form { padding:0 20px; }
.public-body .form-section { padding-top:24px; }
.public-body .section-title { gap:9px; margin-bottom:16px; flex-wrap:wrap; }
.public-body .section-title h2 { font-size:20px; line-height:1.4; }
.public-body .step-number { width:30px; height:30px; font-size:16px; flex-shrink:0; }
.public-body .required-hint { font-size:16px; color:#697b91; }
.public-body .business-grid { grid-template-columns:minmax(0,1fr); gap:10px; }
.public-body .business-card { min-height:60px; flex-direction:row; align-items:center; gap:12px; padding:12px 44px 12px 14px; font-size:18px; line-height:1.5; }
.public-body .business-icon { width:26px; flex-shrink:0; font-size:26px; text-align:center; }
.public-body .radio-mark { width:22px; height:22px; right:14px; top:calc(50% - 11px); }
.public-body .business-card input:checked~.radio-mark:after { font-size:16px; line-height:20px; }
.public-body .fields-grid { gap:20px 16px; }
.public-body .field label, .public-body .field legend { font-size:18px; line-height:1.5; margin-bottom:8px; }
.public-body input:not([type=radio]):not([type=checkbox]),
.public-body select, .public-body textarea { font-size:18px; line-height:1.5; min-height:52px; padding:12px 10px; }
.public-body input::placeholder, .public-body textarea::placeholder { font-size:18px; color:#6e7d90; opacity:1; }
.public-body .gender-options { gap:8px; height:auto; min-height:52px; }
.public-body .gender-options label { display:flex; justify-content:center; min-height:52px; min-width:64px; margin:0; padding:8px 4px; gap:6px; cursor:pointer; }
.public-body .gender-options input { width:22px; height:22px; margin:0; }
.public-body .address-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px 16px; margin-top:20px; }
.public-body .address-grid .field:last-child { grid-column:1/-1; }
.public-body .note-field { margin-top:20px; }
.public-body textarea { min-height:108px; }
.public-body .field-hint { font-size:16px; color:#697b91; }
.public-body .consent-panel { margin-top:20px; padding:16px; }
.public-body .consent-panel h3 { font-size:18px; line-height:1.5; color:#365270; }
.public-body .consent-panel p { font-size:16px; line-height:1.75; color:#5d7087; margin:10px 0 14px; }
.public-body .consent-label { font-size:18px; line-height:1.6; gap:10px; min-height:48px; align-items:flex-start; color:#365270; }
.public-body .consent-label input { width:22px; height:22px; margin:4px 0 0; }
.public-body .button { font-size:20px; line-height:1.4; min-height:54px; padding:12px 18px; }
.public-body .submit-button { letter-spacing:0; }
.public-body .submit-area p { font-size:16px; line-height:1.65; color:#697b91; }
.public-body .public-footer { font-size:16px; color:#5f7188; padding-top:24px; }
.public-body .public-footer a { font-size:24px; min-height:48px; }
.public-body .public-footer svg { width:22px; height:22px; }
.public-body .public-footer small { font-size:16px; color:#697b91; margin-top:8px; }
.public-body .alert, .public-body .errorlist { font-size:18px; line-height:1.6; overflow-wrap:anywhere; }
.public-body .alert { margin-top:20px; margin-bottom:0; }
.public-body .small, .public-body .eyebrow { font-size:16px; }
.public-body .text-link { display:inline-flex; align-items:center; justify-content:center; min-height:48px; font-size:18px; }
.public-body .result-card { padding:32px 20px 16px; }
.public-body .result-card h1 { font-size:28px; }
.public-body .result-card .button, .public-body .result-card .text-link { display:flex; width:100%; }
.public-body .result-card p { line-height:1.75; overflow-wrap:anywhere; }
.public-body .receipt { margin:24px 0 20px; color:#5f7188; gap:16px 12px; }
.public-body .receipt strong { overflow-wrap:anywhere; max-width:100%; }
.public-body .result-card .status { font-size:18px; }
.public-body #share-dialog { padding:18px; max-width:410px; max-height:calc(100dvh - 32px); overscroll-behavior:contain; }
.public-body .dialog-head { position:sticky; top:-18px; z-index:1; background:white; padding:4px 0; gap:8px; }
.public-body .dialog-head h2 { font-size:26px; line-height:1.35; }
.public-body .icon-button { width:48px; height:48px; min-width:48px; font-size:30px; }
.public-body #share-dialog>.muted { font-size:16px; overflow-wrap:anywhere; }
.public-body .share-actions { display:grid; grid-template-columns:minmax(0,1fr); gap:10px; margin:16px 0; }
.public-body .share-actions .button { white-space:normal; }
.public-body #share-dialog .qr { width:204px; margin:12px auto; }
.public-body .save-hint { font-size:16px; line-height:1.6; color:#5f7188; margin:0 0 8px; }
.public-body .qr-download { display:flex; margin-bottom:12px; }
.public-body #share-dialog>label { display:block; font-size:16px; margin-bottom:8px; }
.public-body #share-link { font-size:18px!important; min-height:108px; overflow-wrap:anywhere; word-break:break-all; resize:vertical; }
.public-body #share-dialog>.small { margin-top:12px; }
.public-body #toast { font-size:16px; line-height:1.6; width:max-content; max-width:calc(100vw - 32px); }

/* Customer-provided brand and promotional carousel. */
.public-body .public-header-logo { height:78px; justify-content:center; background:#fff; }
.public-body .public-header-logo .brand-logo { width:260px; max-width:78vw; }
.public-body .public-intro { padding:14px 20px 16px; text-align:center; color:#fff; background:linear-gradient(120deg,#0755b7,#0875da); }
.public-body .public-intro h1 { font-size:30px; line-height:1.35; letter-spacing:.5px; }
.public-body .public-intro p { margin-top:4px; color:#e8f4ff; font-size:16px; line-height:1.6; }
.public-body .promo-carousel { background:#fff; border-bottom:8px solid #f5f8fc; outline-offset:-3px; }
.public-body .carousel-viewport { position:relative; height:190px; overflow:hidden; background:#eef5fa; touch-action:pan-y; }
.public-body .carousel-slide { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; visibility:hidden; opacity:0; transition:opacity .32s ease; }
.public-body .carousel-slide.is-active { z-index:1; visibility:visible; opacity:1; }
.public-body .carousel-slide picture { display:flex; width:100%; height:100%; align-items:center; justify-content:center; }
.public-body .carousel-slide img { display:block; width:100%; height:100%; object-fit:contain; }
.public-body .carousel-controls { display:flex; min-height:58px; align-items:center; justify-content:center; gap:8px; padding:5px 12px; }
.public-body .carousel-button { width:48px; height:48px; flex:0 0 48px; padding:0; border:1px solid #b9d4f2; border-radius:12px; background:#f4f9ff; color:#075fc5; font-size:38px; line-height:1; }
.public-body .carousel-button span { position:relative; top:-2px; }
.public-body .carousel-dots { display:flex; align-items:center; justify-content:center; }
.public-body .carousel-dots button { position:relative; width:48px; height:48px; padding:0; border:0; background:transparent; }
.public-body .carousel-dots button:after { content:""; position:absolute; width:12px; height:12px; left:18px; top:18px; border:2px solid #286fb8; border-radius:50%; background:#fff; }
.public-body .carousel-dots button[aria-current=true]:after { background:#086bd6; box-shadow:0 0 0 4px #dbeeff; }

/* Two-page customer flow: compact campaign landing and focused form. */
.public-body .landing-shell { display:flex; min-height:100dvh; flex-direction:column; }
.public-body .landing-shell main { flex:1 0 auto; }
.public-body .landing-shell .public-header-logo { height:70px; }
.public-body .landing-shell .public-header-logo .brand-logo { width:240px; }
.public-body .landing-shell .public-intro { padding:9px 20px 10px; }
.public-body .landing-shell .public-intro h1 { font-size:30px; }
.public-body .landing-shell .carousel-viewport { height:176px; }
.public-body .landing-actions { padding:14px 20px 12px; text-align:center; }
.public-body .landing-tagline { color:#263f5d; font-size:18px; font-weight:650; line-height:1.55; }
.public-body .appointment-cta { width:100%; min-height:60px; margin:clamp(34px, calc(22dvh - 108px), 80px) 0 12px; border-radius:12px; font-size:22px; box-shadow:0 7px 18px #0867d938; }
.public-body .landing-meta { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.public-body .landing-service { display:flex; min-width:0; align-items:center; gap:9px; text-align:left; color:#4d627a; font-size:16px; line-height:1.35; }
.public-body .landing-service strong { display:block; color:#183b61; font-size:18px; overflow-wrap:anywhere; }
.public-body .landing-share { min-width:116px; min-height:48px; padding:8px 14px; border:1px solid #a9c9ec; border-radius:10px; background:#f5faff; color:#075fc5; font-size:18px; font-weight:650; }
.public-body .landing-shell .public-footer { padding-top:12px; }
.public-body .form-logo-header { height:68px; }
.public-body .form-logo-header .brand-logo { width:230px; }
.public-body .form-page-intro { padding:10px 20px 16px; text-align:center; background:linear-gradient(120deg,#0755b7,#0875da); color:#fff; }
.public-body .form-page-intro h1 { font-size:28px; line-height:1.4; }
.public-body .form-page-intro p { margin-top:3px; color:#e8f4ff; font-size:16px; line-height:1.6; }
.public-body .form-back-link { display:inline-flex; min-height:48px; align-items:center; justify-content:center; margin-bottom:2px; padding:4px 12px; border:1px solid #a9d5ff; border-radius:9px; color:#fff; font-size:18px; font-weight:600; }
.public-body .form-source-strip { grid-template-columns:36px minmax(0,1fr); }

/* Clear business choices and a raised, centered submission action. */
.public-body .business-card { background:linear-gradient(120deg,#0755b7,#0875da); color:#fff; border:2px solid #0755b7; }
.public-body .business-icon { color:#fff; }
.public-body .business-card:has(input:checked) { background:linear-gradient(120deg,#0755b7,#0875da); border-color:#0755b7; box-shadow:inset 0 0 0 2px #fff,0 0 0 2px #0755b7; }
.public-body .business-card .radio-mark { border:2px solid #fff; background:transparent; }
.public-body .business-card input:checked~.radio-mark { background:#fff; border-color:#fff; }
.public-body .business-card input:checked~.radio-mark:after { color:#0755b7; font-weight:800; line-height:18px; }
.public-body .submit-area { text-align:center; padding-top:25px; }
.public-body .submit-button { width:82%; max-width:280px; min-height:60px; justify-content:center; font-size:24px; font-weight:750; border:1px solid #0855ad; border-radius:14px; background:linear-gradient(#1383ef,#0564cd); box-shadow:0 5px 0 #06468d,0 9px 18px #0755b733,inset 0 1px 0 #ffffff66; }
.public-body .submit-button:hover { background:linear-gradient(#0875da,#0755b7); }
.public-body .submit-button:active:not(:disabled) { transform:translateY(3px); box-shadow:0 2px 0 #06468d,0 4px 10px #0755b72e; }
.public-body .submit-area p { margin-top:18px; }
.public-body .consent-panel:has(input[aria-invalid=true]) { border:2px solid #b42318; }
.public-body .consent-panel .consent-error { margin:12px 0 0; color:#a42218; background:#fff0ee; border-left:4px solid #b42318; padding:10px 12px; font-size:18px; font-weight:650; line-height:1.6; }

/* Keep the customer manager label and name on one line at mobile widths. */
.public-body .customer-manager { font-size:18px; line-height:1.6; color:#183b61; }
.public-body .customer-manager strong { display:inline; margin:0; font-size:18px; }

/* Public registration link keeps the existing footer layout and readable text. */
.public-body .public-footer .icp-link { font-size:16px; min-height:48px; color:#2767ab; letter-spacing:0; font-weight:500; }
