/* ===== Site-specific styles (tokens from fallback.css / base.css) ===== */
main{max-width:1000px;margin:0 auto;padding:0 20px 64px}
a{color:var(--primary)}

/* header overrides (win over CDN base.css) */
header .logo{color:#fff}
header .logo-img{height:38px;width:38px;border-radius:9px;object-fit:cover}
header .logo-dot{color:var(--accent)}
header .header-main-link{color:rgba(255,255,255,.85)}
header .header-main-link:hover{color:#fff}
header .header-sub{color:#fff;opacity:.92}

.breadcrumb{font-size:.85rem;color:var(--muted);margin:22px 0 6px;display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.breadcrumb a{color:var(--muted);text-decoration:none}
.breadcrumb a:hover{color:var(--primary)}
.breadcrumb span{opacity:.5}

/* home hero */
.hero{text-align:center;padding:34px 0 8px}
.hero h1{font-size:2.1rem;line-height:1.2;margin:0 0 12px;color:var(--text)}
.hero p{color:var(--muted);font-size:1.05rem;margin:0 auto 22px;max-width:640px;line-height:1.6}
.search-wrap{max-width:560px;margin:0 auto}
.search-wrap input{width:100%;padding:14px 22px;font-family:var(--font);font-size:1rem;border:1px solid var(--border);border-radius:var(--radius-pill);background:#fff;color:var(--text);box-shadow:var(--shadow)}
.search-wrap input:focus{outline:none;border-color:var(--primary)}
.stats{display:flex;justify-content:center;gap:36px;margin:26px 0 30px;flex-wrap:wrap}
.stat{text-align:center}
.stat b{display:block;font-size:1.7rem;color:var(--primary);font-weight:800}
.stat span{color:var(--muted);font-size:.85rem}
.pills{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-bottom:30px}
.pill{border:1px solid var(--border);background:#fff;color:var(--text);border-radius:var(--radius-pill);padding:9px 16px;font-family:var(--font);font-size:.88rem;display:inline-flex;align-items:center;gap:7px;text-decoration:none;min-height:40px}
.pill:hover{border-color:var(--primary);color:var(--primary);background:#f4fbfe}
.pill .icn{color:var(--primary)}

/* hub (two-card chooser on home) */
.hub-badge{display:inline-block;background:#eef7fc;color:var(--primary);font-weight:600;font-size:.82rem;padding:6px 16px;border-radius:var(--radius-pill);margin-bottom:14px}
.hub-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin:30px 0 8px}
.hub-card{position:relative;display:flex;flex-direction:column;gap:10px;background:var(--card);border:1px solid var(--border);border-radius:18px;padding:30px 28px;box-shadow:var(--shadow);text-decoration:none;color:inherit;transition:transform .18s,box-shadow .18s,border-color .18s;overflow:hidden}
.hub-card::before{content:"";position:absolute;top:0;inset-inline-start:0;width:150px;height:150px;background:linear-gradient(135deg,rgba(40,170,225,.10),transparent 70%);pointer-events:none}
.hub-card:hover{border-color:var(--primary);transform:translateY(-3px);box-shadow:0 10px 30px rgba(20,40,70,.12)}
.hub-ic{width:62px;height:62px;border-radius:16px;background:#eef7fc;color:var(--primary);display:flex;align-items:center;justify-content:center;align-self:flex-end;position:relative}
.hub-title{font-size:1.5rem;font-weight:800;margin:4px 0 0;color:var(--text)}
.hub-desc{color:var(--muted);line-height:1.6;margin:0}
.hub-list{list-style:none;padding:0;margin:6px 0 0;display:flex;flex-direction:column;gap:8px}
.hub-list li{display:flex;align-items:flex-start;gap:8px;color:var(--text);font-size:.93rem;line-height:1.45}
.hub-list li::before{content:"✓";color:var(--primary);font-weight:800;flex:0 0 auto}
.hub-go{margin-top:10px;color:var(--primary);font-weight:700;display:inline-flex;align-items:center;gap:6px}
.hub-card:hover .hub-go{gap:10px}
@media (max-width:720px){.hub-grid{grid-template-columns:1fr}}

.cat-group{margin-bottom:34px}
.cat-group>h2{font-size:1.25rem;color:var(--text);display:flex;align-items:center;gap:10px;margin:0 0 14px}
.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}
.doc-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:18px;transition:all .18s;text-align:start;display:flex;flex-direction:column;gap:6px;font-family:var(--font);position:relative;text-decoration:none;color:inherit}
.doc-card:hover{border-color:var(--primary);box-shadow:var(--shadow);transform:translateY(-2px)}
.doc-card .dc-title{font-weight:700;color:var(--text);font-size:1.02rem}
.doc-card .dc-blurb{color:var(--muted);font-size:.85rem;line-height:1.5;flex:1}
.doc-card .dc-foot{display:flex;gap:8px;align-items:center;margin-top:4px;flex-wrap:wrap}
.tier-chip{font-size:.7rem;font-weight:600;padding:2px 9px;border-radius:var(--radius-pill);background:#eef7fc;color:var(--primary)}
.tier-chip.tool{background:#fff4e0;color:#a96f12}
.icn{display:inline-flex;align-items:center;justify-content:center;vertical-align:-.18em}
.icn svg{display:block}
.cat-ic{width:36px;height:36px;border-radius:10px;background:#eef7fc;color:var(--primary);display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}
.dc-ic{width:42px;height:42px;border-radius:11px;background:#eef7fc;color:var(--primary);display:flex;align-items:center;justify-content:center;margin-bottom:4px}
.dc-arrow{position:absolute;top:18px;left:18px;color:var(--primary);opacity:.35;transition:opacity .15s,transform .15s}
.doc-card:hover .dc-arrow{opacity:1;transform:translateX(-2px)}

/* article */
.article-hero h1{font-size:2rem;line-height:1.2;margin:8px 0 12px;color:var(--text)}
.article-meta{display:flex;gap:16px;flex-wrap:wrap;color:var(--muted);font-size:.85rem;margin-bottom:18px}
.article-meta span{display:inline-flex;align-items:center;gap:5px}
.meta-ic{color:var(--muted)}
.lead{font-size:1.08rem;line-height:1.7;color:var(--text)}
.prose{line-height:1.75;color:var(--text)}
.prose h2{font-size:1.3rem;margin:26px 0 10px;color:var(--text)}
.prose p{margin:0 0 12px}
.prose ul{margin:0 0 14px;padding-inline-start:22px}
.prose li{margin-bottom:7px}

.law-box{background:#f4fbfe;border:1px solid var(--border);border-radius:var(--radius);padding:18px 20px;margin:18px 0}
.law-box h3{margin:0 0 10px;font-size:1.02rem;color:var(--primary);display:flex;align-items:center;gap:8px}
.law-box ul{margin:0;padding-inline-start:20px}
.law-box li{margin-bottom:7px;line-height:1.55;color:var(--text);font-size:.92rem}
.law-box .src{font-size:.76rem;color:var(--muted);margin-top:8px}

.faq-item{border-bottom:1px solid var(--border);padding:14px 0}
.faq-item h3{margin:0 0 6px;font-size:1.02rem;color:var(--text)}
.faq-item p{margin:0;color:var(--muted);line-height:1.6}

/* tier selector */
.tier-selector{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin:8px 0 26px}
.tier-card{text-align:start;cursor:pointer;background:var(--card);border:2px solid var(--border);border-radius:var(--radius);padding:16px 18px;transition:all .18s;font-family:var(--font);display:flex;flex-direction:column;gap:5px}
.tier-card:hover{border-color:var(--primary);box-shadow:var(--shadow)}
.tier-card.active{border-color:var(--primary);box-shadow:var(--shadow);background:#f4fbfe}
.tier-num{width:28px;height:28px;border-radius:50%;background:var(--primary);color:#fff;font-weight:700;display:flex;align-items:center;justify-content:center;font-size:.9rem}
.tier-title{font-weight:700;color:var(--text);font-size:1rem}
.tier-sub{color:var(--muted);font-size:.83rem;line-height:1.45}
.tier-tag{align-self:flex-start;font-size:.7rem;font-weight:600;padding:2px 10px;border-radius:var(--radius-pill);margin-top:3px;background:#eef7fc;color:var(--primary)}
.tier-tag.tech{background:#fff4e0;color:#a96f12}
.tier-panel{display:none}
.tier-panel.active{display:block}
.panel-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow)}
.panel-card h3{margin:0 0 6px;color:var(--text);font-size:1.18rem}
.panel-card p.muted{color:var(--muted);margin:0 0 18px;line-height:1.6}
.btn-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:8px}

/* generator */
.gen-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start}
.gen-form{display:flex;flex-direction:column;gap:13px}
.field label{display:block;font-size:.85rem;font-weight:600;color:var(--text);margin-bottom:5px}
.field input[type=text],.field input[type=number],.field input[type=date]{width:100%;padding:11px 16px;border:1px solid var(--border);border-radius:var(--radius-pill);font-family:var(--font);font-size:.94rem;color:var(--text);background:#fff;min-height:44px}
.field input:focus,.field select:focus,.gen-form textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(40,170,225,.12)}
.field select{width:100%;padding:11px 16px;border:1px solid var(--border);border-radius:var(--radius-pill);font-family:var(--font);font-size:.94rem;color:var(--text);background:#fff;cursor:pointer;min-height:44px}
.gen-form textarea{width:100%;padding:10px 16px;border:1px solid var(--border);border-radius:14px;font-family:var(--font);font-size:.94rem;color:var(--text);resize:vertical}
.logo-drop{border:1.5px dashed var(--border);border-radius:var(--radius);padding:12px;text-align:center;color:var(--muted);font-size:.84rem;cursor:pointer;background:#fafdff}
.logo-drop:hover{border-color:var(--primary);color:var(--primary)}
.logo-drop input{display:none}
.doc-preview{background:#fff;border:1px solid var(--border);border-radius:8px;padding:26px 28px;font-size:.85rem;line-height:1.6;color:var(--text);min-height:300px;box-shadow:var(--shadow)}
.dp-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;border-bottom:2px solid var(--primary);padding-bottom:10px;margin-bottom:14px}
.dp-org{font-weight:800;font-size:1.05rem;color:var(--text)}
.dp-org small{display:block;font-weight:500;font-size:.76rem;color:var(--muted);margin-top:2px}
.dp-logo{max-height:52px;max-width:120px;object-fit:contain}
.dp-h1{text-align:center;font-size:1.1rem;font-weight:800;margin:4px 0 12px;color:var(--text)}
.dp-meta{display:flex;flex-wrap:wrap;gap:5px 20px;font-size:.8rem;color:var(--muted);margin-bottom:12px}
.dp-sec{font-weight:700;color:var(--primary);margin:12px 0 4px;font-size:.9rem}
.dp-line{border-bottom:1px dotted #c9d8e6;height:18px;margin:5px 0}
.dp-p{margin:6px 0}
.dp-clause{margin:5px 0}
.dp-foot{margin-top:18px;padding-top:9px;border-top:1px solid var(--border);font-size:.72rem;color:var(--muted);display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}
.dp-foot .brand{color:var(--primary);font-weight:700}

/* tools shared */
.tool-block{margin-bottom:20px}
.tool-block>h4{font-size:.95rem;color:var(--text);margin:0 0 10px;display:flex;align-items:center;gap:8px}
.tool-block>h4 .icn,.law-box h3 .icn{color:var(--primary)}
.inline-add{display:flex;gap:8px;flex-wrap:wrap}
.inline-add input{flex:1 1 200px;padding:10px 16px;border:1px solid var(--border);border-radius:var(--radius-pill);font-family:var(--font);font-size:.92rem;min-height:44px}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.chip{background:#eef7fc;color:var(--text);border-radius:var(--radius-pill);padding:6px 12px 6px 14px;font-size:.85rem;display:inline-flex;align-items:center;gap:8px}
.chip button{border:none;background:transparent;color:var(--muted);cursor:pointer;font-size:1rem;line-height:1;padding:0}
.chip button:hover{color:#d64545}
.quorum{margin-top:12px;font-size:.88rem;padding:10px 14px;border-radius:10px;display:flex;justify-content:space-between;align-items:center;gap:10px}
.quorum.ok{background:#e9f8ef;color:#1f7a47}
.quorum.no{background:#fdeeee;color:#b23b3b}
.agenda-item{border:1px solid var(--border);border-radius:var(--radius);padding:16px;margin-bottom:14px;background:#fafdff}
.ai-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}
.ai-title{font-weight:700;color:var(--text)}
.agenda-item textarea{width:100%;border:1px solid var(--border);border-radius:10px;padding:10px 14px;font-family:var(--font);font-size:.9rem;resize:vertical;min-height:54px;color:var(--text)}
.vote-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px;align-items:center}
.vote-btn{border:1px solid var(--border);background:#fff;border-radius:var(--radius-pill);padding:7px 16px;cursor:pointer;font-family:var(--font);font-size:.85rem;font-weight:600;display:inline-flex;align-items:center;gap:8px;color:var(--text);min-height:38px}
.vote-btn .cnt{background:var(--primary);color:#fff;border-radius:50%;min-width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;font-size:.78rem}
.vote-btn.for:hover{border-color:#1f7a47}
.vote-btn.against:hover{border-color:#b23b3b}
.decision-pill{margin-inline-start:auto;font-size:.8rem;font-weight:700;padding:4px 12px;border-radius:var(--radius-pill)}
.decision-pill.passed{background:#e9f8ef;color:#1f7a47}
.decision-pill.rejected{background:#fdeeee;color:#b23b3b}
.decision-pill.pending{background:#f0f4f8;color:var(--muted)}
.empty-hint{color:var(--muted);font-size:.88rem;font-style:italic;padding:6px 0}

/* budget */
.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%;margin:6px 0 14px}
.table-scroll .budget-table{margin:0}
.budget-table{width:100%;border-collapse:collapse;margin:6px 0 14px}
.budget-table th{text-align:start;font-size:.8rem;color:var(--muted);font-weight:600;padding:6px 8px;border-bottom:1px solid var(--border)}
.budget-table td{padding:6px 8px;border-bottom:1px solid #eef4f9}
.budget-table input{width:120px;padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius-pill);font-family:var(--font);font-size:.88rem;text-align:start;min-height:40px}
.budget-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-top:14px}
.bs-card{background:#f4fbfe;border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px}
.bs-card .lbl{font-size:.8rem;color:var(--muted)}
.bs-card .val{font-size:1.4rem;font-weight:800;color:var(--text);margin-top:2px}
.bs-card.good .val{color:#1f7a47}
.bs-card.bad .val{color:#b23b3b}
.bs-card.hl{background:var(--primary);border-color:var(--primary)}
.bs-card.hl .lbl,.bs-card.hl .val{color:#fff}

/* signature */
.sigpad-wrap{border:1.5px dashed var(--border);border-radius:var(--radius);background:#fafdff;overflow:hidden}
.sigpad{display:block;width:100%;height:140px;cursor:crosshair;touch-action:none}

/* signs */
.sign-preview{display:flex;align-items:flex-start;justify-content:center}
.sign{width:100%;text-align:center;border:5px solid var(--sign);border-radius:16px;padding:30px 22px;background:#fff;box-shadow:var(--shadow)}
.sign-ic{color:var(--sign)}
.sign-title{font-size:1.7rem;font-weight:800;color:var(--sign);margin-top:8px;line-height:1.15}
.sign-body{font-size:1rem;color:var(--text);margin-top:12px;line-height:1.55}
.sign-foot{margin-top:18px;color:var(--muted);font-size:.85rem}
.swatches{display:flex;gap:9px;flex-wrap:wrap}
.swatch{width:34px;height:34px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px var(--border);cursor:pointer;padding:0}
.swatch:hover{transform:scale(1.12)}

/* maintenance */
.check-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}
.check-item{display:flex;align-items:center;gap:9px;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;font-size:.9rem;color:var(--text);background:#fff;min-height:44px}
.check-item:hover{border-color:var(--primary)}
.check-item input{width:18px;height:18px;accent-color:var(--primary);flex:0 0 auto}
.req-badge{font-size:.68rem;font-weight:600;padding:1px 7px;border-radius:var(--radius-pill);background:#fdf6e9;color:#a96f12}

/* poll */
.poll-opt-row{display:flex;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid #eef4f9;flex-wrap:wrap}
.poll-opt-name{font-weight:600;color:var(--text);flex:1}
.poll-votes{font-size:.82rem;color:var(--muted);display:inline-flex;align-items:center;gap:6px}
.poll-votes input{width:70px;padding:7px 10px;border:1px solid var(--border);border-radius:var(--radius-pill);font-family:var(--font);text-align:center;min-height:38px}
.bar-row{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.bar-label{width:110px;font-size:.88rem;color:var(--text);flex:0 0 auto}
.bar-track{flex:1;height:14px;background:#eef4f9;border-radius:var(--radius-pill);overflow:hidden}
.bar-fill{height:100%;background:var(--primary);border-radius:var(--radius-pill)}
.bar-val{width:78px;text-align:start;font-size:.82rem;color:var(--muted);flex:0 0 auto}

/* CTA + helpful */
.cta-banner{margin:36px 0 0;background:linear-gradient(135deg,var(--primary),#1f8fc0);color:#fff;border-radius:var(--radius);padding:26px 30px;display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}
.cta-banner h3{margin:0 0 6px;font-size:1.25rem;color:#fff}
.cta-banner p{margin:0;color:#fff;opacity:.95;font-size:.94rem;max-width:560px;line-height:1.5}
.cta-banner .btn{white-space:nowrap;background:#fff;color:var(--primary);border:none}

/* SEO content block (home) */
.seo-block{margin-top:40px;padding-top:24px;border-top:1px solid var(--border)}
.seo-block h2{font-size:1.4rem;color:var(--text);margin:0 0 12px}
.seo-block p{color:var(--muted);line-height:1.75;margin:0 0 12px}
.seo-block a{color:var(--primary)}

/* accessibility statement */
.accessibility-statement{max-width:800px;margin:24px auto}
.accessibility-statement h1{font-size:1.9rem}
.accessibility-statement h2{font-size:1.2rem;margin:24px 0 8px;color:var(--primary)}
.accessibility-statement ul{padding-inline-start:22px;line-height:1.7}
.contact-card{background:#f4fbfe;border:1px solid var(--border);border-radius:var(--radius);padding:16px 20px;margin:12px 0}
.contact-card p{margin:4px 0}

#print-area{display:none}
@media print{
  body *{visibility:hidden}
  #print-area,#print-area *{visibility:visible}
  #print-area{display:block;position:absolute;inset:0;padding:0}
}

@media (max-width:720px){
  .gen-grid{grid-template-columns:1fr}
  .hero h1{font-size:1.7rem}
  .article-hero h1{font-size:1.5rem}
  .footer-content{flex-direction:column;text-align:center}
  .budget-table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;white-space:nowrap;max-width:100%}
  .budget-table th,.budget-table td{padding:6px 7px;font-size:.86rem}
  .budget-table input{width:74px;padding:8px 8px}
  .panel-card{padding:18px 14px}
}
