:root{--navy:#0c1e3a;--navy2:#132d54;--orange:#f59e0b;--ink:#17243a;--muted:#718096;--line:#e3e9f1;--paper:#f5f7fa}*{box-sizing:border-box}html{background:#dfe5ec;scroll-behavior:smooth}body{margin:0;color:var(--ink);font-family:"Noto Sans SC","PingFang SC","Microsoft YaHei",Arial,sans-serif}button,input,select,textarea{font:inherit}main{width:100%;max-width:520px;min-height:100vh;margin:auto;background:var(--paper);box-shadow:0 0 50px #0c1e3a24;overflow:hidden}.hero{height:320px;padding:24px 28px 0;position:relative;overflow:hidden;color:var(--navy);background:linear-gradient(180deg,#fff,#fff 24%,#f1f7fb 58%,#dceaf4)}.grid{position:absolute;inset:0;opacity:.2;background-image:linear-gradient(#1e509021 1px,transparent 1px),linear-gradient(90deg,#1e509021 1px,transparent 1px);background-size:36px 36px;transform:perspective(400px) rotateX(58deg) scale(1.6) translateY(30%);transform-origin:bottom;mask-image:linear-gradient(to top,#000,transparent 75%)}.brand{position:relative;z-index:2;display:flex;align-items:center;gap:12px;font-size:14px;font-weight:700;letter-spacing:.01em;white-space:nowrap}.brand small{display:block;margin-top:3px;color:#66809a;font-weight:400;font-size:10px;letter-spacing:.03em}.logo{width:58px;height:58px;display:grid;place-items:center;overflow:hidden;background:transparent}.logo img{width:100%;height:100%;object-fit:contain}.eyebrow{position:relative;z-index:2;margin:30px 0 8px;color:#497aa9;font-size:12px;font-weight:700;letter-spacing:.28em}.hero h1{position:relative;z-index:2;margin:0;font-size:42px;letter-spacing:.04em}.hero h1:after{content:"";display:block;width:48px;height:4px;margin-top:13px;border-radius:5px;background:var(--orange)}.subtitle{position:relative;z-index:2;margin-top:11px;color:#56718d;font-size:18px;letter-spacing:.12em}.content{position:relative;padding:0 20px 30px}.event{position:relative;margin-top:-34px;z-index:3;padding:18px 20px 6px;border-radius:22px;background:#fff;box-shadow:0 16px 40px #1531531f}.event-title{display:block;padding-bottom:14px;border-bottom:1px solid var(--line)}.event-title h2{margin:0;font-size:21px;line-height:1.35;white-space:nowrap;letter-spacing:-.035em}.event-title p{margin:6px 0 0;color:#91a0b2;font-size:8.5px;line-height:1.4}.details{padding-top:8px}.detail{position:relative;display:grid;grid-template-columns:54px 1fr;align-items:center;gap:14px;min-height:55px;padding-left:13px;border-bottom:1px solid #edf1f5}.detail:last-child{border:0}.detail:before{content:"";position:absolute;left:0;width:3px;height:20px;border-radius:2px;background:#e4a133}.detail span{color:#77869a;font-size:12px;font-weight:600;letter-spacing:.08em}.detail strong{font-size:14px;line-height:1.5}.detail .address-line{white-space:nowrap;font-size:13px;letter-spacing:-.035em}.detail.booth strong{color:#e88808;font-size:25px}.form-section{padding:24px 4px 18px}.heading{display:flex;align-items:center;gap:12px;margin-bottom:24px}.heading h2{margin:0;font-size:23px}.heading p{margin:4px 0 0;color:var(--muted);font-size:12px}form{display:grid;gap:16px}label{display:grid;gap:7px;color:#4a576a;font-size:13px;font-weight:600}.field-title{display:inline-flex;align-items:baseline;gap:4px}label b{color:#f04f3d}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:12px;padding:14px;color:var(--ink);outline:none;background:#fff;font-size:15px}input:focus,select:focus,textarea:focus{border-color:#4f89c9;box-shadow:0 0 0 4px #3b82f617}textarea{resize:vertical}.consent{display:flex;align-items:center;gap:9px;color:#7a8797;font-weight:400;font-size:11px}.consent input{width:17px;height:17px;accent-color:var(--navy2)}.submit{height:57px;border:0;border-radius:14px;color:#fff;background:linear-gradient(120deg,#ef8d08,#ffae25);box-shadow:0 12px 26px #f59e0b4d;font-size:18px;font-weight:800;cursor:pointer}.submit:disabled{opacity:.65}.form-error{margin:0;color:#c63b2d;text-align:center;font-size:13px}.success{padding:35px 20px;text-align:center;border-radius:18px;background:#fff}.success i{width:58px;height:58px;display:grid;place-items:center;margin:auto;border-radius:50%;color:#fff;background:#2ca66f;font-style:normal;font-size:28px}.success h2{margin:15px 0 8px}.success p{color:var(--muted);font-size:13px}.contact{margin-top:10px;padding:20px;color:#fff;border-radius:18px;background:linear-gradient(145deg,var(--navy),var(--navy2))}.contact>div{padding-bottom:15px;border-bottom:1px solid #ffffff1a}.contact small{color:#ffffff8c;font-size:11px}.contact strong{display:block;margin:4px 0;font-size:20px}.contact p{margin:0;color:#ffffff99;font-size:12px}.contact a{margin-top:15px;display:flex;justify-content:space-between;color:#fff;text-decoration:none}.contact a span{color:#f8b44d;font-size:12px}.contact a b{font-size:18px}footer{padding:28px 0 2px;text-align:center;color:#98a4b3;font-size:10px}
.admin-body{background:#eef2f6}.admin{max-width:1180px;padding:32px;box-shadow:none}.admin header{display:flex;justify-content:space-between;align-items:center}.admin header p{margin:0;color:#77869a}.admin header h1{margin:4px 0;font-size:32px}.admin header a{padding:12px 18px;border-radius:10px;color:#fff;background:var(--navy2);text-decoration:none}.stats{display:grid;grid-template-columns:repeat(2,minmax(150px,240px));gap:16px;margin:28px 0}.stats div{padding:20px;border-radius:14px;background:#fff}.stats span{display:block;color:#78869a;font-size:12px}.stats strong{display:block;margin-top:6px;font-size:30px}.filters{display:grid;grid-template-columns:1fr 180px;gap:12px;margin-bottom:18px}.records{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.record{padding:18px;border:1px solid var(--line);border-radius:14px;background:#fff}.record-top{display:flex;justify-content:space-between;align-items:center}.record-id{color:#9aa6b4;font-size:12px}.record-top select{width:auto;padding:7px 28px 7px 9px;font-size:12px}.record h2{margin:15px 0 5px;font-size:20px}.record h2 small{display:block;margin-top:3px;color:#768497;font-size:12px;font-weight:400}.record>a{color:#1b5d9c;text-decoration:none}.record dl{display:grid;grid-template-columns:48px 1fr;gap:7px;margin:16px 0;font-size:12px}.record dt{color:#909dad}.record dd{margin:0}.record time{color:#a0aab7;font-size:11px}.loading,.empty{color:#8491a1}
@media(max-width:760px){.admin{padding:18px}.records{grid-template-columns:1fr}.filters{grid-template-columns:1fr}.admin header{align-items:flex-start}.admin header h1{font-size:26px}.stats{grid-template-columns:1fr 1fr}.admin header a{padding:10px 12px;font-size:12px}}@media(max-width:380px){.hero{padding-left:22px}.hero h1{font-size:36px}.content{padding-left:14px;padding-right:14px}}@media(min-width:700px){body:not(.admin-body){padding:35px 0}body:not(.admin-body) main{border-radius:24px}}

.lang-toggle{position:absolute;z-index:5;top:24px;right:24px;min-width:42px;height:34px;padding:0 11px;border:1px solid #174b7e33;border-radius:18px;color:#174b7e;background:#ffffffb8;font-size:12px;font-weight:700;cursor:pointer;backdrop-filter:blur(8px)}.lang-toggle:active{transform:translateY(1px)}.brand{padding-right:52px}.brand-name{display:block}.brand-name>i,.field-title i,.submit i{font-style:normal}.english .brand-name{max-width:280px;font-size:11px;line-height:1.2;white-space:normal}.english .brand-name small{font-size:9px}.english .hero h1{font-size:30px;letter-spacing:0}.english .subtitle{font-size:15px;letter-spacing:.03em}.english .event-title h2{font-size:16px;white-space:normal;letter-spacing:0}.english .detail .address-line{font-size:12px;white-space:normal;letter-spacing:0}.english .detail{grid-template-columns:52px 1fr}.english label{font-size:12px}

/* Appointment workflow admin */
.admin{max-width:1280px}.admin-header{gap:24px}.header-actions{display:flex;align-items:center;gap:10px}.header-actions .new-filter{display:flex;align-items:center;gap:8px;padding:11px 14px;border:1px solid #d8e1ec;border-radius:10px;color:#64748b;background:#fff;cursor:pointer}.header-actions .new-filter b{min-width:22px;height:22px;display:grid;place-items:center;border-radius:12px;color:#fff;background:#94a3b8;font-size:11px}.header-actions .new-filter.has-new{border-color:#f7b64b;color:#9a5a00;background:#fff9ed;box-shadow:0 0 0 3px #f59e0b18}.header-actions .new-filter.has-new b{background:#ef8d08}.stats{grid-template-columns:repeat(4,minmax(150px,1fr));max-width:none}.records{grid-template-columns:repeat(3,minmax(0,1fr))}.record{position:relative;cursor:pointer;transition:.18s ease}.record:hover{transform:translateY(-2px);border-color:#b9cadf;box-shadow:0 12px 28px #183b6512}.record-new{border:2px solid #f2aa2d;background:linear-gradient(145deg,#fff,#fffbf1)}.new-badge{position:absolute;top:-10px;right:14px;padding:5px 9px;border-radius:12px;color:#fff;background:#ed8a05;box-shadow:0 5px 14px #f59e0b45;font-size:9px;letter-spacing:.08em}.stage{display:inline-flex;padding:6px 9px;border-radius:10px;color:#38516e;background:#e9eff6;font-size:11px;font-weight:700}.stage-0,.stage-1{color:#9b5b00;background:#fff0d3}.stage-2{color:#175b91;background:#e0f1ff}.stage-3,.stage-4{color:#16704c;background:#dcf5e9}.stage-5{color:#6c49a5;background:#eee7fa}.stage-6{color:#08744a;background:#d5f7e8}.stage-7,.stage-8{color:#667085;background:#eceff3}.record-footer{display:flex;justify-content:space-between;align-items:center;gap:8px}.record-footer button{border:0;color:#1b5d9c;background:none;font-size:11px;font-weight:700;cursor:pointer}.detail-modal[hidden]{display:none}.detail-modal{position:fixed;z-index:100;inset:0}.modal-backdrop{position:absolute;inset:0;background:#06152d99;backdrop-filter:blur(3px)}.detail-panel{position:absolute;top:0;right:0;width:min(720px,96vw);height:100%;overflow:auto;padding:34px;background:#f4f7fa;box-shadow:-20px 0 50px #06152d30}.modal-close{position:sticky;z-index:3;top:0;float:right;width:38px;height:38px;border:0;border-radius:50%;color:#526174;background:#fff;box-shadow:0 4px 16px #142f541a;font-size:25px;cursor:pointer}.modal-open{overflow:hidden}.detail-head{display:flex;justify-content:space-between;align-items:flex-start;padding-right:50px}.detail-head h2{margin:6px 0 2px;font-size:30px}.detail-head p{margin:0;color:#718096}.customer-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;margin:24px 0;overflow:hidden;border:1px solid #e1e8f0;border-radius:16px;background:#e1e8f0}.customer-grid>div{min-height:88px;padding:17px;background:#fff}.customer-grid span{display:block;margin-bottom:8px;color:#8492a5;font-size:11px}.customer-grid b,.customer-grid a{color:#1b2a42;font-size:14px;text-decoration:none}.customer-grid a{color:#1d64a8}.workflow,.timeline{margin-top:18px;padding:22px;border:1px solid #e2e8f0;border-radius:16px;background:#fff}.workflow h3,.timeline h3{margin:0;font-size:18px}.workflow>p{margin:5px 0 18px;color:#7b899a;font-size:12px}.followup-form{display:grid;grid-template-columns:1fr 1fr;gap:13px}.followup-form label,.notes-form label{font-size:12px}.followup-form .wide{grid-column:1/-1}.followup-form input,.followup-form select,.followup-form textarea,.notes-form input,.notes-form select,.notes-form textarea{padding:11px;border-radius:9px;font-size:13px}.primary,.secondary{min-height:44px;border:0;border-radius:10px;color:#fff;background:#153d6b;font-weight:700;cursor:pointer}.secondary{padding:0 18px;background:#edf3f9;color:#153d6b}.primary:disabled,.secondary:disabled{opacity:.55}.form-message{margin:0;color:#287455;font-size:11px}.notes-form{display:grid;gap:13px;margin-top:16px}.timeline h3 span{color:#8593a5;font-size:12px}.timeline article{position:relative;display:grid;grid-template-columns:16px 1fr;gap:10px;padding-top:18px}.timeline article i{position:relative;width:9px;height:9px;margin-top:5px;border-radius:50%;background:#2e6eaa}.timeline article:not(:last-child) i:after{content:"";position:absolute;top:12px;left:4px;width:1px;height:calc(100% + 28px);background:#dce5ef}.timeline article header{display:flex;justify-content:space-between;gap:12px}.timeline article time{color:#9aa5b3;font-size:10px}.timeline article p{margin:6px 0;color:#334155;font-size:13px;white-space:pre-wrap}.timeline article small{color:#8390a0;font-size:10px}
@media(max-width:900px){.stats{grid-template-columns:1fr 1fr}.records{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.admin-header{align-items:flex-start;flex-direction:column}.header-actions{width:100%;justify-content:space-between}.records{grid-template-columns:1fr}.detail-panel{width:100vw;padding:20px}.customer-grid,.followup-form{grid-template-columns:1fr}.followup-form .wide{grid-column:auto}}
.dashboard-link{color:var(--navy2)!important;background:#e7eef6!important}.dashboard-note{margin:20px 0 8px;color:#7b899a;font-size:12px}.dashboard-summary{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin:24px 0}.dashboard-summary article{padding:20px;border:1px solid #e4eaf1;border-radius:15px;background:#fff}.dashboard-summary span{display:block;color:#7a899b;font-size:11px}.dashboard-summary strong{display:inline-block;margin:7px 5px 0 0;font-size:31px}.dashboard-summary small{color:#8492a5;font-size:10px}.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.chart-card{min-height:310px;padding:22px;border:1px solid #e2e8f0;border-radius:16px;background:#fff}.chart-card.wide-chart{grid-column:1/-1;min-height:280px}.chart-card h2{margin:0;font-size:18px}.chart-card header p{margin:5px 0 0;color:#8b98a8;font-size:11px}.bar-chart{display:grid;gap:16px;margin-top:24px}.bar-label{display:flex;justify-content:space-between;gap:14px;margin-bottom:6px;color:#536176;font-size:11px}.bar-label b{color:#203550}.bar-track{height:8px;overflow:hidden;border-radius:6px;background:#edf1f5}.bar-track i{display:block;height:100%;border-radius:6px;background:linear-gradient(90deg,#1f5f9e,#55a2d9)}.trend-chart{height:190px;margin-top:20px}.trend-bars{height:100%;display:flex;align-items:flex-end;gap:10px;border-bottom:1px solid #dfe6ee}.trend-item{height:100%;min-width:42px;flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:5px}.trend-item b{color:#49647e;font-size:10px}.trend-item i{width:min(38px,70%);min-height:8px;border-radius:6px 6px 0 0;background:linear-gradient(180deg,#f5a21d,#e37e05)}.trend-item span{height:18px;color:#8491a2;font-size:9px;white-space:nowrap}
.admin-only{display:none!important}.admin-role .admin-only{display:inline-flex!important}.audit-timeline{border-color:#d8e2ee;background:#fafdff}.audit-timeline article i{background:#73859b}.audit-timeline article p{color:#5f6d7d;font-size:11px}
@media(max-width:900px){.dashboard-summary{grid-template-columns:repeat(3,1fr)}}
@media(max-width:620px){.dashboard-summary{grid-template-columns:1fr 1fr}.dashboard-grid{grid-template-columns:1fr}.chart-card.wide-chart{grid-column:auto}.chart-card{min-height:260px;padding:18px}.trend-item{min-width:30px}.trend-bars{overflow-x:auto}}
.account-layout{display:grid;grid-template-columns:minmax(300px,420px) 1fr;gap:18px;margin-top:28px}.account-form-card,.account-list-card{padding:24px;border:1px solid #e1e8f0;border-radius:16px;background:#fff}.account-form-card h2,.account-list-card h2{margin:0;font-size:19px}.account-form-card>p{margin:6px 0 20px;color:#8190a2;font-size:11px}.account-form{gap:13px}.account-form input,.account-form select{padding:11px;border-radius:9px;font-size:13px}.role-explain{display:grid;grid-template-columns:72px 1fr;gap:9px;margin-top:22px;padding-top:18px;border-top:1px solid #e8edf3;font-size:10px}.role-explain b{color:#324a66}.role-explain span{color:#7d8999;line-height:1.5}.account-row{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:16px 0;border-bottom:1px solid #e8edf3}.account-row:last-child{border:0}.account-row b,.account-row span,.account-row small{display:block}.account-row b{font-size:14px}.account-row span{margin-top:3px;color:#35689c;font-size:11px}.account-row small{margin-top:5px;color:#909ba8;font-size:9px}.account-row-actions{display:flex;gap:7px}.account-row-actions button{padding:7px 10px;border:1px solid #d7e1eb;border-radius:8px;color:#375474;background:#f5f8fb;font-size:10px;cursor:pointer}.account-row-actions .danger{color:#b64236;background:#fff5f3;border-color:#f0d2cf}
@media(max-width:760px){.account-layout{grid-template-columns:1fr}.account-form-card,.account-list-card{padding:18px}}
.logout-button{padding:11px 13px;border:1px solid #d8e1eb;border-radius:10px;color:#52657a;background:#fff;font-size:12px;cursor:pointer}.logout-button:hover{border-color:#b9c8d8;color:#173a61}.logout-button:disabled{opacity:.55}.login-body{min-height:100vh;display:grid;place-items:center;padding:28px;background:#eaf0f5}.login-shell{width:min(430px,100%);min-height:0;padding:0 22px 20px;border:1px solid #d8e1ea;border-radius:20px;background:#f7f9fb;box-shadow:0 18px 55px #1734521a;overflow:visible}.login-brand{display:flex;align-items:center;gap:13px;padding:22px 2px 19px}.login-brand img{width:62px;height:62px;object-fit:contain}.login-brand b,.login-brand span{display:block}.login-brand b{color:#102844;font-size:14px}.login-brand span{margin-top:5px;color:#73869a;font-size:11px}.login-card{padding:27px;border:1px solid #dde5ed;border-radius:15px;background:#fff}.login-card header p{margin:0;color:#6f8194;font-size:11px}.login-card h1{margin:8px 0 6px;color:#122943;font-size:28px}.login-card header span{color:#8493a3;font-size:11px}.login-form{gap:15px;margin-top:24px}.login-form label{color:#43556a;font-size:12px}.login-form input{height:48px;padding:0 13px;border-radius:9px;font-size:14px}.login-form button{height:48px;margin-top:3px;border:0;border-radius:9px;color:#fff;background:#153f6c;font-size:15px;font-weight:700;cursor:pointer}.login-form button:hover{background:#0f345d}.login-form button:disabled{opacity:.6}.login-message{min-height:18px;margin:0;color:#bf4135;text-align:center;font-size:11px}.login-shell>footer{padding-top:17px;color:#93a0ad;text-align:center;font-size:9px;letter-spacing:.12em}
@media(max-width:520px){.login-body{padding:14px}.login-shell{padding:0 14px 16px;border-radius:16px}.login-card{padding:22px}.login-brand img{width:54px;height:54px}.login-brand b{font-size:12px}}
.account-pending{margin:0 -10px;padding:16px 10px;border-radius:10px;background:#fff8e8}.account-row em{display:inline-block;margin-left:6px;padding:3px 7px;border-radius:9px;color:#946008;background:#ffedc2;font-size:9px;font-style:normal}.login-notice{display:grid;gap:4px;margin-top:18px;padding:12px 13px;border-radius:9px;color:#64778b;background:#f1f5f8;font-size:10px;line-height:1.5}.login-notice b{color:#314d69}.login-secondary-link{display:block;margin-top:15px;color:#265f96;text-align:center;font-size:12px;font-weight:700;text-decoration:none}.login-secondary-link:hover{text-decoration:underline}.login-message.success{color:#247052}
.record-id{color:#8493a5;font-size:11px;font-weight:700;letter-spacing:.04em;font-variant-numeric:tabular-nums}
.admin-body{background:#e8eef4}.admin{min-height:100vh;background:#f4f7fa}.admin-brandbar{display:flex;justify-content:space-between;align-items:center;gap:24px;margin:-32px -32px 30px;padding:18px 32px;border-bottom:1px solid #dce5ed;background:#edf3f7}.admin-brand-logo{display:flex!important;align-items:center;gap:13px;padding:0!important;color:inherit!important;background:transparent!important;text-decoration:none}.admin-brand-logo img{width:66px;height:66px;object-fit:contain;mix-blend-mode:multiply}.admin-brand-logo b,.admin-brand-logo span{display:block}.admin-brand-logo b{color:#0f2948;font-size:16px;letter-spacing:.01em}.admin-brand-logo span{margin-top:5px;color:#68809a;font-size:10px;letter-spacing:.03em}.brand-event{padding-left:24px;border-left:1px solid #cfdbe5;text-align:right}.brand-event small,.brand-event b{display:block}.brand-event small{color:#3774aa;font-size:9px;font-weight:700;letter-spacing:.22em}.brand-event b{margin-top:5px;color:#38526c;font-size:12px}.admin-header{padding:2px 0 4px}.admin-header>div:first-child{position:relative;padding-left:15px}.admin-header>div:first-child:before{content:"";position:absolute;top:2px;bottom:2px;left:0;width:4px;border-radius:3px;background:#e99417}.admin header h1{color:#102640;letter-spacing:-.02em}.stats div{position:relative;overflow:hidden;border:1px solid #e0e7ee;box-shadow:0 6px 20px #15365709}.stats div:before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:#2f679b}.stats div:nth-child(2):before{background:#e49a25}.stats div:nth-child(3):before{background:#31866b}.stats div:nth-child(4):before{background:#735c9f}.filters{padding:14px;border:1px solid #dfe7ef;border-radius:14px;background:#fff}.record{box-shadow:0 5px 18px #14365308}.chart-card,.account-form-card,.account-list-card{box-shadow:0 7px 22px #17385809}.login-brand{background:#f7f9fb}.login-brand img{mix-blend-mode:multiply}.login-shell{background:#f1f5f8}.login-card{box-shadow:0 7px 22px #1738580a}
@media(max-width:760px){.admin-brandbar{margin:-18px -18px 24px;padding:15px 18px}.admin-brand-logo img{width:56px;height:56px}.admin-brand-logo b{font-size:13px}.brand-event{display:none}.admin-header{gap:18px}.header-actions{flex-wrap:wrap}.admin-brand-logo span{font-size:9px}}
@media(max-width:460px){.admin-brand-logo b{max-width:235px;line-height:1.35}.admin-brand-logo span{max-width:220px}.admin-brand-logo img{width:50px;height:50px}}
.header-actions .new-filter,.header-actions .logout-button{min-height:42px;height:42px;padding:0 14px;border-radius:10px;font-size:12px;font-weight:600;line-height:1;white-space:nowrap}.header-actions .logout-button{display:inline-flex;align-items:center;justify-content:center}.header-actions .new-filter b{min-width:22px;height:22px;font-size:11px}
