:root{
  --navy:#0d1b3e; --navy-2:#14264f; --coral:#ff6b4a; --coral-d:#e85636;
  --ink:#0d1b3e; --muted:#6b7793; --line:#e6e9f2; --bg:#f4f6fb; --white:#fff;
  --ok:#137a3f; --err:#b23b22; --warn:#9a6b00;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:'Inter',system-ui,sans-serif;background:var(--bg);color:var(--ink);line-height:1.5}
.hidden{display:none!important}

/* Accessibility: visible focus for keyboard users */
:focus-visible{outline:3px solid rgba(255,107,74,.55);outline-offset:2px;border-radius:8px}

/* Header / branding */
.ph-header{background:var(--navy);padding:18px 24px}
.ph-brand{max-width:960px;margin:0 auto}
.ph-logo{font-family:'Sora',sans-serif;font-weight:800;font-size:22px;color:#fff;letter-spacing:-.5px}
.ph-logo-accent{color:var(--coral)}

/* Layout */
.ph-main{max-width:560px;margin:40px auto;padding:0 16px}
.ph-card{background:var(--white);border-radius:18px;padding:32px;box-shadow:0 18px 50px rgba(13,27,62,.10);border:1px solid var(--line)}

/* Loading + spinner */
.ph-loading{display:flex;align-items:center;justify-content:center;gap:12px;padding:48px 24px;text-align:center;color:var(--muted);font-size:15px}
.ph-spinner{width:20px;height:20px;border:3px solid var(--line);border-top-color:var(--coral);border-radius:50%;animation:ph-spin .7s linear infinite;flex:none}
@keyframes ph-spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion: reduce){.ph-spinner{animation-duration:2s}}

/* Promo banner */
.ph-banner{display:block;margin:0 0 22px;border-radius:14px;overflow:hidden;border:1px solid var(--line);box-shadow:0 8px 24px rgba(13,27,62,.08);transition:transform .15s ease,box-shadow .15s ease}
.ph-banner:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(13,27,62,.14)}
.ph-banner-img{display:block;width:100%;height:auto}

/* Account/token notice */
.ph-notice{border-radius:12px;padding:12px 14px;margin-bottom:16px;font-size:14px;border:1px solid}
.ph-notice.info{background:#eef3ff;border-color:#d3ddf7;color:var(--navy)}
.ph-notice.err{background:#fff1ec;border-color:#ffd3c7;color:var(--err)}

/* Headings */
.ph-greeting{margin:0 0 4px;color:var(--coral);font-weight:600;font-size:14px}
.ph-title{font-family:'Sora',sans-serif;font-weight:700;font-size:26px;margin:0 0 6px;color:var(--navy)}
.ph-sub{margin:0 0 22px;color:var(--muted);font-size:14px}

.ph-warning{background:#fff4f0;border:1px solid #ffd3c7;color:var(--err);border-radius:12px;padding:12px 14px;margin-bottom:18px;font-size:14px}

/* Inputs */
.ph-label{display:block;font-weight:600;font-size:13px;color:var(--navy);margin:16px 0 8px}
.ph-select,.ph-input{width:100%;padding:13px 14px;border:1.5px solid var(--line);border-radius:11px;font-size:15px;background:#fbfcfe;color:var(--ink);transition:border-color .15s ease}
.ph-select:focus,.ph-input:focus{outline:none;border-color:var(--navy)}

/* Plans */
.ph-plans{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ph-plan{position:relative;border:1.5px solid var(--line);border-radius:12px;padding:14px;cursor:pointer;transition:border-color .15s ease,background .15s ease,transform .1s ease;background:#fbfcfe}
.ph-plan:hover{border-color:#b9c2dc}
.ph-plan:active{transform:scale(.99)}
.ph-plan.selected{border-color:var(--coral);background:#fff6f3}
.ph-plan.selected::after{content:"✓";position:absolute;top:10px;right:12px;width:20px;height:20px;line-height:20px;text-align:center;border-radius:50%;background:var(--coral);color:#fff;font-size:12px;font-weight:700}
.ph-plan .p-name{font-weight:700;color:var(--navy)}
.ph-plan .p-price{margin-top:4px;font-size:16px;font-weight:600;color:var(--ink)}

/* Promo */
.ph-promo-row{display:flex;gap:8px}
.ph-promo-row .ph-input{flex:1}
.ph-promo-msg{font-size:13px;margin-top:8px;min-height:18px}
.ph-promo-msg.ok{color:var(--ok)}.ph-promo-msg.err{color:var(--err)}

/* Summary */
.ph-summary{margin:22px 0;border-top:1px dashed var(--line);padding-top:16px}
.ph-summary-row{display:flex;justify-content:space-between;font-size:14px;color:var(--muted);margin-bottom:8px}
.ph-summary-total{font-size:18px;font-weight:700;color:var(--navy)}

/* Buttons */
.ph-btn{border:none;border-radius:11px;padding:12px 16px;font-weight:700;font-size:14px;cursor:pointer;font-family:'Inter',sans-serif;transition:background .15s ease,transform .1s ease,border-color .15s ease}
.ph-btn:active{transform:scale(.99)}
.ph-btn-accent{background:var(--coral);color:#fff}
.ph-btn-accent:hover{background:var(--coral-d)}
.ph-btn-accent:disabled{background:#f1a892;cursor:not-allowed;transform:none}
.ph-btn-outline{background:#fff;color:var(--navy);border:1.5px solid var(--line)}
.ph-btn-outline:hover{border-color:#b9c2dc}
.ph-btn-lg{width:100%;padding:16px;font-size:16px;margin-top:8px}

/* Result states */
.ph-result{margin-top:16px;font-size:15px;text-align:center;font-weight:600;min-height:1px}
.ph-result.ok{color:var(--ok)}
.ph-result.err{color:var(--err)}
.ph-result.warn{color:var(--warn)}

.ph-secure{margin:18px 0 0;text-align:center;color:var(--muted);font-size:12px}
.ph-lock{margin-right:4px}

.ph-footer{text-align:center;color:var(--muted);font-size:12px;padding:24px}

/* Responsive: tablet & mobile */
@media(max-width:768px){
  .ph-main{margin:28px auto}
  .ph-card{padding:26px}
}
@media(max-width:480px){
  .ph-plans{grid-template-columns:1fr}
  .ph-card{padding:20px;border-radius:14px}
  .ph-title{font-size:22px}
  .ph-main{margin:18px auto}
}
