  :root{
    --bg:#FAF5EF; --card:#FFFFFF; --accent:#A96357; --accent-deep:#87483F;
    --text:#231A16; --text-muted:#4F403A; --meta:#806026; --line:#A48B7C; --danger:#A52828;
  }
  *{box-sizing:border-box;}
  body{margin:0;background:var(--bg);color:var(--text);font-family:'Jost',sans-serif;font-size:16px;line-height:1.55;font-weight:400;-webkit-font-smoothing:antialiased;}
  .wrap{max-width:900px;margin:0 auto;padding:38px 24px 90px;}

  .masthead{text-align:center;margin-bottom:30px;}
  .masthead .eyebrow{font-size:13px;letter-spacing:.32em;text-transform:uppercase;color:var(--accent-deep);margin-bottom:14px;}
  .masthead h1{font-family:'Cormorant Garamond',serif;font-weight:500;font-size:42px;margin:0 0 8px;}
  .masthead p{margin:0;color:var(--text-muted);font-size:16px;}
  .rule{width:64px;height:1px;background:var(--meta);margin:20px auto 0;position:relative;}
  .rule::after{content:'✦';position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:var(--bg);color:var(--meta);font-size:13px;padding:0 8px;}
  .brand-logo{display:block;width:172px;height:auto;margin:0 auto 18px;}
  .brand-logo-lg{width:212px;margin:0 auto 20px;}

  .card{background:var(--card);border:1px solid var(--text);padding:28px 32px;margin-bottom:18px;}
  .card h2{font-family:'Cormorant Garamond',serif;font-weight:600;font-size:24px;margin:0 0 6px;color:var(--text);}
  .card .hint{font-size:14px;color:var(--text-muted);margin:0 0 18px;}

  label{display:block;font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--text);margin-bottom:7px;font-weight:600;}
  input[type=text], textarea, select{
    width:100%;border:none;border-bottom:1px solid var(--line);background:transparent;
    padding:10px 2px;font-family:'Jost',sans-serif;font-size:16px;color:var(--text);outline:none;
  }
  input[type=text]:focus, textarea:focus{border-bottom-color:var(--accent);}
  textarea{resize:vertical;min-height:54px;}
  .field{margin-bottom:20px;}

  .chip-group{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:4px;}
  .chip{border:1px solid var(--line);border-radius:20px;padding:9px 16px;font-size:14px;cursor:pointer;
    color:var(--text);background:var(--bg);transition:all .15s;font-family:'Jost',sans-serif;font-weight:500;
    text-transform:none;letter-spacing:normal;line-height:1.2;-webkit-appearance:none;appearance:none;
    -webkit-tap-highlight-color:transparent;touch-action:manipulation;}
  .chip:hover{border-color:var(--accent);}
  .chip.active{background:var(--text);border-color:var(--text);color:var(--card);}
  .chip.active:hover{opacity:.9;}

  .modebar{display:flex;gap:6px;background:var(--card);border:1px solid var(--text);border-radius:8px;padding:6px;margin-bottom:24px;position:sticky;top:8px;z-index:20;}
  .modebtn{flex:1;border:none;background:transparent;padding:12px 8px;border-radius:6px;font-family:'Jost',sans-serif;font-weight:500;font-size:14px;letter-spacing:0;color:var(--text);cursor:pointer;transition:all .15s;-webkit-tap-highlight-color:transparent;}
  .modebtn.active{background:var(--accent-deep);color:var(--card);}
  .grid-2{display:grid;grid-template-columns:1fr 1fr;gap:0 18px;}
  .grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0 16px;}
  .chip-row{display:flex;flex-wrap:wrap;gap:8px;}
  .analysis-block{margin-bottom:16px;}
  .ab-label{font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent-deep);margin-bottom:8px;font-weight:500;}
  .consent-card{border-color:var(--accent);}
  .consent-check{display:flex;gap:12px;align-items:flex-start;font-size:16px;color:var(--text);cursor:pointer;line-height:1.5;}
  .consent-check input{margin-top:3px;width:18px;height:18px;flex-shrink:0;accent-color:var(--accent-deep);}
  @media(max-width:640px){ .grid-2,.grid-3{grid-template-columns:1fr;} .modebtn{font-size:14px;padding:11px 4px;} .brand-logo{width:142px;} .brand-logo-lg{width:178px;} }

  .opt-group{display:flex;flex-direction:column;gap:2px;margin-bottom:6px;}
  .opt{display:flex;align-items:flex-start;gap:10px;padding:10px 4px;border-bottom:1px solid var(--line);cursor:pointer;}
  .opt:last-child{border-bottom:none;}
  .opt input{margin-top:3px;accent-color:var(--accent-deep);flex-shrink:0;}
  .opt .otxt strong{display:block;font-size:16px;font-weight:500;}
  .opt .otxt span{font-size:14px;color:var(--text-muted);}
  .opt-sub{font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-deep);margin:18px 0 6px;}
  .opt-sub:first-child{margin-top:0;}

  .actions{display:flex;gap:14px;justify-content:center;margin:36px 0 8px;flex-wrap:wrap;}
  button{font-family:'Jost',sans-serif;font-size:14px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;padding:13px 24px;border-radius:2px;cursor:pointer;border:1px solid var(--accent-deep);transition:all .2s;background:transparent;color:var(--accent-deep);}
  .btn-primary{background:var(--accent-deep);color:var(--card);}
  .btn-primary:hover{opacity:.85;}
  .btn-secondary{background:transparent;color:var(--accent-deep);}
  .btn-secondary:hover{background:var(--bg);}
  .btn-danger{color:var(--danger);border-color:var(--danger);}
  .btn-danger:hover{background:#fbeeee;}
  .btn-small{padding:9px 16px;font-size:14px;}
  .btn-subtle{border-color:transparent;color:var(--text-muted);background:transparent;padding:8px 10px;}
  .btn-subtle:hover{color:var(--accent-deep);background:transparent;}
  .consult-generate-actions{margin-bottom:12px;}
  .consult-clear-action{text-align:center;margin-bottom:8px;}
  .consult-output-actions{align-items:stretch;}
  .phase-guide{border-left:2px solid var(--accent);padding:4px 0 4px 16px;margin:4px 0 22px;}
  .phase-guide p{font-size:14px;line-height:1.6;color:var(--text-muted);margin:0 0 7px;}
  .phase-guide p:last-child{margin-bottom:0;}

  #output{display:none;}
  #consultOutput{display:none;margin-top:34px;}
  #consultOutput.show{display:block;}
  #output,#consultOutput{scroll-margin-top:86px;}
  .c-head{text-align:center;margin-bottom:28px;padding-bottom:20px;border-bottom:1px solid var(--line);}
  .c-head .c-biz{font-family:'Cormorant Garamond',serif;font-size:22px;color:var(--accent-deep);}
  .c-head .c-title{font-size:13px;letter-spacing:.3em;text-transform:uppercase;color:var(--meta);margin-top:6px;}
  .c-head .c-for{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:17px;color:var(--text);margin-top:8px;}
  .letter h2.c-h{font-family:'Cormorant Garamond',serif;font-size:19px;font-weight:600;color:var(--accent-deep);margin:24px 0 8px;padding-bottom:5px;border-bottom:1px solid var(--line);}
  .letter .c-row{margin:5px 0;font-size:16px;line-height:1.6;color:var(--text);}
  .letter .c-row .c-lab{font-weight:500;color:var(--text-muted);}
  .letter .c-sign{margin-top:26px;padding-top:16px;border-top:1px solid var(--line);font-size:14px;color:var(--text-muted);}
  .letter{background:#FFFFFF;border:1px solid var(--text);padding:40px 44px;font-family:'Jost',sans-serif;}
  .letter[contenteditable=true]:focus{outline:2px solid var(--accent);outline-offset:6px;}
  .letter .practice-heading{text-align:center;font-family:'Cormorant Garamond',serif;font-size:24px;font-weight:500;color:var(--accent-deep);margin:0 0 8px;}
  .letter h1.title{font-family:'Cormorant Garamond',serif;font-size:30px;font-weight:600;letter-spacing:.02em;margin:0 0 24px;color:var(--text);}
  .letter p{font-size:16px;line-height:1.8;color:var(--text);margin:0 0 16px;}
  .letter .signoff{font-size:16px;line-height:1.7;margin:24px 0 40px;color:var(--text);}
  .letter h2.section{font-family:'Cormorant Garamond',serif;font-size:20px;font-weight:600;color:var(--accent-deep);border-bottom:1px solid var(--line);padding-bottom:8px;margin:38px 0 18px;}
  .letter .product{display:flex;gap:16px;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:8px;padding:16px 18px;margin-bottom:14px;box-shadow:0 1px 4px rgba(0,0,0,.03);}
  .letter .product .pphoto{width:70px;height:88px;flex-shrink:0;border-radius:5px;object-fit:cover;background:var(--bg);border:1px solid var(--line);}
  .letter .product .pphoto-empty{border-style:dashed;opacity:.45;}
  .letter .product .pbody{flex:1;}
  .letter .product .pname{font-size:16px;font-weight:500;color:var(--text);}
  .letter .product .pmeta{font-size:14px;color:var(--meta);margin-bottom:6px;}
  .letter .product p{margin:0;}
  .letter .product .plabel-in{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-deep);margin-top:8px;font-weight:600;}
  .letter a{color:var(--accent-deep);}
  .editnote{text-align:center;font-size:13px;color:var(--text-muted);margin-top:10px;letter-spacing:.06em;text-transform:uppercase;}

  .brand-row{display:flex;align-items:center;justify-content:space-between;padding:12px 4px;border-bottom:1px solid var(--line);font-size:16px;gap:10px;}
  .brand-row:last-child{border-bottom:none;}
  .brand-row .brow-actions{display:flex;gap:8px;flex-shrink:0;}
  .empty-note{font-size:14px;color:var(--text-muted);padding:6px 2px 18px;}
  .cat-editor{margin-bottom:26px;}
  .prod-row{display:grid;grid-template-columns:1fr 120px auto;gap:8px 10px;align-items:start;margin-bottom:10px;padding:14px;background:var(--bg);border:1px solid var(--line);}
  .prod-row input.prow-name, .prod-row input.prow-meta{background:#fff;padding:8px 10px;border:1px solid var(--line);font-size:15px;}
  .prod-row textarea{grid-column:1/3;min-height:48px;background:#fff;padding:8px 10px;border:1px solid var(--line);font-size:14px;}
  .prod-row .prow-photo-wrap{grid-column:1/3;display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
  .prod-row .prow-thumb{width:38px;height:48px;object-fit:cover;border:1px solid var(--line);border-radius:4px;background:#fff;}
  .prod-row .row-remove{grid-column:3;grid-row:1/4;align-self:stretch;padding:0 10px;font-size:12px;}
  .hidden-input{display:none;}

  .color-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:18px;}
  .color-item label{margin-bottom:6px;}
  .color-item input[type=color]{width:100%;height:42px;border:1px solid var(--line);background:#fff;padding:3px;cursor:pointer;border-radius:2px;}
  .cp-thread{position:relative;padding-left:40px;margin-top:24px;}
  .cp-thread::before{content:'';position:absolute;left:9px;top:8px;bottom:8px;width:1px;background:linear-gradient(to bottom,var(--meta),var(--accent) 40%,var(--accent) 60%,var(--meta));opacity:.55;}
  .cp-week{position:relative;margin-bottom:44px;}
  .cp-week:last-child{margin-bottom:0;}
  .cp-marker{position:absolute;left:-40px;top:0;width:20px;height:20px;border-radius:50%;background:var(--accent);border:1px solid var(--meta);display:flex;align-items:center;justify-content:center;font-family:'Cormorant Garamond',serif;font-size:13px;color:#fff;}
  .cp-week-title{font-family:'Cormorant Garamond',serif;font-size:19px;font-weight:600;margin:0 0 2px;color:var(--text);}
  .cp-week-theme{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:15px;color:var(--accent-deep);margin:0 0 16px;}
  .cp-post{background:#fff;border:1px solid var(--text);border-radius:6px;padding:16px 18px;margin-bottom:12px;}
  .cp-post-meta{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px;}
  .cp-tag{font-size:12px;letter-spacing:.05em;text-transform:uppercase;font-weight:500;padding:4px 10px;border-radius:20px;background:var(--bg);color:var(--accent-deep);border:1px solid var(--line);}
  .cp-caption{font-size:15px;line-height:1.7;color:var(--text);white-space:pre-line;margin:0 0 12px;}
  .cp-copy-btn{padding:7px 14px;font-size:12px;}
  .cp-history-card{margin-top:26px;}
  .cp-history-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;}
  .cp-history-head .hint{margin-bottom:0;}
  .cp-history-list{display:grid;gap:10px;margin-top:20px;}
  .cp-history-item{border:1px solid var(--line);background:var(--bg);padding:14px 16px;display:flex;align-items:center;justify-content:space-between;gap:16px;}
  .cp-history-title{font-family:'Cormorant Garamond',serif;font-size:17px;font-weight:600;color:var(--text);margin:0 0 3px;}
  .cp-history-meta{font-size:13px;color:var(--text-muted);line-height:1.5;}
  .cp-history-actions{display:flex;gap:8px;flex-wrap:wrap;flex-shrink:0;}
  .tpl-field{margin-bottom:22px;}
  .tpl-field textarea{min-height:88px;border:1px solid var(--line);background:#fff;padding:10px 12px;font-size:15px;line-height:1.6;}
  .token-note{font-size:13px;color:var(--text-muted);margin-top:6px;line-height:1.6;}

  @media (max-width:640px){
    .modebar{position:static;}
    #output,#consultOutput{scroll-margin-top:12px;}
    .card{padding:26px 20px;}
    .letter{padding:32px 24px;}
    .masthead h1{font-size:32px;}
    .prod-row{grid-template-columns:1fr;}
    .prod-row textarea{grid-column:1;}
    .prod-row .row-remove{grid-column:1;grid-row:auto;align-self:start;}
    .cp-history-head,.cp-history-item{align-items:stretch;flex-direction:column;}
    .cp-history-actions button{flex:1;}
    .consult-output-actions button{width:100%;}
  }
  @media print{
    *{-webkit-print-color-adjust:exact !important;print-color-adjust:exact !important;}
    body{background:#fff;}
    .card,.actions,.masthead,.editnote,.recolour,.modebar{display:none !important;}
    .wrap{padding:0;max-width:100%;}
    .letter{border:none;padding:0;}
    .letter .product{break-inside:avoid;page-break-inside:avoid;}
    .letter h2.section{break-after:avoid;page-break-after:avoid;}
    .letter h2.c-h{break-after:avoid;page-break-after:avoid;}
    .letter .pphoto{-webkit-print-color-adjust:exact !important;print-color-adjust:exact !important;}
    #consultOutput{display:block !important;}
  }

  /* ================= PRIVATE BETA ================= */
  .beta-badge{display:inline-block;font-size:12px;letter-spacing:.28em;text-transform:uppercase;
    color:var(--accent-deep);border:1px solid var(--accent);border-radius:20px;
    padding:6px 14px;background:#fff;font-weight:500;}
  .beta-note{border:1px solid var(--text);background:#fff;padding:16px 18px;margin-bottom:22px;}
  .beta-note p{margin:0 0 10px;font-size:14px;line-height:1.7;color:var(--text-muted);}
  .beta-note p:last-child{margin-bottom:0;}
  .beta-note strong{color:var(--accent-deep);font-weight:500;}
  .beta-note-strong{border-left:3px solid var(--accent-deep);}
  .startcard ol.startlist{list-style:none;margin:0;padding:0;counter-reset:sh;}
  .startcard ol.startlist li{counter-increment:sh;position:relative;padding:0 0 12px 40px;
    margin-bottom:12px;border-bottom:1px solid var(--line);}
  .startcard ol.startlist li:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0;}
  .startcard ol.startlist li::before{content:counter(sh);position:absolute;left:0;top:0;
    width:24px;height:24px;border-radius:50%;border:1px solid var(--meta);color:var(--accent-deep);
    font-family:'Cormorant Garamond',serif;font-size:14px;display:flex;align-items:center;justify-content:center;}
  .startcard ol.startlist li strong{display:block;font-size:16px;font-weight:500;color:var(--text);margin-bottom:3px;}
  .startcard ol.startlist li span{display:block;font-size:14px;line-height:1.65;color:var(--text-muted);}
  .beta-footnote{text-align:center;font-size:13px;letter-spacing:.04em;color:var(--text-muted);
    margin-top:40px;padding-top:20px;border-top:1px solid var(--line);line-height:1.7;}
  .feedback-fab{position:fixed;right:20px;bottom:20px;z-index:60;display:none;
    background:var(--accent-deep);color:#fff;border:1px solid var(--accent-deep);
    box-shadow:0 4px 16px rgba(0,0,0,.14);padding:13px 22px;}
  .feedback-fab.show{display:block;}
  .feedback-fab:hover{opacity:.9;}
  .fb-overlay{display:none;position:fixed;inset:0;z-index:80;background:rgba(43,36,32,.45);
    padding:24px;overflow-y:auto;}
  .fb-overlay.show{display:flex;align-items:flex-start;justify-content:center;}
  .fb-modal{background:var(--card);border:1px solid var(--text);max-width:520px;width:100%;
    padding:34px 34px 30px;margin:auto;position:relative;}
  .fb-modal h2{font-family:'Cormorant Garamond',serif;font-weight:500;font-size:24px;margin:0 0 6px;color:var(--accent-deep);}
  .fb-modal select{border:1px solid var(--line);padding:9px 10px;background:#fff;}
  .fb-modal textarea{border:1px solid var(--line);background:#fff;padding:9px 10px;}
  .fb-close{position:absolute;top:10px;right:12px;border:none;background:transparent;
    font-size:24px;line-height:1;padding:6px 10px;color:var(--text-muted);letter-spacing:0;}
  .fb-close:hover{color:var(--accent-deep);background:transparent;}
  @media(max-width:640px){
    .fb-modal{padding:28px 20px 24px;}
    .feedback-fab{right:14px;bottom:14px;padding:12px 18px;font-size:13px;}
  }
  @media print{ .feedback-fab,.fb-overlay,.beta-note,.startcard,.beta-footnote{display:none !important;} }

/* --- Tester feedback viewer (owner only) --- */
.fbv-list{margin-top:18px;display:grid;gap:14px;}
.fbv-item{border:1px solid var(--text);border-radius:10px;padding:14px 16px;background:#fff;}
.fbv-meta{display:flex;flex-wrap:wrap;gap:10px;align-items:center;font-family:'Jost',sans-serif;font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--meta);margin-bottom:10px;}
.fbv-area{border:1px solid var(--line);border-radius:99px;padding:2px 10px;color:var(--accent-deep);}
.fbv-item h4{font-family:'Jost',sans-serif;font-size:13px;letter-spacing:.09em;text-transform:uppercase;color:var(--text-muted);margin:10px 0 4px;font-weight:500;}
.fbv-item p{margin:0;white-space:pre-wrap;line-height:1.55;}

/* AM / PM routine + ingredient specification blocks */
.letter .rt-h{
  font-family:'Cormorant Garamond',serif;
  font-size:21px;
  letter-spacing:.04em;
  color:var(--accent-deep);
  margin:26px 0 10px;
}
.letter .rt-step{
  border-left:2px solid var(--line);
  padding:2px 0 2px 16px;
  margin:0 0 16px;
}
.letter .rt-name{
  font-weight:600;
  letter-spacing:.02em;
}
.letter .rt-spec{
  color:var(--meta);
  margin-top:2px;
}
.letter .rt-why{
  margin:6px 0 0;
}
.letter .rt-list{
  margin:0 0 8px;
  padding-left:20px;
}
.letter .rt-list li{
  margin-bottom:8px;
}
.letter .abc-roadmap{
  border-left:2px solid var(--accent);
  background:var(--bg);
  padding:14px 16px;
  margin:18px 0 24px;
}
.letter .abc-roadmap strong{color:var(--accent-deep);font-size:16px;}
.letter .abc-roadmap p{font-size:15px;margin:6px 0 0;line-height:1.7;}

/* Client-facing treatment journey, shared by screen and print */
.letter .plan-welcome{font-family:'Cormorant Garamond',serif;font-size:19px;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:20px;}
.letter .plan-welcome p{font-size:17px;line-height:1.6;}
.letter .skin-overview{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:14px 0 2px;}
.letter .skin-overview p{margin-bottom:16px;}
.letter .skin-overview strong{color:var(--accent-deep);font-size:13px;letter-spacing:.1em;text-transform:uppercase;font-weight:500;}
.letter .journey-list{margin:20px 0 30px;}
.letter .journey-step{display:grid;grid-template-columns:30px 1fr;gap:16px;padding:16px 0;border-top:1px solid var(--line);break-inside:avoid;page-break-inside:avoid;}
.letter .journey-step:last-child{border-bottom:1px solid var(--line);}
.letter .journey-marker{font-family:'Cormorant Garamond',serif;font-size:22px;color:var(--accent-deep);line-height:1.2;}
.letter .journey-title{font-family:'Cormorant Garamond',serif;font-size:20px;font-weight:600;}
.letter .journey-step p{font-size:15px;margin:5px 0 0;}
.letter .journey-current{background:var(--bg);border-left:3px solid var(--accent-deep);padding:16px 12px;}
.letter .journey-now{display:inline-block;vertical-align:middle;font-family:'Jost',sans-serif;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-deep);border:1px solid var(--accent);padding:3px 7px;margin-left:8px;}
@media print{
  .consult-clear-action{display:none !important;}
  body:not(.printing-consult) #consultOutput{display:none !important;}
  body.printing-consult #planMode,body.printing-consult #output{display:none !important;}
  body.printing-consult #consultMode{display:block !important;}
  body:not(.printing-consult) #planMode{display:block !important;}
  body:not(.printing-consult) #consultMode{display:none !important;}
  .letter .journey-step,.letter .rt-step,.letter .skin-overview{break-inside:avoid;page-break-inside:avoid;}
}

/* Practitioner reference photos (private) */
.cx-photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.cx-photo-slot{display:flex;flex-direction:column;gap:8px;}
.cx-photo-empty{display:flex;align-items:center;justify-content:center;aspect-ratio:3/4;border:1px dashed var(--line);background:var(--bg);color:var(--accent-deep);cursor:pointer;text-transform:none;letter-spacing:.04em;font-size:14px;margin:0;}
.cx-photo-empty:hover{border-color:var(--accent);}
.cx-photo-thumb{width:100%;aspect-ratio:3/4;object-fit:cover;border:1px solid var(--line);background:var(--bg);}
.cx-photo-actions{display:flex;gap:6px;}
.cx-photo-actions button{flex:1;padding:8px 6px;}
.letter .cx-sheet-photos{display:flex;gap:14px;flex-wrap:wrap;}
.letter .cx-sheet-photo{margin:0;width:150px;break-inside:avoid;}
.letter .cx-sheet-photo img{width:100%;border:1px solid var(--line);display:block;}
.letter .cx-sheet-photo figcaption{font-size:13px;color:var(--text-muted);margin-top:4px;text-align:center;}
@media(max-width:640px){ .cx-photo-grid{grid-template-columns:1fr 1fr;} }

/* Clinic privacy: screen lock, finish appointment, GDPR checklist */
.lock-overlay{display:none;position:fixed;inset:0;z-index:200;background:var(--bg);padding:24px;overflow-y:auto;}
.lock-overlay.show{display:flex;align-items:center;justify-content:center;}
body.ssc-locked #mainWrap,body.ssc-locked .feedback-fab,body.ssc-locked .fb-overlay{visibility:hidden !important;}
.lock-box{background:var(--card);border:1px solid var(--text);max-width:380px;width:100%;padding:36px 32px;text-align:center;}
.lock-box h2{font-family:'Cormorant Garamond',serif;font-weight:500;font-size:26px;margin:0 0 6px;color:var(--accent-deep);}
.lock-pin-input,.lock-code-input{width:100%;text-align:center;border:none;border-bottom:1px solid var(--line);background:transparent;font-family:'Jost',sans-serif;font-size:26px;letter-spacing:.5em;padding:10px 0;outline:none;color:var(--text);}
.lock-code-input{font-size:16px;letter-spacing:.1em;}
.lock-status{min-height:18px;font-size:14px;color:var(--danger);margin:8px 0 0;}
.finish-appt{text-align:center;margin:30px 0 10px;padding-top:24px;border-top:1px solid var(--line);}
.finish-appt .hint{margin:10px 0 0;}
.gdpr-list{margin:0 0 6px;padding-left:18px;list-style:disc;}
.gdpr-list li{font-size:15px;line-height:1.65;color:var(--text);margin-bottom:6px;}
@media print{ .lock-overlay,.finish-appt,#header-lock-btn{display:none !important;} }

/* Unified readable controls and print-safe document type. */
input[type=text],input[type=password],input[type=email],textarea,select,
.prod-row input.prow-name,.prod-row input.prow-meta,.prod-row textarea,.tpl-field textarea,#lock-pin,#lock-pin2{font-size:16px;}
#gatePw{width:100%;max-width:100%;font-size:16px;color:var(--text);}
input::placeholder,textarea::placeholder{color:var(--text-muted);opacity:1;}
input:focus-visible,textarea:focus-visible,select:focus-visible,button:focus-visible{outline:2px solid var(--accent-deep);outline-offset:2px;}
@media(max-width:640px){
  .wrap{padding:24px 16px 82px;}
  .card{padding:22px 18px;}
  .letter{padding:28px 20px;}
  .modebar{flex-wrap:wrap;}
  .modebtn{flex:1 1 calc(50% - 6px);font-size:14px;min-width:0;}
}
@media print{.letter{padding:0;border:none;}}

/* Legal documents */
.legal-card .legal-doc{border:1px solid var(--line);border-radius:10px;margin-top:12px;background:var(--surface,#fff);}
.legal-card .legal-doc summary{cursor:pointer;list-style:none;padding:14px 16px;font-weight:600;font-size:15px;color:var(--text);}
.legal-card .legal-doc summary::-webkit-details-marker{display:none;}
.legal-card .legal-doc summary::after{content:"+";float:right;color:var(--accent-deep);font-weight:600;}
.legal-card .legal-doc[open] summary::after{content:"\2013";}
.legal-card .legal-body{padding:0 16px 16px;font-size:14px;line-height:1.7;color:var(--text);}
.legal-card .legal-body p{margin:0 0 10px;}
.legal-card .legal-updated{font-weight:600;letter-spacing:.02em;}

/* Entry screen: beta terms */
.gate-terms{border:1px solid var(--line);border-radius:10px;margin:0 0 18px;background:var(--surface,#fff);text-align:left;}
.gate-terms summary{cursor:pointer;list-style:none;padding:13px 16px;font-weight:600;font-size:14px;color:var(--text);}
.gate-terms summary::-webkit-details-marker{display:none;}
.gate-terms summary::after{content:"+";float:right;color:var(--accent-deep);font-weight:600;}
.gate-terms[open] summary::after{content:"\2013";}
.gate-terms summary:focus-visible{outline:2px solid var(--accent-deep);outline-offset:2px;border-radius:10px;}
.gate-terms-body{padding:0 16px 14px;font-size:13px;line-height:1.65;color:var(--text-muted);}
.gate-terms-body p{margin:0 0 8px;}
.gate-terms-body p:last-child{margin-bottom:0;}
.gate-terms-body strong{color:var(--text);font-weight:600;}
@media print{.legal-card{display:none !important;}}
