/* ============================================================
   Advisor Accelerator — Shared Design System
   Use this file in every tool by adding:
   <link rel="stylesheet" href="shared.css">
   ============================================================ */

/* ── Reset & Base ─────────────────────────────────────────── */
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Fira Sans',sans-serif;background:#F5F5F5;color:#1E1E1E;line-height:1.6}

/* ── Brand Tokens ─────────────────────────────────────────── */
:root{
  --cyan:#009DD3;       /* Primary — buttons, headers, active states  */
  --orange:#F6801F;     /* Accent  — warnings, CTAs, emphasis          */
  --electric:#00F0FF;   /* Highlight — accents, glows                  */
  --charcoal:#1E1E1E;   /* Body text                                   */
  --white:#FFFFFF;      /* Backgrounds, cards                          */
  --gray:#F5F5F5;       /* Alternating sections, subtle fills          */
  --green:#2a9d5c;      /* Success states                              */
}

/* ── Header / Top Bar ─────────────────────────────────────── */
.top-bar{
  background:var(--white);
  padding:10px 24px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  position:sticky;
  top:0;
  z-index:50;
  box-shadow:0 2px 12px rgba(0,0,0,.1);
}
.top-bar .brand-wrap{display:flex;align-items:center;gap:10px}
.top-bar .brand-logo{height:36px;width:auto;display:block}
.top-bar .brand{color:var(--charcoal);font-weight:700;font-size:18px;letter-spacing:.5px}
.top-bar .brand span{color:var(--charcoal)}

