/* AMASTASHIELD VLRenewals design: navy #14213D, amber #FCA311. Fonts: Bricolage Grotesque + Figtree. */
:root{
  --bg:#F5F7FA; --surface:#FFFFFF; --border:#DCE2EB; --text:#14213D; --muted:#5A6577;
  --accent:#FCA311; --on-accent:#14213D; --link:#2447A8; --navy:#14213D;
  --danger:#9B1C1C; --danger-bg:#FBE4E4; --success-bg:#E3F4EA; --success:#1B7F4F;
  --text-muted:var(--muted); --accent-dark:#E59200; --warn-bg:#FFF1D6; --warn:#7A4B00; --info-bg:#E8EEFB; --info:#2447A8; --radius:12px;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#0E1626; --surface:#17223A; --border:#2A3858; --text:#E8EDF7; --muted:#9AA6BA;
    --accent:#FCA311; --on-accent:#14213D; --link:#8FB0FF; --navy:#0A111F;
    --danger:#F19A9A; --danger-bg:#3A2024; --success-bg:#16301F; --success:#6FD39A;
    --warn-bg:#3A2F14; --warn:#F2C26B; --info-bg:#1C2B4D; --info:#8FB0FF;
  }
}
:root[data-theme="dark"]{
  --bg:#0E1626; --surface:#17223A; --border:#2A3858; --text:#E8EDF7; --muted:#9AA6BA;
  --accent:#FCA311; --on-accent:#14213D; --link:#8FB0FF; --navy:#0A111F;
  --danger:#F19A9A; --danger-bg:#3A2024; --success-bg:#16301F; --success:#6FD39A;
  --warn-bg:#3A2F14; --warn:#F2C26B; --info-bg:#1C2B4D; --info:#8FB0FF;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) select{
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%239AA6BA' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
  }
}
:root[data-theme="dark"] select{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%239AA6BA' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
}
*{box-sizing:border-box}
body{margin:0;font-family:'Figtree',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--text);line-height:1.5;min-height:100vh;display:flex;flex-direction:column}
.topbar{display:flex;align-items:center;justify-content:space-between;padding:.7rem 1rem;background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10;flex-wrap:wrap;gap:.6rem}
.brand{display:flex;align-items:center;gap:.6rem}
.brand .b1{font-family:'Bricolage Grotesque',sans-serif;font-weight:700;font-size:1.05rem;letter-spacing:.02em;line-height:1.1;display:block}
.brand .b2{font-size:.68rem;color:var(--muted);letter-spacing:.08em;display:block}
.mark{color:#FCA311}
.mark .m-bg{fill:#14213D}
.mark .m-line{stroke:#FCA311}
.mark .m-bg-stroke{stroke:#14213D}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) .mark{color:#14213D}
  :root:not([data-theme="light"]) .mark .m-bg{fill:#FCA311}
  :root:not([data-theme="light"]) .mark .m-line{stroke:#14213D}
  :root:not([data-theme="light"]) .mark .m-bg-stroke{stroke:#FCA311}
}
:root[data-theme="dark"] .mark{color:#14213D}
:root[data-theme="dark"] .mark .m-bg{fill:#FCA311}
:root[data-theme="dark"] .mark .m-line{stroke:#14213D}
:root[data-theme="dark"] .mark .m-bg-stroke{stroke:#FCA311}
.topbar .who{display:flex;gap:.4rem;align-items:center;font-size:.85rem;flex-wrap:wrap}
.topbar select{width:auto;min-height:40px;padding:.35rem 1.8rem .35rem .6rem;font-size:.85rem}
nav{display:flex;gap:.2rem;flex-wrap:wrap}
nav a{padding:.5rem .75rem;border-radius:10px;color:var(--muted);text-decoration:none;font-size:.88rem;font-weight:500;cursor:pointer;min-height:40px;display:inline-flex;align-items:center}
nav a:hover{background:var(--bg);color:var(--text)}
nav a.active{background:var(--info-bg);color:var(--info);font-weight:600}
.container{width:100%;max-width:780px;margin:0 auto;padding:1.2rem 1rem 2rem;overflow-x:auto;flex:1}
.card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:1.1rem 1.25rem;margin-bottom:1rem}
h1{font-family:'Bricolage Grotesque',sans-serif;font-weight:700;font-size:1.65rem;line-height:1.15;letter-spacing:-.01em;margin:0 0 .35rem}
h2{font-size:1.05rem;font-weight:600;margin:1.2rem 0 .5rem}
h3{font-size:.98rem;margin:1rem 0 .3rem}
p.muted{color:var(--muted);font-size:.9rem;margin:0 0 .8rem}
label{display:block;font-size:.85rem;font-weight:600;color:var(--text);margin:.8rem 0 .25rem}
input,textarea,select{width:100%;min-height:46px;padding:.55rem .75rem;border:1.5px solid var(--border);border-radius:var(--radius);font-size:1rem;background:var(--surface);color:var(--text);font-family:inherit}
input:focus,textarea:focus,select:focus,button:focus-visible,a:focus-visible{outline:3px solid var(--info);outline-offset:1px}
input[type=checkbox],input[type=radio]{min-height:0;width:auto;accent-color:var(--navy)}
select{
  appearance:none;-webkit-appearance:none;-moz-appearance:none;
  padding-right:2.2rem;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%235A6577' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right .7rem center;
  cursor:pointer;
}
button{min-height:44px;padding:.55rem 1rem;border-radius:var(--radius);border:1.5px solid var(--text);background:transparent;color:var(--text);font-size:.95rem;font-weight:600;font-family:inherit;cursor:pointer}
button.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent);font-weight:700}
button.danger{border-color:var(--danger);color:var(--danger);background:transparent}
button:disabled{opacity:.45;cursor:not-allowed}
.row{display:flex;gap:.5rem;flex-wrap:wrap}
.row>*{flex:1;min-width:120px}
.badge{display:inline-block;font-size:.76rem;padding:.2rem .65rem;border-radius:999px;font-weight:600;white-space:nowrap}
.badge.pending{background:var(--info-bg);color:var(--info)}
.badge.active{background:var(--success-bg);color:var(--success)}
.badge.problem{background:var(--danger-bg);color:var(--danger)}
.badge.neutral{background:var(--bg);color:var(--muted);border:1px solid var(--border)}
.list-row{display:flex;justify-content:space-between;align-items:center;gap:.6rem;padding:.8rem 0;min-height:52px;border-bottom:1px solid var(--border);cursor:pointer}
.list-row:last-child{border-bottom:none}
.meta{font-size:.82rem;color:var(--muted)}
.metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:.6rem;margin-bottom:1rem}
.metric{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:.8rem}
.metric .num{font-family:'Bricolage Grotesque',sans-serif;font-size:1.5rem;font-weight:700}
.metric .label{font-size:.76rem;color:var(--muted)}
table{width:100%;border-collapse:collapse;font-size:.88rem;min-width:480px}
table th{text-align:left;color:var(--muted);font-weight:600;padding:.4rem .3rem;font-size:.76rem;border-bottom:1px solid var(--border)}
table td{padding:.55rem .3rem;border-bottom:1px solid var(--border)}
.timeline{list-style:none;padding:0;margin:0}
.timeline li{padding:.45rem 0 .45rem 1.2rem;border-left:2px solid var(--border);position:relative}
.timeline li::before{content:'';position:absolute;left:-7px;top:.7rem;width:12px;height:12px;border-radius:50%;background:var(--success)}
.timeline li:last-child{border-left:2px solid transparent}
.banner{padding:.7rem .9rem;border-radius:var(--radius);font-size:.9rem;margin-bottom:.8rem}
.banner.warn{background:var(--warn-bg);color:var(--warn)}
.banner.info{background:var(--info-bg);color:var(--info)}
.banner.error{background:var(--danger-bg);color:var(--danger)}
.link{color:var(--link);cursor:pointer;font-size:.9rem;font-weight:600}
a{color:var(--link)}
details summary{cursor:pointer;color:var(--link);font-size:.9rem;font-weight:600}
.loading{padding:2rem;text-align:center;color:var(--muted)}
.legal h1{font-size:1.7rem}.legal h4{font-size:1rem;margin:1.2rem 0 .3rem;font-family:'Bricolage Grotesque',sans-serif}
.legal ul{padding-left:1.2rem;margin:.3rem 0}.legal li{margin-bottom:.45rem;font-size:.93rem}
.foot-unused{border-top:1px solid var(--border);background:var(--surface);padding:1rem;text-align:center;font-size:.85rem;color:var(--muted)}
.foot a{color:var(--link);cursor:pointer;margin:0 .5rem;font-weight:500;text-decoration:none}
.foot p{margin:.4rem auto 0;max-width:640px;font-size:.78rem}
.opt-blocked{opacity:.7}

/* ---- Flask-specific ---- */
a.brand{text-decoration:none;color:var(--text)}
.topbar nav{display:flex;gap:.2rem;flex-wrap:wrap;align-items:center}
.topbar nav a{padding:.5rem .75rem}
.topbar nav a.active{background:var(--info-bg);color:var(--info);font-weight:600}
.topbar nav .logout-form{display:inline;margin:0}
.topbar nav button.linklike{all:unset;cursor:pointer;padding:.5rem .75rem;border-radius:10px;color:var(--muted);font-size:.88rem;font-weight:500;min-height:40px;display:inline-flex;align-items:center;box-sizing:border-box}
.topbar nav button.linklike:hover,.topbar nav button.linklike:focus-visible{background:var(--bg);color:var(--text)}
.container.wide{max-width:960px}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:.55rem 1rem;border-radius:var(--radius);border:1.5px solid var(--text);background:transparent;color:var(--text);font-size:.95rem;font-weight:600;text-decoration:none;text-align:center}
.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent);font-weight:700}
button.primary:hover,.btn.primary:hover{filter:brightness(.95)}
.stack{display:flex;flex-direction:column;gap:.5rem}
.list-row{text-decoration:none;color:var(--text);cursor:pointer}
.list-row .meta{font-size:.82rem;color:var(--muted)}
.site-footer{border-top:1px solid var(--border);background:var(--surface);padding:1rem;text-align:center;font-size:.85rem;color:var(--muted)}
.site-footer a{color:var(--link);margin:0 .5rem;font-weight:500;text-decoration:none}
.site-footer p{margin:.4rem auto 0;max-width:640px;font-size:.78rem}
.flash{padding:.7rem .9rem;border-radius:var(--radius);margin-bottom:1rem;font-size:.9rem}
.flash.error{background:var(--danger-bg);color:var(--danger)}
.flash.success{background:var(--success-bg);color:var(--success)}
.flash.warn{background:var(--warn-bg);color:var(--warn)}
.flash.info{background:var(--info-bg);color:var(--info)}
.center-page{min-height:70vh;display:flex;align-items:center;justify-content:center}
.auth-card{width:100%;max-width:380px}
.terms-box{padding:0;overflow:hidden}
.terms-box summary{cursor:pointer;padding:.7rem .9rem;font-size:.9rem;font-weight:600;color:var(--link);background:var(--bg);list-style:none;min-height:44px;display:flex;align-items:center}
.terms-box summary::-webkit-details-marker{display:none}
.terms-box summary::before{content:"\25B8  "}
.terms-box[open] summary::before{content:"\25BE  "}
.terms-box .terms-content{max-height:320px;overflow-y:auto;padding:.9rem 1rem;font-size:.85rem;color:var(--muted);line-height:1.6;border-top:1px solid var(--border)}
.terms-content h4{font-size:.9rem;color:var(--text);margin:1rem 0 .35rem;font-family:'Bricolage Grotesque',sans-serif}
.terms-content h4:first-child{margin-top:0}
.terms-content ul{margin:.3rem 0 .6rem;padding-left:1.2rem}
.terms-content li{margin-bottom:.35rem}
.terms-content p{margin:0 0 .6rem}
.badge.pending{background:var(--info-bg);color:var(--info)}
[data-caps]{text-transform:uppercase}
[data-caps]::placeholder{text-transform:none}
@media (max-width:480px){.topbar nav a{padding:.4rem .5rem;font-size:.8rem}.container{padding:.9rem .75rem 1.5rem}}
.hero-brand{display:flex;flex-direction:column;align-items:center;gap:.15rem;padding:1.5rem 1rem 0}
.hero-brand .b1{font-family:'Bricolage Grotesque',sans-serif;font-weight:700;font-size:1.3rem;letter-spacing:.04em}
.hero-brand .b2{font-size:.72rem;letter-spacing:.14em;color:var(--muted)}
.center-page{min-height:auto;padding:1rem 0}

/* ---- public home page ---- */
.container.landing{max-width:1040px}
.lp-nav{display:flex;align-items:center;justify-content:space-between;gap:.6rem;flex-wrap:wrap;padding:.4rem 0 1rem}
.lp-nav nav{display:flex;gap:.2rem;flex-wrap:wrap;align-items:center}
.lp-nav nav a:not(.btn){padding:.5rem .7rem;border-radius:10px;color:var(--muted);text-decoration:none;font-size:.9rem;font-weight:500}
.lp-nav nav a:not(.btn):hover{background:var(--info-bg);color:var(--info)}
.lp-hero{display:grid;grid-template-columns:1.1fr .9fr;gap:2rem;align-items:center;padding:1.5rem 0 2.5rem}
.lp-hero h1{font-size:2.3rem;line-height:1.1;margin:.2rem 0 .8rem}
.lp-eyebrow{font-size:.8rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--link);margin:0}
.lp-lead{font-size:1.08rem;color:var(--muted);margin:0 0 1.1rem}
.lp-actions{display:flex;gap:.6rem;flex-wrap:wrap;margin:0 0 .8rem}
.lp-mock{margin:0}
.lp-sec{padding:1.2rem 0}
.lp-sec h2{font-family:'Bricolage Grotesque',sans-serif;font-size:1.6rem;margin:0 0 .3rem}
.lp-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:.9rem}
.lp-grid .card{margin:0}
.lp-grid h3{font-family:'Bricolage Grotesque',sans-serif;margin:.3rem 0}
.lp-grid p{margin:0;color:var(--muted);font-size:.92rem}
.lp-step{font-size:.72rem;font-weight:700;letter-spacing:.1em;color:var(--link)}
.lp-cta{background:var(--navy);color:#fff;border-radius:20px;padding:2rem 1.5rem;text-align:center;margin:1.5rem 0}
.lp-cta h2{font-family:'Bricolage Grotesque',sans-serif;margin:0 0 .3rem;color:#fff}
.lp-cta p{margin:0 0 1rem;color:#C9D2E3}
.lp-about{display:grid;grid-template-columns:2fr 1fr;gap:1.5rem;font-size:.85rem;color:var(--muted);padding:.5rem 0 1rem}
.lp-about p{margin:0}
@media (max-width:760px){.lp-hero{grid-template-columns:1fr}.lp-hero h1{font-size:1.8rem}.lp-about{grid-template-columns:1fr}}
.hero-brand{text-decoration:none;color:var(--text)}
.hero-brand:hover .b1{color:var(--link)}
.limit-form{display:flex;gap:.25rem;align-items:center;margin-top:.4rem}
.limit-form input{width:4.2rem;min-height:40px;padding:.3rem .4rem;text-align:center}
.limit-form button{min-height:40px;min-width:40px;padding:.3rem .6rem}
