/* ============================================================
   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;flex:1}
.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)}
.top-bar-tool{display:flex;align-items:center;gap:8px;font-weight:700;font-size:15px;color:var(--charcoal)}
#topBarUser{flex:1;display:flex;justify-content:flex-end;align-items:center}

/* ── 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)}
.card-amber{border-top:4px solid #D97706}
.card-green{border-top:4px solid #2a9d5c}
.card-red{border-top:4px solid #E55A2B}
.card-teal{border-top:4px solid #0DA898}
.card-blue{border-top:4px solid #1A7CC5}
.card-purple{border-top:4px solid #7C5CBF}
a.top-bar-tool{text-decoration:none;cursor:pointer}
a.top-bar-tool:hover{opacity:.8}

/* ── 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}

/* ── Gate Screen (prerequisite checks) ───────────────────── */
.gate-check{display:flex;align-items:center;gap:14px;background:#fff;border:1.5px solid #e8e8e8;border-radius:10px;padding:16px 20px;margin-bottom:10px}
.gate-check.complete{border-color:var(--green);background:#f4fbf7}
.gate-check.incomplete{border-color:#f4c0c0;background:#fff8f8}
.gate-icon{font-size:22px;flex-shrink:0}
.gate-text{flex:1}
.gate-text strong{display:block;font-size:15px;font-weight:700;margin-bottom:2px}
.gate-text span{font-size:13px;color:#777}
.gate-action{flex-shrink:0}

/* ── Success Banner ───────────────────────────────────────── */
.success-banner{background:var(--green);color:#fff;border-radius:12px;padding:18px 24px;margin-bottom:16px;display:flex;align-items:center;gap:14px}
.success-banner-emoji{font-size:28px;flex-shrink:0}
.success-banner-body{flex:1}
.success-banner h1{color:#fff;margin:0;font-size:1.1rem;font-weight:700}
.success-banner p{font-size:0.92rem;opacity:0.9;margin:3px 0 0}

/* ── 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}

/* ── Back Button ──────────────────────────────────────────── */
.btn-back{background:#eee;color:#555;border:none;font-family:'Fira Sans',sans-serif;font-size:15px;font-weight:700;padding:13px 22px;border-radius:8px;cursor:pointer;transition:background .2s}
.btn-back:hover{background:#ddd}

/* ── Results Page: Export Row ─────────────────────────────── */
.export-btn-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px;margin-bottom:16px}

/* ── Results Page: Nav Row (Back to Hub / Start Over) ─────── */
.result-nav-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-top:8px}
.result-nav-row a{color:var(--cyan);font-weight:700;font-size:15px;text-decoration:none}
.result-nav-row a:hover{text-decoration:underline}
.result-nav-row button{background:none;border:none;color:#888;font-family:'Fira Sans',sans-serif;font-size:15px;font-weight:600;cursor:pointer;padding:0}
.result-nav-row button:hover{color:var(--charcoal)}

/* ── AI Prompt Snippet Box ────────────────────────────────── */
.prompt-snippet-box{background:#f8f8f8;border:2px solid #e0e0e0;border-radius:10px;padding:20px;margin:20px 0}
.prompt-snippet-label{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--cyan);margin-bottom:4px}
.prompt-snippet-desc{font-size:13px;color:#777;margin-bottom:12px}
.prompt-snippet-wrap{position:relative}
.prompt-snippet-body{background:#f8f8f8;border:2px solid #e0e0e0;border-radius:8px;padding:14px;font-size:13px;line-height:1.6;color:var(--charcoal);white-space:pre-wrap;font-family:monospace;min-height:120px;max-height:320px;overflow-y:auto}
.prompt-snippet-copy{position:absolute;top:10px;right:10px;background:var(--cyan);color:#fff;border:none;border-radius:6px;font-family:'Fira Sans',sans-serif;font-size:13px;font-weight:700;padding:6px 14px;cursor:pointer;transition:opacity .2s}
.prompt-snippet-copy:hover{opacity:.85}

/* ── Tool Pull Banner ─────────────────────────────────────── */
.tool-pull-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;border-radius:8px;padding:12px 16px;margin-bottom:14px;flex-wrap:wrap}
.tool-pull-banner-ready{background:#e0f4ff;border:1.5px solid var(--cyan)}
.tool-pull-banner-tip{background:#f5f5f5;border:1.5px solid #ddd}
.tpb-text{display:flex;align-items:center;gap:10px;flex:1;min-width:0}
.tpb-icon{font-size:18px;flex-shrink:0}
.tpb-text strong{font-size:14px;font-weight:700;display:block}
.tpb-date{font-size:12px;color:#777;margin-top:1px}
.tpb-link{color:var(--cyan);font-weight:700;font-size:14px;text-decoration:none;white-space:nowrap;flex-shrink:0}
.tpb-link:hover{text-decoration:underline}

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

/* ── Profile button name ──────────────────────────────────── */
.profile-btn-name {
  font-weight: 600;
  font-size: 14px;
  color: #1E1E1E;
}

/* ── Top Bar Mobile ───────────────────────────────────────── */
@media(max-width:600px){
  .top-bar{padding:8px 14px}
  .top-bar .brand-logo{height:28px}
  .top-bar .brand{white-space:nowrap;font-size:14px}
  /* On tool pages (which have a .top-bar-tool), hide the brand text — only logo + tool name shows */
  .top-bar:has(.top-bar-tool) .brand { display:none }
  .profile-btn-name{display:none}
}