/* ── Progress Dots ────────────────────────────────────────── */
.progress-wrap{display:flex;align-items:center;gap:8px}
.step-dot{width:10px;height:10px;border-radius:50%;background:#ddd;transition:background .3s}
.step-dot.active{background:var(--cyan)}
.step-dot.done{background:#009DD380}

/* ── Layout ───────────────────────────────────────────────── */
.container{max-width:780px;margin:0 auto;padding:40px 20px 80px}

/* ── Cards ────────────────────────────────────────────────── */
.card{background:var(--white);border-radius:12px;padding:40px;box-shadow:0 2px 16px rgba(0,0,0,.07);margin-bottom:24px}
.card-cyan{border-top:4px solid var(--cyan)}
.card-orange{border-top:4px solid var(--orange)}

/* ── Typography ───────────────────────────────────────────── */
h1{font-size:2rem;font-weight:700;line-height:1.2;margin-bottom:12px}
h2{font-size:1.5rem;font-weight:700;margin-bottom:10px}
h3{font-size:1.15rem;font-weight:700;margin-bottom:8px}
p{margin-bottom:14px}
ul,ol{padding-left:22px;margin-bottom:14px}
li{margin-bottom:6px}

/* ── Buttons ──────────────────────────────────────────────── */
.btn{display:inline-block;padding:14px 28px;border-radius:8px;font-family:'Fira Sans',sans-serif;font-size:16px;font-weight:700;cursor:pointer;border:none;transition:opacity .2s,transform .1s;text-align:center}
.btn:hover:not(:disabled){opacity:.88;transform:translateY(-1px)}
.btn:active:not(:disabled){transform:translateY(0)}
.btn:disabled{opacity:.45;cursor:not-allowed}
.btn-cyan{background:var(--cyan);color:var(--white)}
.btn-orange{background:var(--orange);color:var(--white)}
.btn-gray{background:#ddd;color:var(--charcoal)}
.btn-outline{background:transparent;border:2px solid var(--cyan);color:var(--cyan)}
.btn-full{width:100%;margin-top:16px}
.btn-row{display:flex;gap:14px;flex-wrap:wrap;margin-top:24px}

/* ── Form Inputs ──────────────────────────────────────────── */
textarea{width:100%;min-height:160px;padding:14px;border:2px solid #ddd;border-radius:8px;font-family:'Fira Sans',sans-serif;font-size:15px;resize:vertical;transition:border-color .2s}
textarea:focus{outline:none;border-color:var(--cyan)}
input[type="text"],input[type="password"],input[type="email"]{font-family:'Fira Sans',sans-serif}
.char-counter{font-size:13px;color:#777;margin-top:6px;margin-bottom:16px}
.char-counter.ok{color:var(--green)}
.char-counter.warn{color:var(--orange)}
.word-counter{font-size:13px;margin-top:6px;margin-bottom:16px;color:#777}
.word-counter.over{color:var(--orange)}

/* ── Step Label / Question ────────────────────────────────── */
.step-label{font-size:13px;font-weight:700;color:var(--cyan);text-transform:uppercase;letter-spacing:1px;margin-bottom:6px}
.step-question{font-size:1.6rem;font-weight:700;line-height:1.2;margin-bottom:16px}

/* ── Collapsible Example Box ──────────────────────────────── */
.example-toggle{background:none;border:none;color:var(--cyan);font-family:'Fira Sans',sans-serif;font-size:14px;cursor:pointer;padding:0;margin-bottom:8px;font-weight:600}
.example-box{background:var(--gray);border-radius:8px;padding:16px 20px;font-size:14px;margin-bottom:16px;display:none;border-left:4px solid var(--cyan)}
.example-box.open{display:block}

/* ── AI Validation Result ─────────────────────────────────── */
.validation-result{border-radius:8px;padding:20px;margin-top:16px;display:none}
.validation-result.pass{background:#e8f7ef;border:1px solid var(--green)}
.validation-result.fail{background:#fff4ec;border:1px solid var(--orange)}
.v-header{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.v-icon{font-size:22px}
.v-title{font-weight:700;font-size:16px}
.v-title.pass{color:var(--green)}
.v-title.fail{color:var(--orange)}
.issue-list li{margin-bottom:6px;color:#c0440a}
.rec-list li{margin-bottom:6px;color:#555}
.encouragement{font-style:italic;color:#555;margin-top:10px;font-size:14px}

/* ── Reassurance Box ──────────────────────────────────────── */
.reassurance{background:#e0f7ff;border-left:4px solid var(--cyan);border-radius:6px;padding:14px 18px;margin-top:20px;font-size:14px;color:var(--charcoal)}

/* ── Loading Spinner ──────────────────────────────────────── */
.spinner-wrap{text-align:center;padding:40px}
.spinner{display:inline-block;width:48px;height:48px;border:5px solid #ddd;border-top-color:var(--cyan);border-radius:50%;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.spinner-label{margin-top:14px;color:#777;font-size:15px}

/* ── Success Banner ───────────────────────────────────────── */
.success-banner{background:var(--cyan);color:var(--white);border-radius:12px;padding:32px;text-align:center;margin-bottom:28px}
.success-banner h1{color:var(--white)}

/* ── Output Sections ──────────────────────────────────────── */
.output-section{margin-bottom:24px}
.output-section-header{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:1px;margin-bottom:8px}
.output-section-header.cyan{color:var(--cyan)}
.output-section-header.orange{color:var(--orange)}
.output-body{font-size:16px;line-height:1.7;color:var(--charcoal)}
.stat-box{background:var(--gray);border-radius:8px;padding:20px;text-align:center;font-size:15px;color:#555;margin-top:20px}
.stat-box strong{color:var(--cyan)}

/* ── API Key Modal ────────────────────────────────────────── */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:100}
.modal-box{background:var(--white);border-radius:12px;padding:32px;max-width:460px;width:90%}
.modal-box h2{margin-bottom:8px}
.modal-box p{color:#555;font-size:14px;margin-bottom:16px}
.api-input{width:100%;padding:12px;border:2px solid #ddd;border-radius:8px;font-family:'Fira Sans',sans-serif;font-size:15px;margin-bottom:12px}
.api-input:focus{outline:none;border-color:var(--cyan)}
.api-hint{font-size:12px;color:#aaa;margin-bottom:16px}

/* ── Utility ──────────────────────────────────────────────── */
.hidden{display:none!important}
hr.divider{border:none;border-top:1px solid #eee;margin:20px 0}
