/* Horizons — app skin. Loaded AFTER each app page's own CSS (login, signup, checkout, portal, admin).
   Re-themes tokens, fonts, backgrounds and buttons, in light and dark. Markup and scripts are untouched. */
:root{
  --color-primary:#1F3654;
  --color-primary-dark:#0C1A2E;
  --color-primary-light:#2B4A72;
  --color-secondary:#C4211F;
  --color-accent:#C4211F;
  --color-accent-hover:#9B1B19;
  --color-logo-start:#1F3654;
  --color-logo-end:#C4211F;
  --color-bg:#F3F6FA;
  --color-bg-alt:#FFFFFF;
  --color-card-bg:#FFFFFF;
  --color-text:#0C1A2E;
  --color-text-muted:#566780;
  --color-border:#DCE3EC;
  --font-main:"Instrument Sans","Segoe UI",system-ui,sans-serif;
  --hz-display:"Bricolage Grotesque","Segoe UI",system-ui,sans-serif;
  --hz-bg:#F3F6FA; --hz-card:#FFFFFF; --hz-card-2:#F3F6FA; --hz-line:#DCE3EC; --hz-field:#F3F6FA;
  --hz-text:#0C1A2E; --hz-mute:#566780; --hz-link:#1F3654; --hz-accent:#C4211F;
  --hz-shadow:0 40px 70px -46px rgba(12,26,46,.45);
  --hz-hdr:rgba(255,255,255,.9);
}
[data-theme="dark"]{
  --color-primary:#8FB0DC;
  --color-primary-dark:#0C1A2E;
  --color-primary-light:#B7CCE8;
  --color-secondary:#E0403B;
  --color-accent:#E0403B;
  --color-accent-hover:#F26A66;
  --color-logo-start:#8FB0DC;
  --color-logo-end:#E0403B;
  --color-bg:#08111F;
  --color-bg-alt:#0F1C30;
  --color-card-bg:#0F1C30;
  --color-text:#E8EEF7;
  --color-text-muted:#9FB1C9;
  --color-border:#22344F;
  --hz-bg:#08111F; --hz-card:#0F1C30; --hz-card-2:#13233B; --hz-line:#22344F; --hz-field:#0A1424;
  --hz-text:#E8EEF7; --hz-mute:#9FB1C9; --hz-link:#A9C4EA; --hz-accent:#F26A66;
  --hz-shadow:0 40px 70px -40px rgba(0,0,0,.8);
  --hz-hdr:rgba(15,28,48,.9);
  color-scheme:dark;
}
body,input,select,textarea,button{font-family:var(--font-main)!important}
h1,h2,h3,h4,.tab-header h1,.content-card h3,.stat-value,.order-amount,.pkg-price,.checkout-card-title,.portal-title,[style*="Cormorant"]{font-family:var(--hz-display)!important;letter-spacing:-.02em}
h1,h2,h3{font-weight:600}
:focus-visible{outline:3px solid #E0403B!important;outline-offset:2px}

/* buttons: pills, crimson primary */
.portal-btn,.checkout-btn,.checkout-btn-primary,.checkout-btn-secondary,.checkout-btn-success,.hcq-btn{border-radius:999px!important}
.portal-btn-primary,.checkout-btn-primary,.checkout-btn-success{background:#C4211F!important;background-image:none!important;border-color:#C4211F!important;color:#fff!important;box-shadow:0 10px 24px -12px rgba(196,33,31,.75)!important}
.portal-btn-primary:hover,.checkout-btn-primary:hover,.checkout-btn-success:hover{background:#E0403B!important;border-color:#E0403B!important}
.portal-btn-outline,.checkout-btn-secondary{background:var(--hz-card)!important;color:var(--hz-text)!important;border:1.5px solid var(--hz-line)!important}
.portal-btn-outline:hover,.checkout-btn-secondary:hover{border-color:var(--hz-link)!important}

/* ---------- login / signup / checkout-redirect ---------- */
.portal-auth-wrap{background:linear-gradient(180deg,#FFFFFF,#E9EFF8)!important;background-image:linear-gradient(180deg,#FFFFFF,#E9EFF8)!important;isolation:isolate}
[data-theme="dark"] .portal-auth-wrap{background:#0C1A2E!important;background-image:none!important}
.portal-auth-wrap::before{filter:none!important;z-index:0!important;background:
  radial-gradient(60% 55% at 85% 100%,rgba(196,33,31,.14),transparent 70%),
  radial-gradient(50% 50% at 10% 0%,rgba(43,74,114,.12),transparent 70%),
  linear-gradient(rgba(12,26,46,.045) 1px,transparent 1px) 0 0/64px 64px,
  linear-gradient(90deg,rgba(12,26,46,.045) 1px,transparent 1px) 0 0/64px 64px!important}
[data-theme="dark"] .portal-auth-wrap::before{background:
  radial-gradient(60% 55% at 85% 100%,rgba(196,33,31,.5),transparent 70%),
  radial-gradient(50% 50% at 10% 0%,rgba(43,74,114,.55),transparent 70%),
  linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px) 0 0/64px 64px,
  linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px) 0 0/64px 64px!important}
.portal-auth-form-side{position:relative;z-index:2}
.portal-auth-card{border-radius:28px!important;background:var(--hz-card)!important;border:1px solid var(--hz-line)!important;box-shadow:var(--hz-shadow)!important;color:var(--hz-text)!important}
.portal-auth-card h1,.portal-auth-card h2,.portal-auth-card label{color:var(--hz-text)!important}
.portal-auth-card h1{font-size:clamp(28px,3vw,36px)}
.portal-auth-card p,.portal-auth-card .muted,.portal-auth-footer{color:var(--hz-mute)!important}
.portal-auth-step{font-family:"JetBrains Mono",ui-monospace,monospace!important;letter-spacing:.14em!important;color:var(--hz-accent)!important;background:var(--hz-card-2)!important;border-color:var(--hz-line)!important}
.portal-auth-field input,.portal-auth-card input,.portal-auth-card select,.portal-auth-card textarea{border-radius:14px!important;border:1.5px solid var(--hz-line)!important;background:var(--hz-field)!important;color:var(--hz-text)!important}
.portal-auth-card input::placeholder{color:var(--hz-mute)!important;opacity:.7}
.portal-auth-field input:focus,.portal-auth-card input:focus{border-color:var(--hz-link)!important;background:var(--hz-card)!important}
.portal-auth-field-icon{color:var(--hz-mute)!important}
.portal-auth-footer a{color:var(--hz-accent)!important}
.portal-auth-card .portal-auth-panel-logo{content:url("/images/mark.png");width:56px!important;height:auto!important;margin-bottom:14px}
[data-theme="dark"] .portal-auth-card .portal-auth-panel-logo{background:#fff;border-radius:14px;padding:8px;box-sizing:content-box}
.portal-msg{border-radius:14px!important}

/* ---------- checkout / questionnaire ---------- */
body.checkout-page{background:var(--hz-bg)!important;background-image:none!important;color:var(--hz-text)!important}
.checkout-header{background:var(--hz-hdr)!important;backdrop-filter:blur(12px);border-bottom:1px solid var(--hz-line)!important}
[data-theme="dark"] .checkout-logo img{background:#fff;border-radius:12px;padding:3px 8px}
.checkout-card .form-input,.checkout-card .form-select,.checkout-card input,.checkout-card select,.checkout-card textarea{box-sizing:border-box;max-width:100%}
.checkout-card{border-radius:28px!important;border:1px solid var(--hz-line)!important;box-shadow:var(--hz-shadow)!important;background:var(--hz-card)!important;color:var(--hz-text)!important;overflow:hidden}
.checkout-card-header{background:var(--hz-card-2)!important;background-image:none!important;border-bottom:1px solid var(--hz-line)!important}
.checkout-card-body{background:var(--hz-card)!important}
.checkout-card-title{font-size:clamp(24px,2.6vw,32px)!important;line-height:1.15!important;color:var(--hz-text)!important}
.checkout-card-subtitle,.checkout-card p{color:var(--hz-mute)!important}
.checkout-card label,.checkout-card h2,.checkout-card h3,.checkout-card h4,.checkout-card strong{color:var(--hz-text)!important}
.checkout-card input,.checkout-card select,.checkout-card textarea{border-radius:14px!important;background:var(--hz-field)!important;color:var(--hz-text)!important;border:1.5px solid var(--hz-line)!important}
.checkout-card input::placeholder,.checkout-card textarea::placeholder{color:var(--hz-mute)!important;opacity:.7}
.checkout-card input:focus,.checkout-card select:focus,.checkout-card textarea:focus{border-color:var(--hz-link)!important;box-shadow:0 0 0 3px rgba(120,150,200,.22)!important}
.checkout-card a{color:var(--hz-link)}
.checkout-back{color:var(--hz-link)!important}
.checkout-card [style*="background:#f"],.checkout-card [style*="background: #f"],.checkout-card [style*="background:white"],.checkout-card [style*="background:#fff"]{background:var(--hz-card-2)!important}
.checkout-card [style*="color:#"],.checkout-card [style*="color: #"]{color:var(--hz-mute)}
.checkout-page [class*="summary"],.checkout-page [class*="order"],.checkout-page [class*="package"],.checkout-page [class*="footer"]{background-color:var(--hz-card-2)!important;color:var(--hz-text)!important;border-color:var(--hz-line)!important}

/* ---------- portal / admin ---------- */
.tab-header h1{font-weight:600!important}
.content-card,.stat-card{border-radius:20px!important}
.portal-pill{border-radius:999px!important}

/* floating theme toggle (login / signup / checkout) */
.hz-theme-fab{position:fixed;left:18px;bottom:18px;z-index:9998;width:46px;height:46px;border-radius:50%;border:1px solid var(--hz-line);background:var(--hz-card);color:var(--hz-text);display:grid;place-items:center;cursor:pointer;box-shadow:0 12px 30px -14px rgba(12,26,46,.5);transition:transform .2s}
.hz-theme-fab:hover{transform:rotate(18deg)}
.hz-theme-fab .hz-sun{display:none}
[data-theme="dark"] .hz-theme-fab .hz-sun{display:block}
[data-theme="dark"] .hz-theme-fab .hz-moon{display:none}

/* ===== chatbot skin (overrides the widget's injected styles; no change to js/hc-chatbot.js) ===== */
#hc-chatbot-widget{font-family:"Instrument Sans","Segoe UI",system-ui,sans-serif!important}
#hc-chatbot-widget #hc-chatbot-panel{background:#fff;border:1px solid #DCE3EC;border-radius:22px;box-shadow:0 30px 70px -20px rgba(12,26,46,.4)}
#hc-chatbot-widget #hc-chatbot-header{background:linear-gradient(120deg,#1F3654,#C4211F);padding:14px 16px}
#hc-chatbot-widget #hc-chatbot-header h4{font-family:"Bricolage Grotesque","Segoe UI",sans-serif;letter-spacing:0}
#hc-chatbot-widget #hc-chatbot-messages{background:#F3F6FA}
#hc-chatbot-widget #hc-chatbot-messages .hc-msg--bot,#hc-chatbot-widget #hc-chatbot-messages .hc-typing{background:#fff;border-color:#DCE3EC;color:#0C1A2E}
#hc-chatbot-widget #hc-chatbot-messages .hc-msg--user{background:#1F3654}
#hc-chatbot-widget #hc-chatbot-footer{background:#fff;border-top-color:#DCE3EC}
#hc-chatbot-widget #hc-chatbot-input{background:#F3F6FA;color:#0C1A2E;border-color:#DCE3EC;border-radius:999px;padding:10px 16px}
#hc-chatbot-widget #hc-chatbot-input:focus{border-color:#1F3654;box-shadow:0 0 0 3px rgba(31,54,84,.12)}
#hc-chatbot-widget #hc-chatbot-send{background:#C4211F;border-radius:999px}
#hc-chatbot-widget #hc-chatbot-toggle{background:linear-gradient(135deg,#1F3654,#C4211F)}
[data-theme="dark"] #hc-chatbot-widget #hc-chatbot-panel{background:#0F1C30;border-color:#22344F;box-shadow:0 30px 70px -20px rgba(0,0,0,.8)}
[data-theme="dark"] #hc-chatbot-widget #hc-chatbot-messages{background:#08111F}
[data-theme="dark"] #hc-chatbot-widget #hc-chatbot-messages .hc-msg--bot,[data-theme="dark"] #hc-chatbot-widget #hc-chatbot-messages .hc-typing{background:#16273F;border-color:#22344F;color:#E8EEF7}
[data-theme="dark"] #hc-chatbot-widget #hc-chatbot-messages .hc-msg--user{background:#2B4A72}
[data-theme="dark"] #hc-chatbot-widget #hc-chatbot-messages .hc-msg--error{background:rgba(224,64,59,.18);border-color:transparent;color:#FF9B97}
[data-theme="dark"] #hc-chatbot-widget #hc-chatbot-footer{background:#0F1C30;border-top-color:#22344F}
[data-theme="dark"] #hc-chatbot-widget #hc-chatbot-input{background:#0A1424;color:#E8EEF7;border-color:#22344F}
/* phones: a compact panel that leaves the page visible; input stays 16px so iOS doesn't zoom */
@media (max-width:600px){
  #hc-chatbot-widget{bottom:12px;right:12px}
  #hc-chatbot-widget #hc-chatbot-panel{width:min(360px,calc(100vw - 24px));height:clamp(300px,56vh,420px);height:clamp(300px,56dvh,420px);max-height:calc(100vh - 150px);max-height:calc(100dvh - 150px);border-radius:20px}
  #hc-chatbot-widget #hc-chatbot-header{padding:10px 14px}
  #hc-chatbot-widget #hc-chatbot-messages{padding:12px;gap:10px}
  #hc-chatbot-widget #hc-chatbot-messages .hc-msg{font-size:.88rem;padding:9px 12px}
  #hc-chatbot-widget #hc-chatbot-footer{padding:10px}
  #hc-chatbot-widget #hc-chatbot-input{font-size:16px}
  #hc-chatbot-widget #hc-chatbot-toggle{width:52px;height:52px}
}

/* auth field icons: centre on the input itself (not on label+input) */
.portal-auth-field input:not([type=hidden]){height:52px!important}
.portal-auth-field .portal-auth-field-icon,.portal-auth-field:has(label) .portal-auth-field-icon{top:auto!important;bottom:26px!important;transform:translateY(50%)!important}
.portal-auth-field label{min-height:0!important;line-height:1.3!important}
.portal-auth-field textarea,.portal-auth-field select{width:100%!important;box-sizing:border-box!important}
.portal-auth-field select{height:52px!important}
.portal-auth-field:has(textarea) .portal-auth-field-icon{top:41px!important;bottom:auto!important;transform:none!important}
.portal-auth-field:has(.portal-auth-field-icon) textarea{padding-left:3rem!important}
