/* Editorial personal site. DESIGN_VARIANCE 4 / MOTION_INTENSITY 2 / VISUAL_DENSITY 4.
   Layers: sticky navigation 10, toast 30; native dialog uses browser top layer. */
:root{color-scheme:light dark;--bg:#fafafa;--surface:#fefefe;--soft:#f3f1f2;--text:#242328;--muted:#65616a;--line:#e5e1e5;--accent:#934657;--accent-hover:#763546;--accent-soft:#f8edf0;--on-accent:#fffafb;--shadow:0 12px 40px #49313d0b;--radius:14px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:150px}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei","Noto Sans CJK SC",sans-serif;font-size:16px;line-height:1.7;color:var(--text);background:var(--bg)}
button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.48;cursor:not-allowed}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid var(--accent);outline-offset:4px}button{border:0}h1,h2,h3,p{margin:0}h1{font-size:clamp(2rem,4vw,3.25rem);line-height:1.3;letter-spacing:.04em;font-weight:650}h2{font-size:26px;line-height:1.4;font-weight:650}h3{font-size:18px;font-weight:600}.muted{color:var(--muted)}.small{font-size:14px}.accent{color:var(--accent)}.mono{font-variant-numeric:tabular-nums}.wrap{width:min(1120px,calc(100% - 64px));margin-inline:auto}.icon{display:inline-block;width:20px;height:20px;flex:0 0 20px;background:currentColor;mask:var(--icon) center/contain no-repeat;vertical-align:-4px}
.skip-link{position:absolute;top:-70px;left:20px;padding:10px 18px;background:var(--surface);z-index:40}.skip-link:focus{top:12px}.brand{display:flex;align-items:center;gap:11px;font-size:20px;font-weight:650;letter-spacing:.08em}.brand-mark{display:grid;place-items:center;width:34px;height:38px;border-radius:8px;background:var(--accent);color:var(--on-accent)}.brand-mark .icon{width:23px;height:23px}.topbar{border-bottom:1px solid var(--line);background:var(--surface)}.topbar-inner{height:78px;display:flex;align-items:center;justify-content:space-between;gap:20px}.toplinks{display:flex;align-items:center;gap:24px;font-size:14px;color:var(--muted)}.toplinks button{padding:0;background:none;color:inherit;display:flex;gap:7px;align-items:center}.demo-bar{background:var(--soft);border-bottom:1px solid var(--line)}.demo-inner{min-height:62px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding-block:10px}.demo-note{font-size:13px;color:var(--muted)}.demo-note strong{font-weight:550;color:var(--text);margin-right:8px}.view-tabs{display:flex;gap:5px;padding:4px;background:var(--surface);border:1px solid var(--line);border-radius:10px;white-space:nowrap}.view-tab{display:flex;gap:7px;align-items:center;padding:7px 14px;border-radius:7px;font-size:14px;font-weight:550}.view-tab.active{background:var(--accent);color:var(--on-accent)}.view-tab:not(.active):hover{background:var(--soft)}
.btn{display:inline-flex;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:10px 19px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--text);font-size:15px;font-weight:550;white-space:nowrap;transition:background .15s,transform .15s}.btn:hover{background:var(--soft)}.btn:active{transform:translateY(1px)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.btn.primary:hover{background:var(--accent-hover)}.btn.ghost{background:transparent;border-color:transparent;color:var(--muted)}.btn.danger{color:var(--accent)}.btn.small{min-height:36px;padding:6px 11px;font-size:14px}.button-row{display:flex;gap:10px;flex-wrap:wrap}.text-link{color:var(--accent);font-weight:550;background:none;border:0;padding:0;display:inline-flex;gap:6px;align-items:center}.pill{display:inline-flex;align-items:center;gap:6px;padding:4px 11px;border-radius:6px;background:var(--soft);font-size:13px;white-space:nowrap}.pill.live{color:var(--accent);background:var(--accent-soft)}
.profile-hero{display:grid;grid-template-columns:385px 1fr;gap:76px;padding:48px 0 42px;align-items:center}.portrait-wrap{border-radius:var(--radius);overflow:hidden;aspect-ratio:4/5;background:var(--soft)}.portrait{width:100%;height:100%;object-fit:cover;object-position:center 35%}.hero-meta{display:flex;gap:14px;align-items:center;margin-bottom:15px;font-size:14px;color:var(--muted)}.tagline{margin-top:14px;font-size:19px;color:var(--muted);max-width:29em;line-height:1.9}.facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px 18px;margin:29px 0 32px;padding:24px 0;border-block:1px solid var(--line)}.fact label{display:block;font-size:13px;color:var(--muted);margin-bottom:5px}.fact strong{font-size:18px;font-weight:600}.hero-actions{display:flex;gap:12px;flex-wrap:wrap}.confirmed{display:flex;gap:8px;align-items:center;color:var(--muted);font-size:13px;margin-top:17px}.profile-nav{position:sticky;top:0;z-index:10;background:var(--bg);border-bottom:1px solid var(--line)}.profile-nav-inner{display:flex;gap:35px;overflow-x:auto;padding-block:16px;font-size:15px;white-space:nowrap}.profile-nav a{color:var(--muted)}.profile-nav a:hover{color:var(--accent)}.content-grid{display:grid;grid-template-columns:minmax(0,1fr) 292px;gap:72px;align-items:start;padding-block:44px 80px}.profile-section{padding-bottom:36px;margin-bottom:36px;border-bottom:1px solid var(--line);scroll-margin-top:80px}.profile-section:last-child{margin-bottom:0;border:0}.profile-section h2{margin-bottom:20px}.prose{line-height:2;color:var(--muted);max-width:65ch}.chips{display:flex;flex-wrap:wrap;gap:9px;margin-top:20px}.chip{display:inline-flex;align-items:center;gap:7px;background:var(--soft);padding:6px 13px;border-radius:7px;font-size:14px}.story-pair{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:26px}.story-pair h3{margin-bottom:8px}.timeline{display:grid;gap:22px}.timeline-row{display:grid;grid-template-columns:100px 1fr;gap:20px}.timeline-row .year{color:var(--muted);font-size:14px}.timeline-row p{font-size:15px;color:var(--muted);margin-top:3px}.parent-note{margin-top:24px;background:var(--soft);padding:20px 22px;border-radius:10px}.parent-note h3{font-size:15px;margin-bottom:8px}.album{display:grid;grid-template-columns:1fr 1fr;gap:16px}.album button{padding:0;background:none;text-align:left;color:var(--text)}.album img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:10px}.album figcaption{font-size:14px;color:var(--muted);margin-top:8px}.album figure{margin:0}.album .portrait-album{grid-column:1/-1}.album .portrait-album img{aspect-ratio:16/7;object-position:center 31%}.video-wrap{margin-top:24px}.video-wrap video{width:100%;max-height:400px;border-radius:10px;background:var(--soft)}.expectations{display:grid;gap:18px}.expectation{display:flex;align-items:baseline;gap:18px}.expectation-label{font-size:14px;color:var(--muted);width:66px;flex-shrink:0}.expectation p{font-size:16px}.sidebar-panel{position:sticky;top:87px;border:1px solid var(--line);border-radius:var(--radius);padding:23px;background:var(--surface)}.sidebar-panel h3{margin-bottom:17px}.side-row{display:flex;justify-content:space-between;gap:15px;padding-block:9px;font-size:14px}.side-row span:first-child{color:var(--muted)}.side-rule{border:0;border-top:1px solid var(--line);margin:20px 0}.qr-slot{display:grid;place-items:center;background:#fff;border-radius:9px;padding:14px;max-width:190px;margin:0 auto 12px;min-height:164px}.qr-slot img{width:160px;height:160px}.qr-caption{font-size:14px;text-align:center;color:var(--muted)}.sidebar-panel .btn{width:100%;margin-top:17px}.page-footer{border-top:1px solid var(--line);padding:25px 0;font-size:13px;color:var(--muted)}.footer-inner{display:flex;justify-content:space-between;gap:20px}.unavailable{padding:100px 24px;text-align:center;max-width:620px;margin:auto}.unavailable .icon{width:48px;height:48px;color:var(--accent);margin-bottom:25px}.unavailable p{margin-top:16px;color:var(--muted)}
.workspace{display:grid;grid-template-columns:225px minmax(0,1fr);gap:36px;padding:35px 0 80px;align-items:start}.workspace-nav{position:sticky;top:22px;padding:20px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.account{padding-bottom:20px;margin-bottom:13px;border-bottom:1px solid var(--line)}.account h3{font-size:17px}.account .small{margin-top:5px}.workspace-nav a{display:flex;align-items:center;gap:10px;font-size:15px;padding:10px 12px;border-radius:8px;margin-bottom:5px;color:var(--muted)}.workspace-nav a.selected,.workspace-nav a:hover{background:var(--accent-soft);color:var(--accent)}.workspace-nav .bottom-note{font-size:13px;color:var(--muted);line-height:1.8;margin-top:20px}.workspace-main{min-width:0}.workspace-heading{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:25px}.workspace-heading h1{font-size:30px;letter-spacing:0}.workspace-heading p{font-size:14px;color:var(--muted);margin-top:6px}.notice{display:flex;gap:12px;align-items:flex-start;padding:16px 18px;border-radius:10px;background:var(--accent-soft);color:var(--accent);font-size:14px;margin-bottom:22px}.notice .icon{margin-top:3px}.notice.neutral{background:var(--soft);color:var(--muted)}.form-panel{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:26px;margin-bottom:24px;scroll-margin-top:25px}.form-panel h2{font-size:20px;margin-bottom:22px}.form-panel h3{margin-block:20px 12px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.field{display:flex;flex-direction:column;gap:7px}.field.full{grid-column:1/-1}.field label{font-size:14px;font-weight:550}.field input,.field textarea,.field select{width:100%;color:var(--text);background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:11px 13px;min-height:46px;font-size:16px;line-height:1.6}.field textarea{resize:vertical;min-height:112px}.field input::placeholder,.field textarea::placeholder{color:var(--muted)}.field-help{font-size:13px;color:var(--muted)}.field-error{font-size:14px;color:var(--accent)}.cities{display:flex;flex-wrap:wrap;gap:9px}.city-choice{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border:1px solid var(--line);border-radius:7px;font-size:14px;cursor:pointer}.city-choice:has(input:checked){background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}input[type=checkbox]{accent-color:var(--accent);width:17px;height:17px;vertical-align:-3px}.toggle-row{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-block:14px;border-bottom:1px solid var(--line)}.toggle-row:last-child{border-bottom:0}.toggle-row .small{color:var(--muted);margin-top:4px}.toggle{appearance:none;width:42px!important;height:24px!important;border-radius:99px;background:var(--line);position:relative;cursor:pointer;flex-shrink:0}.toggle:after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;background:var(--surface);border-radius:50%;transition:transform .15s}.toggle:checked{background:var(--accent)}.toggle:checked:after{transform:translateX(18px)}.editor-photos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.editor-photo{border:1px solid var(--line);border-radius:10px;overflow:hidden}.editor-photo img{width:100%;aspect-ratio:4/3;object-fit:cover}.editor-photo-body{padding:10px}.editor-photo-body input{width:100%;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--text);font-size:13px;padding:6px 8px}.editor-photo-body button{margin-top:7px}.upload-button{display:flex;flex-direction:column;gap:10px;align-items:center;justify-content:center;min-height:160px;border:1px dashed var(--line);border-radius:10px;background:var(--bg);color:var(--muted);font-size:14px;padding:16px;cursor:pointer}.upload-button .icon{width:26px;height:26px}.savebar{position:sticky;bottom:14px;z-index:10;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px 18px;display:flex;justify-content:space-between;gap:16px;align-items:center;box-shadow:0 10px 35px #49313d1a}.savebar .small{color:var(--muted)}.service-box{display:flex;align-items:center;justify-content:space-between;gap:24px}.service-price{font-size:32px;font-weight:650;color:var(--accent)}.service-price small{font-size:14px;font-weight:400}.stats-strip{display:grid;grid-template-columns:repeat(4,1fr);margin-bottom:24px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.stat{padding:20px 24px;border-right:1px solid var(--line)}.stat:last-child{border:0}.stat label{display:block;color:var(--muted);font-size:14px}.stat strong{font-size:30px;font-weight:600}.admin-filter{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:18px}.search-input{border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text);padding:9px 13px;min-width:220px;flex:1}.admin-filter select{border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text);padding:9px 12px}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}table{border-collapse:collapse;width:100%;font-size:14px;text-align:left}th{font-weight:550;color:var(--muted);background:var(--soft);padding:13px 17px;white-space:nowrap}td{padding:19px 17px;border-bottom:1px solid var(--line);white-space:nowrap}tbody tr:last-child td{border:0}.person-cell{display:flex;align-items:center;gap:12px}.person-cell img{width:38px;height:45px;object-fit:cover;border-radius:6px}.initials{display:grid;place-items:center;background:var(--soft);width:38px;height:45px;border-radius:6px;color:var(--muted)}.person-cell strong{font-size:15px;font-weight:550}.person-cell small{display:block;font-size:12px;color:var(--muted)}.empty{text-align:center;padding:44px 20px;color:var(--muted)}.audit-list{display:grid;gap:14px}.audit-item{display:flex;justify-content:space-between;gap:20px;font-size:14px}.reserved{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:25px}.reserved-item{border:1px dashed var(--line);border-radius:12px;padding:20px;background:var(--soft)}.reserved-item h3{font-size:16px}.reserved-item p{font-size:14px;color:var(--muted);margin-top:7px}
dialog{width:min(600px,calc(100vw - 32px));max-height:90dvh;border:1px solid var(--line);border-radius:16px;background:var(--surface);color:var(--text);padding:0;box-shadow:0 30px 90px #24232830}dialog::backdrop{background:#24232877}.dialog-head{padding:20px 24px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:16px}.dialog-head h2{font-size:20px}.close-btn{display:grid;place-items:center;width:36px;height:36px;border-radius:8px;background:var(--soft);color:var(--text)}.dialog-body{padding:24px}.dialog-body p{color:var(--muted);margin-bottom:18px}.dialog-body .qr-slot{max-width:240px}.dialog-body .qr-slot img{width:210px;height:210px}.copy-row{display:flex;gap:8px;margin-bottom:18px}.copy-row input{min-width:0;flex:1;border:1px solid var(--line);background:var(--bg);border-radius:7px;color:var(--muted);font-size:13px;padding:10px}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);z-index:30;padding:12px 22px;border:1px solid var(--line);border-radius:10px;max-width:calc(100vw - 32px);background:var(--text);color:var(--surface);box-shadow:var(--shadow);font-size:15px}.toast[hidden]{display:none}.preview-dialog{width:min(970px,calc(100vw - 24px))}.preview-dialog .wrap{width:calc(100% - 48px)}.preview-dialog .profile-hero{grid-template-columns:250px 1fr;gap:35px;padding-top:24px}.preview-dialog .content-grid{grid-template-columns:1fr;padding-top:20px;gap:0}.preview-dialog .sidebar-panel{display:none}.photo-dialog{width:min(800px,calc(100vw - 24px))}.photo-dialog img{width:100%;max-height:75dvh;object-fit:contain}.photo-dialog figcaption{padding:14px 24px;color:var(--muted);font-size:14px}.role-options{display:flex;gap:10px;margin-bottom:20px}.role-options button{flex:1}.role-options .selected{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.otp-row{display:flex;gap:9px}.otp-row input{min-width:0;flex:1}.login-form{display:grid;gap:18px}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:23px}.print-card{max-width:760px;padding:42px;margin:25px auto;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.print-header{display:flex;gap:28px;align-items:center;margin-bottom:24px}.print-header img{width:130px;height:165px;object-fit:cover;border-radius:10px}.print-card h1{font-size:36px}.print-card h2{font-size:19px;margin:18px 0 7px}.print-card p{font-size:15px}.print-bottom{display:flex;justify-content:space-between;gap:24px;align-items:center;margin-top:25px}.print-bottom .qr-slot{min-height:130px;padding:8px;margin:0}.print-bottom .qr-slot img{width:125px;height:125px}
@media(prefers-color-scheme:dark){:root{--bg:#201e22;--surface:#28252a;--soft:#322c31;--text:#f4edf0;--muted:#bfb4bc;--line:#453b42;--accent:#e2a0b2;--accent-hover:#edb5c4;--accent-soft:#3e2d35;--on-accent:#281a20;--shadow:0 12px 40px #100b1020}.portrait-wrap{background:#322c31}.toast{background:#f4edf0;color:#201e22}}
@media(max-width:1000px){.profile-hero{grid-template-columns:330px 1fr;gap:40px}.content-grid{gap:35px;grid-template-columns:1fr 270px}.workspace{grid-template-columns:195px 1fr;gap:22px}.workspace-nav{padding:16px}.demo-note{max-width:270px}.editor-photos{grid-template-columns:1fr 1fr}}
@media(max-width:767px){.wrap{width:calc(100% - 36px)}.topbar-inner{height:64px}.brand{font-size:18px}.brand-mark{width:29px;height:32px}.toplinks{gap:15px}.toplinks .desktop-only{display:none}.demo-inner{display:block;padding-block:10px}.demo-note{max-width:none;font-size:12px;margin-bottom:9px}.view-tabs{width:100%;gap:3px}.view-tab{flex:1;justify-content:center;padding:7px 6px;font-size:13px;gap:5px}.view-tab .icon{width:16px;height:16px;flex-basis:16px}.profile-hero{grid-template-columns:1fr;gap:25px;padding:25px 0 30px}.portrait-wrap{aspect-ratio:4/4.1;width:100%;max-height:420px}.hero-meta{margin-bottom:10px}.hero-copy h1{font-size:34px}.tagline{font-size:17px;margin-top:10px}.facts{margin:20px 0 22px;gap:18px;padding-block:19px}.fact strong{font-size:17px}.hero-actions .btn{flex:1;padding-inline:12px;font-size:14px}.profile-nav-inner{gap:25px;padding-block:14px;font-size:14px}.content-grid{grid-template-columns:1fr;gap:10px;padding-top:28px;padding-bottom:40px}.profile-section{margin-bottom:28px;padding-bottom:28px}.profile-section h2{font-size:23px}.story-pair{grid-template-columns:1fr;gap:20px}.timeline-row{grid-template-columns:78px 1fr;gap:14px}.sidebar-panel{position:static;max-width:none;margin-bottom:12px}.sidebar-panel .side-row{font-size:15px}.album{gap:12px}.album figcaption{font-size:13px}.album .portrait-album img{aspect-ratio:4/3}.expectation{gap:12px}.expectation-label{width:60px}.footer-inner{display:block}.footer-inner span{display:block;margin-top:5px}.workspace{grid-template-columns:1fr;padding-top:20px;gap:18px}.workspace-nav{position:static;padding:14px}.workspace-nav .account{display:flex;align-items:center;justify-content:space-between;padding:0;margin:0;border:0}.workspace-nav nav{display:flex;gap:4px;overflow:auto;margin-top:12px}.workspace-nav a{white-space:nowrap;font-size:13px;padding:7px 9px;gap:5px;margin:0}.workspace-nav .bottom-note{display:none}.workspace-heading{align-items:flex-start;gap:10px;flex-wrap:wrap}.workspace-heading h1{font-size:25px}.workspace-heading .button-row{width:100%}.form-panel{padding:19px}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.form-panel h2{font-size:19px}.editor-photos{grid-template-columns:1fr 1fr}.savebar{bottom:8px;display:block;padding:12px}.savebar>.small{margin-bottom:8px}.savebar .button-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:7px}.savebar .btn{padding:9px 6px;font-size:13px}.savebar .btn .icon{display:none}.service-box{align-items:flex-start;gap:16px}.stats-strip{grid-template-columns:1fr 1fr}.stat{padding:15px 19px}.stat:nth-child(2){border-right:0}.stat:nth-child(-n+2){border-bottom:1px solid var(--line)}.stat strong{font-size:26px}.admin-filter{gap:8px}.search-input{min-width:0;width:100%}.reserved{grid-template-columns:1fr}.audit-item{flex-direction:column;gap:3px}.preview-dialog .profile-hero{grid-template-columns:1fr;gap:20px}.preview-dialog .wrap{width:calc(100% - 32px)}.dialog-body{padding:20px}.dialog-head{padding:16px 20px}.dialog-head h2{font-size:18px}.dialog-actions{flex-wrap:wrap}.copy-row{flex-wrap:wrap}.copy-row input{flex-basis:100%}.print-card{padding:22px;margin:20px 18px}.print-header{gap:18px}.print-header img{width:90px;height:115px}.print-card h1{font-size:28px}.print-bottom{gap:14px}.print-bottom p{font-size:13px}.photo-dialog figcaption{padding:12px 18px}.notice{padding:13px 14px}.notice.neutral{font-size:13px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
@media print{body{background:#fff;color:#242328;font-size:12pt}.topbar,.demo-bar,.page-footer,.print-actions,.toast,.skip-link{display:none!important}.print-card{margin:0;border:0;max-width:none;padding:12mm;border-radius:0}.print-card h1{font-size:28pt}.print-card p{color:#4c4650;font-size:11pt}.print-card .chips{margin-top:8px}.print-card .chip{color:#242328;background:#f3f1f2}.print-card .qr-slot img{width:32mm;height:32mm}@page{size:A4 portrait;margin:10mm}}
.workspace-nav,.field,.notice>div{min-width:0}
.album img{height:auto}
@media(max-width:767px){.workspace,.form-grid{grid-template-columns:minmax(0,1fr)}.workspace-nav nav a{flex-shrink:0}}

/* Targeted readability update: preserve the rose palette and existing routes.
   Navigation has explicit boundaries; the current section is a filled button. */
html:has(body[data-surface="profile"]){scroll-padding-top:calc(var(--profile-nav-height,70px) + 16px)}
.profile-nav{background:var(--surface)}
.profile-nav-inner{gap:10px;padding-block:12px;overflow:visible}
.profile-nav a{display:inline-flex;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:8px 17px;border:1px solid var(--line);border-radius:9px;background:var(--bg);color:var(--text);font-size:15px;font-weight:550;line-height:1.6;white-space:nowrap;transition:background .15s,transform .15s}
.profile-nav a:hover{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}
.profile-nav a[aria-current="location"]{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.profile-nav a:active{transform:translateY(1px)}
.profile-nav .icon{width:18px;height:18px;flex-basis:18px}
body[data-surface="profile"] .profile-section{scroll-margin-top:0}
.expectation{display:grid;grid-template-columns:7em minmax(0,1fr);align-items:baseline;gap:16px}
.expectation-label{width:auto;font-size:14px;white-space:nowrap}
.expectation p{min-width:0;line-height:1.8;overflow-wrap:anywhere}
.expectations{gap:20px}
.login-shell{max-width:440px;margin:48px auto 80px;padding:24px;min-height:60dvh}
.login-shell h1{font-size:28px;line-height:1.5;margin-bottom:12px}
.login-shell .login-form{margin-top:26px}
.show-password{display:flex;align-items:center;gap:8px;font-size:16px}
.login-form button[type="submit"]{min-height:48px}
.btn:disabled,button:disabled{opacity:.6;cursor:wait}
.person-cell small{max-width:160px;overflow:hidden;text-overflow:ellipsis}
@media(max-width:767px){.login-shell{margin:16px auto 40px;width:100%;padding:24px 20px}.topbar .toplinks .btn{font-size:14px}.dialog-body .login-form label{font-size:16px}}
@media(max-width:767px){
  .profile-nav-inner{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding-block:10px}
  .profile-nav a{min-width:0;min-height:40px;padding:7px 5px;font-size:14px}
  .profile-nav .icon{display:none}
  .expectation{grid-template-columns:6em minmax(0,1fr);gap:14px}
  .expectations{gap:18px}
}
.workspace-nav.without-account nav{margin-top:0}
/* Editing uses a top-pinned strip; the dashboard retains its sidebar.
   Sticky strip and save bar use layer 10; dialogs stay in the native top layer. */
.workspace.editor-workspace{grid-template-columns:minmax(0,1fr);gap:24px}
.editor-workspace .editor-nav{position:sticky;top:0;z-index:10;align-self:start;padding:12px 14px;background:var(--surface);box-shadow:0 6px 18px #49313d0b}
.editor-nav nav{display:flex;gap:6px;overflow-x:auto;overscroll-behavior-x:contain;margin-top:0}
.editor-nav nav a{flex-shrink:0;white-space:nowrap;min-height:44px;margin:0;padding:9px 12px}
.editor-nav .bottom-note{display:none}
.editor-nav .account{padding-bottom:10px;margin-bottom:10px}
html:has(.editor-workspace){scroll-padding-top:calc(var(--editor-nav-height,80px) + 16px)}
.editor-workspace .form-panel{scroll-margin-top:0}
@media(max-width:767px){
  .workspace.editor-workspace{gap:18px}
  .editor-workspace .editor-nav{padding:10px}
  .editor-nav nav a{padding:8px 10px;font-size:14px}
}
/* Mainland parent touch UI; desktop administration keeps its density. */
.editor-nav nav .account-nav{display:flex;align-items:center;gap:10px;flex-shrink:0;min-height:44px;padding:10px 12px;margin-bottom:5px;border:0;border-radius:8px;background:transparent;color:var(--muted);font:inherit;font-size:15px;white-space:nowrap;cursor:pointer}
.editor-nav nav .account-nav:hover,.editor-nav nav .account-nav[aria-expanded="true"]{background:var(--accent-soft);color:var(--accent)}
.account-reminder{width:8px;height:8px;flex:0 0 8px;border-radius:50%;background:#2684ff}
.account-dialog .dialog-body>p{line-height:1.8}
@media(max-width:767px){.editor-nav nav .account-nav{font-size:14px;padding:8px 10px;margin-bottom:0}}
.service-countdown-label{color:var(--muted);font-size:14px;margin-bottom:8px}
.service-days{color:var(--accent);font-size:36px;font-weight:600;line-height:1.3;letter-spacing:-.5px}
.service-expiry{font-size:16px;color:var(--muted);margin-top:10px;overflow-wrap:anywhere}
.service-note{font-size:15px;line-height:1.9;color:var(--muted);padding-top:20px;margin-top:22px;border-top:1px solid var(--line);overflow-wrap:anywhere}
.service-countdown[data-state="expired"] .service-days{color:var(--muted)}
[aria-disabled="true"]{pointer-events:none;opacity:.6}
.editor-nav .account>div{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px}
.editor-nav .account h3{font-size:15px}
.editor-nav .account .small{margin-top:0}
.editor-nav .account{padding-bottom:8px;margin-bottom:8px}
.editor-workspace .savebar{padding-bottom:calc(14px + env(safe-area-inset-bottom,0px))}
@media(max-width:767px){
  body[data-surface="editor"] .btn,body[data-surface="profile"] .btn{min-height:44px}
  .topbar .toplinks button{min-height:44px;min-width:44px}
  .profile-nav a{min-height:44px}
  .close-btn{width:44px;height:44px;flex-shrink:0}
  .show-password,.city-choice,.assist-check,.assist-selection{min-height:44px}
  .editor-photo-body input{font-size:16px;min-height:44px;padding:9px}
  .editor-photos{grid-template-columns:minmax(0,1fr)}
  .editor-photo-body .button-row .btn{flex:1}
  .editor-workspace .savebar .btn{min-height:46px;font-size:14px}
  .editor-workspace .savebar{bottom:0;padding-bottom:calc(12px + env(safe-area-inset-bottom,0px))}
  .editor-workspace .service-box{flex-direction:column;gap:12px}
  .field input,.field textarea,.field select,.copy-row input,.assist-raw textarea{font-size:16px}
  .dialog-head{gap:10px}
  .dialog-head h2{min-width:0}
  .dialog-actions .btn{white-space:normal;text-align:center}
  .assist-dialog summary{min-height:44px}
  .workspace-main{padding-bottom:24px}
}

/* Readable family profiles, preserving existing brand, anchors and form fields.
   DESIGN_VARIANCE 4 / MOTION_INTENSITY 2 / VISUAL_DENSITY 5.
   Chinese system fonts stay local; no network font requests. */
.topbar-inner{height:64px}
.demo-inner{min-height:0;padding-block:8px}
.demo-note{line-height:1.6}
.profile-hero{grid-template-columns:310px minmax(0,1fr);gap:52px;padding-block:32px}
.profile-hero.without-photo{grid-template-columns:minmax(0,1fr)}
.hero-copy,.hero-identity{min-width:0}
.hero-copy h1{font-size:40px;letter-spacing:.02em;line-height:1.35;overflow-wrap:anywhere}
.hero-meta{flex-wrap:wrap;gap:8px 14px;margin-bottom:10px;font-size:14px}
.hero-meta .pill{white-space:normal;line-height:1.5}
.tagline{font-size:17px;line-height:1.8;margin-top:10px;overflow-wrap:anywhere}
.facts{gap:16px 22px;padding-block:18px;margin-block:22px}
.fact strong{display:block;font-size:18px;line-height:1.6;overflow-wrap:anywhere}
.confirmed{margin-top:12px;flex-wrap:wrap;font-size:13px}
.profile-nav-inner{overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;padding-block:8px}
.profile-nav a{flex-shrink:0;padding:8px 14px}
.content-grid{gap:48px;padding-block:32px 56px}
.profile-section{margin-bottom:28px;padding-bottom:28px}
.profile-section h2{font-size:22px;margin-bottom:14px}
.profile-section h3{font-size:17px;line-height:1.6}
.prose{font-size:16px;line-height:1.85;color:var(--text);white-space:pre-wrap;overflow-wrap:anywhere}
.story-block{margin-top:20px}
.story-block h3{margin-bottom:7px}
.story-pair{gap:22px;margin-top:20px}
.story-pair .story-block{margin-top:0}
.story-pair:has(>.story-block:only-child){grid-template-columns:minmax(0,1fr)}
.timeline-row{grid-template-columns:6em minmax(0,1fr);gap:16px}
.timeline-row .prose{margin-top:3px;font-size:16px;line-height:1.85}
.parent-note{padding:14px 16px;margin-top:20px}
.parent-note h3{font-size:16px}
.expectations{gap:12px}
.expectation{display:grid;grid-template-columns:6em minmax(0,1fr);gap:16px}
.expectation-label{width:auto}
.video-wrap h3{margin-bottom:12px}
.qr-slot .muted{color:#65616a}
.workspace.editor-workspace{padding-top:20px;gap:18px}
.workspace-heading{margin-bottom:16px}
.workspace-heading h1{font-size:26px;line-height:1.45}
.editor-hint{display:flex;gap:7px;align-items:flex-start;margin-bottom:14px;font-size:13px;line-height:1.65;color:var(--muted)}
.editor-hint .icon{width:16px;height:16px;flex-basis:16px;margin-top:3px}
.form-panel{padding:24px;margin-bottom:20px}
.form-panel h2{font-size:20px;margin-bottom:18px}
.field label{font-size:15px;line-height:1.6}
.field-help{font-size:13px;line-height:1.65}
.service-days{font-size:28px;letter-spacing:0}
.service-expiry{font-size:15px}
.service-note{font-size:14px;line-height:1.75;border:0;padding-top:0;margin-top:14px}
.notice{font-size:13px;line-height:1.65;padding:10px 12px}
.print-actions{padding-top:20px}
.print-header>div{min-width:0}
.print-card h1{font-size:32px;line-height:1.4;overflow-wrap:anywhere}
.print-tagline{color:var(--muted);margin-top:8px}
.print-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 20px;margin:0 0 24px;padding-block:16px;border-block:1px solid var(--line)}
.print-facts dt{font-size:13px;color:var(--muted)}
.print-facts dd{margin:4px 0 0;font-size:16px;font-weight:600;overflow-wrap:anywhere}
.print-section{margin-top:22px}
.print-section h2{font-size:19px;margin:0 0 10px}
.print-section p{line-height:1.85;white-space:pre-wrap;overflow-wrap:anywhere}
.print-preferences{display:grid;gap:8px;margin:0 0 12px}
.print-preferences>div{display:grid;grid-template-columns:6em minmax(0,1fr);gap:12px;font-size:15px}
.print-preferences dt{color:var(--muted)}
.print-preferences dd{margin:0;overflow-wrap:anywhere}
@media(min-width:768px) and (max-width:1000px){.profile-hero{grid-template-columns:260px minmax(0,1fr);gap:28px}.content-grid{gap:28px}}
@media(max-width:767px){
  .demo-note{margin-bottom:0}
  .profile-hero,.preview-dialog .profile-hero{grid-template-columns:112px minmax(0,1fr);gap:18px 16px;padding-block:24px}
  .profile-hero.without-photo,.preview-dialog .profile-hero.without-photo{grid-template-columns:minmax(0,1fr)}
  .profile-hero .portrait-wrap{width:112px;height:140px;aspect-ratio:4/5;align-self:start;grid-row:1;border-radius:12px}
  .hero-copy{display:contents}
  .hero-identity{align-self:center}
  .hero-copy h1{font-size:30px;line-height:1.35}
  .hero-meta{gap:6px;margin-bottom:8px;font-size:13px}
  .hero-meta .icon{width:16px;height:16px;flex-basis:16px}
  .hero-meta .pill{font-size:12px;padding:4px 7px}
  .tagline{font-size:15px;line-height:1.75;margin-top:8px}
  .facts{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 20px;margin:0;padding-block:16px}
  .fact label{font-size:13px;margin-bottom:3px}
  .fact strong{font-size:17px;line-height:1.5}
  .hero-actions,.confirmed{grid-column:1/-1;margin:0}
  .profile-nav-inner{display:flex;gap:7px;padding-block:8px}
  .profile-nav a{font-size:14px;min-height:44px;padding:8px 12px}
  .content-grid{padding-top:24px;gap:12px}
  .profile-section h2{font-size:21px}
  .story-pair{gap:18px}
  .expectation{grid-template-columns:5.5em minmax(0,1fr);gap:12px}
  .timeline-row{grid-template-columns:5em minmax(0,1fr);gap:12px}
  .workspace-heading h1{font-size:23px}
  .workspace-heading .button-row{width:auto}
  .workspace-heading .button-row>.btn{font-size:14px;padding-inline:12px}
  .editor-hint{margin-bottom:12px}
  .form-panel{padding:18px;margin-bottom:18px}
  .form-panel h2{font-size:19px;margin-bottom:16px}
  .form-grid{gap:18px}
  .field input,.field textarea,.field select{font-size:16px}
  .field textarea{min-height:104px}
  .editor-workspace .savebar{padding:10px 12px calc(10px + env(safe-area-inset-bottom,0px))}
  .editor-workspace .savebar>.small{font-size:12px;line-height:1.6;margin-bottom:7px}
  .service-days{font-size:26px}
  .print-card{padding:20px;margin:18px}
  .print-card h1{font-size:28px}
  .print-header{gap:16px;align-items:flex-start}
  .print-header img{width:80px;height:100px;flex-shrink:0}
  .print-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
  .print-bottom{flex-wrap:wrap}
  .print-bottom .qr-slot{flex-shrink:0}
}
@media print{
  :root{color-scheme:light;--bg:#fff;--surface:#fff;--soft:#f3f1f2;--text:#242328;--muted:#514b53;--line:#d9d5d9;--accent:#934657;--on-accent:#fffafb}
  .print-card{background:#fff;color:#242328;padding:0;margin:0}
  .print-header{break-inside:avoid}
  .print-header img{width:28mm;height:35mm}
  .print-card h1{font-size:25pt}
  .print-facts{grid-template-columns:repeat(3,minmax(0,1fr));break-inside:avoid;border-color:#d9d5d9}
  .print-facts dt,.print-preferences dt{color:#514b53;font-size:10pt}
  .print-facts dd{font-size:12pt}
  .print-section h2{font-size:14pt;break-after:avoid}
  .print-section p{font-size:11pt}
  .print-preferences>div{font-size:11pt;break-inside:avoid}
  .print-bottom{break-inside:avoid}
}
