:root{
    --ink:#1C2B27;
    --ink-soft:#4B5D57;
    --teal:#0E6B63;
    --teal-deep:#093F3A;
    --teal-pale:#DDEAE7;
    --paper:#F1ECDD;
    --paper-raised:#FBF8EF;
    --gold:#B78A2E;
    --line:#D9D0B4;
    --caution:#9A4A30;
    --caution-pale:#F3E2D8;
    --amber:#B0791E;
    --amber-deep:#7A5313;
    --amber-pale:#F3E7CE;
    --grey-line:#CFC9BC;
    --wizard:#1D5FA8;
    --wizard-deep:#123E70;
    --wizard-pale:#DCE7F3;
    --radius:14px;
    --serif: ui-serif, Georgia, "Noto Serif", "Times New Roman", serif;
    --sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Noto Sans", "Helvetica Neue", Arial, sans-serif;
  }
  *{box-sizing:border-box;}
  html,body{margin:0;padding:0;}
  body{
    background:var(--paper);
    color:var(--ink);
    font-family:var(--sans);
    line-height:1.5;
    -webkit-font-smoothing:antialiased;
    background-image:
      radial-gradient(circle at 1px 1px, rgba(28,43,39,0.05) 1px, transparent 0);
    background-size: 22px 22px;
  }
  a{color:var(--teal-deep);}
  button{font-family:inherit;}
  :focus-visible{outline:3px solid var(--gold); outline-offset:2px;}
  svg{display:block;}

  @media (prefers-reduced-motion: reduce){
    *{animation-duration:0.001ms !important; transition-duration:0.001ms !important;}
  }

  .skip-link{
    position:absolute;left:-9999px;top:0;z-index:100;
    background:var(--teal-deep);color:var(--paper-raised);
    padding:10px 16px;border-radius:0 0 8px 0;font-weight:700;font-size:14px;
  }
  .skip-link:focus{left:0;}

  .sr-only{
    position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
    clip:rect(0,0,0,0);white-space:nowrap;border:0;
  }

  /* ---------- App shell ---------- */
  .app{max-width:640px;margin:0 auto;padding:0 0 64px;min-height:100vh;}

  header.topbar{
    display:flex;align-items:center;gap:8px;flex-wrap:wrap;
    padding:14px 18px;
    border-bottom:2px solid var(--line);
    background:var(--paper);
    position:sticky;top:0;z-index:5;
  }
  .brand{display:flex;align-items:center;gap:10px;flex:1;min-width:180px;}
  .brand-mark{
    width:34px;height:34px;border-radius:8px;
    background:#2B2E31;
    display:flex;align-items:center;justify-content:center;
    flex-shrink:0;
  }
  .brand-mark svg{width:20px;height:20px;}
  .brand-text .eyebrow{
    font-size:10.5px;letter-spacing:.09em;text-transform:uppercase;
    color:var(--teal-deep);font-weight:700;
  }
  .brand-text h1{
    font-family:var(--serif);font-size:19px;margin:0;font-weight:600;color:var(--ink);
  }

  .topbar-controls{display:flex;align-items:center;gap:6px;}

  .icon-btn{
    display:flex;align-items:center;gap:6px;
    background:var(--paper-raised);border:1.5px solid var(--line);
    border-radius:100px;padding:6px 10px;cursor:pointer;
    font-size:11.5px;font-weight:700;color:var(--ink);
  }
  .icon-btn[aria-pressed="true"]{border-color:var(--teal);background:var(--teal-pale);color:var(--teal-deep);}
  .icon-btn svg{width:16px;height:16px;flex-shrink:0;}

  .lang-menu{position:relative;}
  .lang-list{
    display:none;position:absolute;right:0;top:calc(100% + 6px);
    background:var(--paper-raised);border:1.5px solid var(--line);border-radius:10px;
    padding:6px;min-width:190px;box-shadow:0 8px 20px rgba(28,43,39,.18);z-index:10;
  }
  .lang-list.open{display:block;}
  .lang-list button{
    display:flex;justify-content:space-between;align-items:center;width:100%;
    background:none;border:none;text-align:left;padding:8px 10px;border-radius:7px;
    font-size:13px;cursor:pointer;color:var(--ink);
  }
  .lang-list button:hover{background:var(--teal-pale);}
  .lang-list button[aria-current="true"]{font-weight:700;color:var(--teal-deep);}
  .lang-list button[disabled]{color:var(--ink-soft);cursor:not-allowed;}
  .lang-list button[disabled]:hover{background:none;}
  .lang-list .soon{font-size:10.5px;color:var(--ink-soft);font-weight:600;}

  .offline-pill{
    font-size:11px;font-weight:600;color:var(--teal-deep);
    background:var(--teal-pale);border:1px solid var(--teal);
    padding:6px 9px;border-radius:100px;white-space:nowrap;
    display:flex;align-items:center;gap:6px;
  }
  .offline-pill svg{width:13px;height:13px;flex-shrink:0;}
  .offline-pill.is-offline{color:var(--caution);background:var(--caution-pale);border-color:var(--caution);}

  /* ---------- Section intro (plain text — NOT clickable, deliberately un-card-like) ---------- */
  .mode-banner{
    margin:20px 18px 10px;
    padding:0 2px;
  }
  .mode-banner .kicker{
    font-family:var(--serif);font-weight:700;font-size:14px;color:var(--teal-deep);
    text-transform:uppercase;letter-spacing:.05em;
    display:flex;align-items:center;gap:7px;
  }
  .mode-banner .kicker svg{width:16px;height:16px;flex-shrink:0;}
  .mode-banner p{margin:6px 0 0;font-size:13px;color:var(--ink-soft);max-width:52ch;}

  /* ---------- Doc list — the ONLY clickable rows on this screen ---------- */
  .doc-list{padding:6px 18px 4px;display:flex;flex-direction:column;gap:12px;}
  .doc-card{
    position:relative;
    background:var(--paper-raised);
    border:1.5px solid var(--line);
    border-radius:var(--radius);
    padding:16px 44px 16px 18px;
    cursor:pointer;
    box-shadow:0 1px 0 var(--line);
    transition:transform .12s ease, box-shadow .12s ease, border-color .12s ease;
    text-align:left;
    display:block;width:100%;
  }
  .doc-card::before{
    content:"";
    position:absolute;left:0;top:14px;bottom:14px;width:4px;
    background:var(--teal);border-radius:0 3px 3px 0;
  }
  .doc-card .chevron{
    position:absolute;right:14px;top:50%;transform:translateY(-50%);
    width:20px;height:20px;color:var(--teal);opacity:.7;
  }
  .doc-card:hover, .doc-card:focus-visible{
    border-color:var(--teal);
    box-shadow:0 4px 14px rgba(9,63,58,0.14);
    transform:translateY(-1px);
  }
  .doc-card:hover .chevron, .doc-card:focus-visible .chevron{opacity:1;transform:translateY(-50%) translateX(2px);}
  .doc-card .row{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;}
  .doc-card h2{font-family:var(--serif);font-size:17px;margin:0 0 3px;color:var(--ink);}
  .doc-card .en{font-size:12px;color:var(--ink-soft);font-style:italic;margin:0 0 8px;}
  .doc-card .blurb{font-size:13px;color:var(--ink-soft);margin:0;}
  .progress-seal{
    flex-shrink:0;width:46px;height:46px;border-radius:50%;
    border:2px solid var(--teal);
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    font-family:var(--serif);color:var(--teal-deep);
    font-size:12px;font-weight:700;line-height:1;
    background:var(--teal-pale);
  }
  .progress-seal small{font-size:8px;font-weight:600;letter-spacing:.02em;margin-top:1px;text-transform:uppercase;}
  .progress-seal.complete{background:var(--teal);color:var(--paper-raised);border-color:var(--teal-deep);}

  /* ---------- Mode section grouping (Wizard / Checklist / Reference-Only) ---------- */
  .mode-group{margin-bottom:8px;}
  .mode-group + .mode-group{
    margin-top:18px;padding-top:6px;border-top:1.5px dashed var(--line);
  }
  .mode-group.amber .mode-banner .kicker{color:#8A5A17;}
  .mode-group.amber .doc-card::before{background:var(--amber);}
  .mode-group.amber .doc-card .chevron{color:var(--amber);}
  .mode-group.amber .doc-card:hover, .mode-group.amber .doc-card:focus-visible{
    border-color:var(--amber);box-shadow:0 4px 14px rgba(138,90,23,0.14);
  }
  .mode-group.blue .mode-banner .kicker{color:var(--wizard-deep);}
  .mode-group.blue .doc-card::before{background:var(--wizard);}
  .mode-group.blue .doc-card .chevron{color:var(--wizard);}
  .mode-group.blue .doc-card:hover, .mode-group.blue .doc-card:focus-visible{
    border-color:var(--wizard);box-shadow:0 4px 14px rgba(18,62,112,0.14);
  }
  .detail-head.blue{background:var(--wizard-deep);}

  /* ---------- Wizard form ---------- */
  .wizard-field{margin-bottom:14px;}
  .wizard-field:last-child{margin-bottom:0;}
  .wizard-field label{
    display:block;font-size:12.5px;font-weight:700;color:var(--wizard-deep);margin-bottom:5px;
  }
  .wizard-field .hint{display:block;font-size:11.5px;color:var(--ink-soft);font-weight:400;margin-top:2px;}
  .wizard-field input, .wizard-field textarea, .wizard-field select{
    width:100%;font-family:inherit;font-size:14px;color:var(--ink);
    background:var(--paper);border:1.5px solid var(--line);border-radius:9px;
    padding:9px 11px;
  }
  .wizard-field input:focus, .wizard-field textarea:focus, .wizard-field select:focus{
    border-color:var(--wizard);outline:none;box-shadow:0 0 0 3px var(--wizard-pale);
  }
  .wizard-field textarea{min-height:74px;resize:vertical;}
  .wizard-field.invalid input, .wizard-field.invalid textarea{border-color:var(--caution);}
  .wizard-field .err{display:none;font-size:11.5px;color:var(--caution);margin-top:4px;font-weight:600;}
  .wizard-field.invalid .err{display:block;}

  .bring-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px;}
  .bring-list li{
    display:flex;align-items:flex-start;gap:9px;font-size:13.5px;
    padding:9px 11px;background:var(--paper);border:1.5px solid var(--line);border-radius:9px;
  }
  .bring-list .bullet{flex-shrink:0;width:6px;height:6px;border-radius:50%;background:var(--wizard);margin-top:6px;}

  .steps-list{list-style:none;margin:0;padding:0;counter-reset:step;display:flex;flex-direction:column;gap:8px;}
  .steps-list li{
    display:flex;gap:10px;font-size:13.5px;padding:9px 11px 9px 0;align-items:flex-start;
  }
  .steps-list li::before{
    counter-increment:step;content:counter(step);flex-shrink:0;
    width:22px;height:22px;border-radius:50%;background:var(--wizard-pale);color:var(--wizard-deep);
    font-weight:700;font-size:12px;display:flex;align-items:center;justify-content:center;
  }

  .wizard-preview{
    background:#fff;border:1.5px solid var(--line);border-radius:10px;
    padding:20px 18px;font-family:var(--serif);font-size:12.5px;line-height:1.7;
    color:#2A2A2A;white-space:pre-wrap;max-height:420px;overflow-y:auto;
  }
  .wizard-preview .ph{color:#B7924A;font-style:italic;}

  .generate-btn{
    display:flex;align-items:center;justify-content:center;gap:9px;width:100%;
    background:var(--wizard);color:#fff;border:none;border-radius:11px;
    padding:14px;font-size:14.5px;font-weight:700;cursor:pointer;margin-top:12px;
  }
  .generate-btn:hover{background:var(--wizard-deep);}
  .generate-btn:disabled{background:var(--line);color:var(--ink-soft);cursor:not-allowed;}
  .generate-btn svg{width:18px;height:18px;}

  .wizard-status{
    font-size:12px;text-align:center;color:var(--ink-soft);margin-top:8px;min-height:16px;
  }

  .presign-warning{
    display:flex;gap:10px;align-items:flex-start;
    background:var(--caution-pale);border:1.5px solid var(--caution);border-radius:10px;
    padding:11px 13px;margin-bottom:14px;font-size:13px;color:#5A2A1B;font-weight:600;
  }
  .presign-warning svg{width:19px;height:19px;flex-shrink:0;color:var(--caution);}

  /* ---------- AI Assistant panel (scoped per-document, optional, off by default) ---------- */
  .ai-panel{
    background:#EFE9F5;border:1.5px solid #9B7FC4;border-radius:var(--radius);
    padding:16px 18px;margin-bottom:12px;
  }
  .ai-panel h3{
    font-family:var(--serif);font-size:13.5px;margin:0 0 4px;color:#4B3480;
    text-transform:uppercase;letter-spacing:.04em;font-weight:700;
    display:flex;align-items:center;gap:7px;
  }
  .ai-panel h3 svg{width:17px;height:17px;flex-shrink:0;}
  .ai-panel .sub{font-size:12px;color:#5A4A78;margin:0 0 12px;}
  .ai-consent{
    background:#fff;border:1.5px solid #D7C9EC;border-radius:10px;padding:14px;font-size:13px;color:var(--ink);
  }
  .ai-consent ul{margin:8px 0;padding-left:18px;}
  .ai-consent li{margin-bottom:4px;}
  .ai-enable-btn{
    display:flex;align-items:center;justify-content:center;gap:8px;width:100%;
    background:#5B3E96;color:#fff;border:none;border-radius:10px;padding:11px;
    font-size:13.5px;font-weight:700;cursor:pointer;margin-top:10px;
  }
  .ai-enable-btn:hover{background:#4B3480;}
  .ai-enable-btn svg{width:16px;height:16px;}

  .ai-chat-window{
    background:#fff;border:1.5px solid #D7C9EC;border-radius:10px;
    padding:12px;max-height:340px;overflow-y:auto;display:flex;flex-direction:column;gap:10px;
    margin-bottom:10px;
  }
  .ai-msg{max-width:88%;padding:9px 12px;border-radius:12px;font-size:13.5px;line-height:1.5;}
  .ai-msg.user{align-self:flex-end;background:var(--wizard-pale);color:var(--wizard-deep);border-bottom-right-radius:3px;}
  .ai-msg.bot{align-self:flex-start;background:#F1ECF8;color:#3A2C5C;border-bottom-left-radius:3px;}
  .ai-msg.system{align-self:center;background:var(--caution-pale);color:#5A2A1B;font-size:12px;font-weight:600;border-radius:8px;}
  .ai-input-row{display:flex;gap:8px;}
  .ai-input-row input{
    flex:1;font-family:inherit;font-size:13.5px;border:1.5px solid var(--line);border-radius:9px;
    padding:9px 11px;background:var(--paper);
  }
  .ai-input-row input:focus{border-color:#8B6FC4;outline:none;box-shadow:0 0 0 3px #EFE9F5;}
  .ai-send-btn{
    background:#5B3E96;color:#fff;border:none;border-radius:9px;padding:0 16px;cursor:pointer;
    display:flex;align-items:center;justify-content:center;flex-shrink:0;
  }
  .ai-send-btn svg{width:16px;height:16px;}
  .ai-send-btn:disabled{background:var(--line);cursor:not-allowed;}

  .ai-progress{font-size:12px;color:#5A4A78;text-align:center;margin:8px 0;}
  .ai-progress-bar{
    height:6px;background:#E4DAF2;border-radius:3px;overflow:hidden;margin-top:4px;
  }
  .ai-progress-fill{height:100%;background:#5B3E96;border-radius:3px;transition:width .2s;}

  .ai-toggle-off{
    display:flex;align-items:center;justify-content:space-between;gap:10px;
    font-size:12.5px;color:#5A4A78;margin-top:10px;
  }
  .ai-toggle-off button{
    background:none;border:1.5px solid #D7C9EC;color:#5A4A78;border-radius:100px;
    padding:5px 12px;font-size:11.5px;font-weight:700;cursor:pointer;
  }

  .ai-scope-test{
    margin-top:12px;border-top:1.5px dashed #D7C9EC;padding-top:10px;
  }
  .ai-scope-test summary{cursor:pointer;font-size:12px;font-weight:700;color:#5A4A78;}
  .ai-scope-test-list{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:6px;}
  .ai-scope-test-list button{
    display:block;width:100%;text-align:left;background:#F7F4FB;border:1.5px solid #E4DAF2;
    border-radius:8px;padding:8px 10px;font-size:12px;color:#3A2C5C;cursor:pointer;
  }
  .ai-scope-test-list button:hover{border-color:#9B7FC4;}

  /* ---------- Document detail ---------- */

  .detail{padding:6px 18px 0;}
  .back-btn{
    display:inline-flex;align-items:center;gap:6px;
    background:none;border:none;color:var(--teal-deep);
    font-weight:600;font-size:13.5px;padding:10px 0;cursor:pointer;
  }
  .back-btn svg{width:15px;height:15px;}
  .back-btn:hover{text-decoration:underline;}

  .detail-head{
    background:var(--teal-deep);color:var(--paper-raised);
    border-radius:var(--radius);padding:20px 20px 18px;margin-bottom:16px;
    position:relative;overflow:hidden;
  }
  .detail-head.amber{background:#3D3226;}
  .detail-head .tag{
    display:inline-block;font-size:10.5px;letter-spacing:.09em;text-transform:uppercase;
    background:rgba(241,236,221,0.16);padding:3px 9px;border-radius:100px;font-weight:700;margin-bottom:8px;
  }
  .detail-head h2{font-family:var(--serif);font-size:22px;margin:0 0 3px;line-height:1.2;}
  .detail-head .en{font-size:12.5px;opacity:.82;font-style:italic;margin:0 0 12px;}
  .read-all-btn{
    display:inline-flex;align-items:center;gap:7px;
    background:rgba(241,236,221,0.14);border:1.5px solid rgba(241,236,221,0.5);
    color:var(--paper-raised);border-radius:100px;padding:7px 14px;font-size:12.5px;font-weight:700;cursor:pointer;
  }
  .read-all-btn:hover{background:rgba(241,236,221,0.24);}
  .read-all-btn svg{width:15px;height:15px;}
  .read-all-btn[aria-pressed="true"]{background:var(--paper-raised);color:var(--teal-deep);}

  /* Persistent, non-dismissible Model C badge — baked into layout, not a popup */
  .ref-badge{
    display:flex;align-items:center;gap:9px;
    background:var(--amber-pale);border:1.5px solid var(--amber);
    color:var(--amber-deep);border-radius:10px;
    padding:11px 14px;margin:0 18px 12px;font-size:12.5px;font-weight:700;
    position:sticky;top:70px;z-index:4;
  }
  .ref-badge svg{width:18px;height:18px;flex-shrink:0;}
  .ref-badge .sub{display:block;font-weight:500;font-size:11px;color:var(--amber-deep);opacity:.85;margin-top:1px;}

  .section{
    background:var(--paper-raised);border:1.5px solid var(--line);
    border-radius:var(--radius);padding:16px 18px;margin-bottom:12px;
  }
  .section-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;}
  .section h3{
    font-family:var(--serif);font-size:13.5px;margin:0;color:var(--teal-deep);
    text-transform:uppercase;letter-spacing:.04em;font-weight:700;
    display:flex;align-items:center;gap:7px;
  }
  .section h3 .num{
    width:20px;height:20px;border-radius:5px;background:var(--teal-pale);
    color:var(--teal-deep);font-size:11px;display:flex;align-items:center;justify-content:center;
    font-weight:700;flex-shrink:0;
  }
  .section p{margin:0 0 6px;font-size:14px;color:var(--ink);}
  .section p:last-child{margin-bottom:0;}
  .section .caption{font-size:12px;color:var(--ink-soft);font-style:italic;}

  .speak-btn{
    flex-shrink:0;width:28px;height:28px;border-radius:50%;
    border:1.5px solid var(--line);background:var(--paper);
    display:flex;align-items:center;justify-content:center;cursor:pointer;
  }
  .speak-btn svg{width:14px;height:14px;stroke:var(--teal-deep);}
  .speak-btn:hover{border-color:var(--teal);}
  .speak-btn[aria-pressed="true"]{background:var(--teal);border-color:var(--teal-deep);}
  .speak-btn[aria-pressed="true"] svg{stroke:var(--paper-raised);}

  /* checklist items */
  .checklist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;}
  .checklist li{
    display:flex;align-items:flex-start;gap:10px;
    padding:10px 12px;border:1.5px solid var(--line);border-radius:10px;
    background:var(--paper);cursor:pointer;transition:background .1s, border-color .1s;
    font-size:13.5px;
  }
  .checklist li:hover{border-color:var(--teal);}
  .checklist li.checked{background:var(--teal-pale);border-color:var(--teal);}
  .checklist li.checked .item-text{text-decoration:line-through;color:var(--ink-soft);}
  .box{
    width:19px;height:19px;border-radius:5px;border:2px solid var(--teal);
    flex-shrink:0;margin-top:1px;display:flex;align-items:center;justify-content:center;
    background:var(--paper-raised);
  }
  .checklist li.checked .box{background:var(--teal);}
  .box svg{width:12px;height:12px;stroke:var(--paper-raised);stroke-width:3.2;fill:none;opacity:0;transition:opacity .1s;}
  .checklist li.checked .box svg{opacity:1;}
  .item-text{flex:1;}

  .cost-flag{
    display:flex;gap:10px;align-items:flex-start;
    background:var(--caution-pale);border:1.5px solid var(--caution);
    border-radius:10px;padding:10px 12px;margin-top:8px;font-size:13px;color:#5A2A1B;
  }
  .cost-flag .ico{flex-shrink:0;width:20px;height:20px;margin-top:1px;}
  .cost-flag .ico svg{width:20px;height:20px;stroke:var(--caution);}

  .scope-box{
    background:#F5F1E4;border:1.5px dashed var(--gold);border-radius:10px;
    padding:12px 14px;font-size:13px;
  }
  .scope-box .allow{color:var(--teal-deep);font-weight:700;display:inline-flex;align-items:center;gap:5px;}
  .scope-box .deny{color:var(--caution);font-weight:700;display:inline-flex;align-items:center;gap:5px;}
  .scope-box svg{width:13px;height:13px;vertical-align:-2px;}

  .reset-progress{
    display:flex;align-items:center;justify-content:center;gap:7px;
    width:100%;margin-top:4px;background:none;border:1.5px solid var(--line);
    border-radius:10px;padding:10px;font-size:12.5px;color:var(--ink-soft);cursor:pointer;
  }
  .reset-progress svg{width:14px;height:14px;}
  .reset-progress:hover{border-color:var(--caution);color:var(--caution);}

  footer.legal{
    text-align:center;font-size:11.5px;color:var(--ink-soft);
    padding:24px 24px 8px;line-height:1.6;
  }
  .legal-links{
    margin-top:14px;display:flex;flex-wrap:wrap;justify-content:center;
    align-items:center;gap:2px;
  }
  .legal-link{
    background:none;border:none;color:var(--teal-deep);font-size:11.5px;font-weight:600;
    cursor:pointer;padding:4px 6px;text-decoration:underline;text-underline-offset:2px;
  }
  .legal-link:hover{color:var(--teal);}
  .legal-sep{color:var(--line);padding:0 1px;}

  /* ---------- Help Directory (Saan Humingi ng Tulong) ---------- */
  .help-banner{
    margin:14px 18px;padding:12px 14px;
    background:#FBEFE6;border:1.5px solid #D98A4A;border-radius:10px;
    display:flex;align-items:center;gap:10px;cursor:pointer;width:calc(100% - 36px);
    text-align:left;
  }
  .help-banner svg{width:20px;height:20px;color:#B85C1E;flex-shrink:0;}
  .help-banner .txt strong{display:block;font-size:13.5px;color:#8A3F0F;}
  .help-banner .txt span{font-size:12px;color:#9C5A29;}
  .help-banner .chevron{margin-left:auto;color:#B85C1E;position:static;transform:none;}

  .help-entry{
    background:var(--paper-raised);border:1.5px solid var(--line);border-radius:12px;
    padding:15px 16px;margin-bottom:12px;
  }
  .help-entry h3{font-family:var(--serif);font-size:15.5px;margin:0 0 4px;color:var(--ink);}
  .help-entry p.desc{font-size:13px;color:var(--ink-soft);margin:0 0 10px;}
  .help-entry .row{display:flex;align-items:center;gap:8px;font-size:13px;margin-bottom:6px;}
  .help-entry .row svg{width:15px;height:15px;flex-shrink:0;color:var(--teal);}
  .help-entry .row a{color:var(--teal-deep);font-weight:600;text-decoration:none;}
  .help-entry .row a:hover{text-decoration:underline;}
  .help-entry .find-local{font-size:12px;color:var(--ink-soft);font-style:italic;margin-top:8px;padding-top:8px;border-top:1px dashed var(--line);}
  .help-asof{text-align:center;font-size:11.5px;color:var(--ink-soft);margin:4px 0 16px;font-style:italic;}
  .help-emergency{
    display:flex;gap:10px;align-items:flex-start;background:var(--caution-pale);
    border:1.5px solid var(--caution);border-radius:10px;padding:12px 14px;margin-bottom:16px;font-size:13px;color:#5A2A1B;
  }
  .help-emergency svg{width:19px;height:19px;flex-shrink:0;color:var(--caution);}

  /* ---------- PWA install banner ---------- */
  .install-banner{
    position:fixed;left:0;right:0;bottom:0;z-index:20;
    background:var(--teal-deep);color:var(--paper-raised);
    padding:12px 16px;display:flex;align-items:center;gap:12px;
    box-shadow:0 -4px 16px rgba(0,0,0,0.18);
  }
  .install-banner .brand-mark{width:32px;height:32px;background:#2B2E31;border-radius:8px;flex-shrink:0;display:flex;align-items:center;justify-content:center;}
  .install-banner .brand-mark svg{width:18px;height:18px;}
  .install-banner .txt{flex:1;min-width:0;}
  .install-banner .txt strong{display:block;font-size:13px;}
  .install-banner .txt span{font-size:11.5px;opacity:.85;}
  .install-banner button{flex-shrink:0;}
  .install-btn{
    background:var(--paper-raised);color:var(--teal-deep);border:none;border-radius:100px;
    padding:8px 14px;font-size:12.5px;font-weight:700;cursor:pointer;
  }
  .install-dismiss{
    background:none;border:none;color:var(--paper-raised);opacity:.75;cursor:pointer;
    padding:6px;display:flex;
  }
  .install-dismiss svg{width:16px;height:16px;}
  @media (min-width:640px){ .install-banner{ left:50%; transform:translateX(-50%); max-width:640px; bottom:16px; border-radius:12px; } }

  /* ---------- First-launch consent gate (blocking) ---------- */
  .consent-overlay{
    position:fixed;inset:0;z-index:100;
    background:rgba(20,24,22,0.72);
    display:flex;align-items:flex-end;justify-content:center;
  }
  @media (min-width:640px){ .consent-overlay{ align-items:center; } }
  .consent-modal{
    background:var(--paper-raised);width:100%;max-width:560px;
    max-height:88vh;overflow-y:auto;
    border-radius:20px 20px 0 0;padding:24px 22px 20px;
  }
  @media (min-width:640px){ .consent-modal{ border-radius:16px; } }
  .consent-modal h2{
    font-family:var(--serif);font-size:19px;margin:0 0 4px;color:var(--ink);
    display:flex;align-items:center;gap:9px;
  }
  .consent-modal h2 svg{width:22px;height:22px;color:var(--teal-deep);flex-shrink:0;}
  .consent-modal .en-sub{font-size:12px;color:var(--ink-soft);font-style:italic;margin:0 0 16px;}
  .consent-block{
    background:var(--paper);border:1.5px solid var(--line);border-radius:10px;
    padding:12px 14px;margin-bottom:10px;font-size:13px;line-height:1.55;color:var(--ink);
  }
  .consent-block strong{color:var(--teal-deep);}
  .consent-block.warn{background:var(--caution-pale);border-color:var(--caution);color:#5A2A1B;}
  .consent-block.warn strong{color:#5A2A1B;}
  .consent-checkline{
    display:flex;align-items:flex-start;gap:9px;margin:14px 0 4px;
    font-size:12.5px;color:var(--ink-soft);
  }
  .consent-checkline input{margin-top:2px;flex-shrink:0;width:18px;height:18px;}
  .consent-readmore{font-size:12px;color:var(--teal-deep);font-weight:700;text-decoration:underline;background:none;border:none;cursor:pointer;padding:0;margin-bottom:10px;display:inline-block;}
  .consent-actions{display:flex;gap:10px;margin-top:16px;}
  .consent-agree-btn{
    flex:2;background:var(--teal-deep);color:#fff;border:none;border-radius:11px;
    padding:13px;font-size:14px;font-weight:700;cursor:pointer;
  }
  .consent-agree-btn:disabled{background:var(--line);color:var(--ink-soft);cursor:not-allowed;}
  .consent-disagree-btn{
    flex:1;background:none;color:var(--ink-soft);border:1.5px solid var(--line);border-radius:11px;
    padding:13px;font-size:13px;font-weight:600;cursor:pointer;
  }
  .consent-blocked-screen{
    position:fixed;inset:0;z-index:100;background:var(--paper);
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    text-align:center;padding:32px;
  }
  .consent-blocked-screen svg{width:40px;height:40px;color:var(--ink-soft);margin-bottom:14px;}
  .consent-blocked-screen h2{font-family:var(--serif);font-size:18px;margin:0 0 8px;color:var(--ink);}
  .consent-blocked-screen p{font-size:13.5px;color:var(--ink-soft);max-width:360px;margin:0 0 18px;}
  .consent-reconsider-btn{
    background:var(--teal-deep);color:#fff;border:none;border-radius:100px;
    padding:10px 20px;font-size:13px;font-weight:700;cursor:pointer;
  }
