/* RSW Free Tools — styles for the tool pages, the tools themselves and the hub.
   Palette matches the site layer (rsw-site.php): dark navy surfaces, blue accent.
   Tokens are declared on every root the plugin renders into, so a card outside
   .rsw-tool still resolves them. Mobile first. Print rules at the end. */
.rsw-page,.rsw-tool,.rsw-hub{
  --rsw-bg:#0B121A;--rsw-surface:#142130;--rsw-surface2:#1A2B3E;--rsw-sunk:#0E1823;
  --rsw-line:#26384B;--rsw-line2:#33495F;
  --rsw-ink:#E7EEF5;--rsw-mu:#9DB0C3;--rsw-white:#fff;
  --rsw-blue:#69B7F5;--rsw-blue2:#B4DCFF;--rsw-btn:#2A74B8;--rsw-btn-h:#3585CE;
  --rsw-red:#FF8A8A;--rsw-amber:#FFC46B;
  --rsw-radius:14px;
}
.rsw-page *,.rsw-tool *,.rsw-hub *,.rsw-page *::before,.rsw-tool *::before{box-sizing:border-box}

/* ---------- page shell ---------- */
/* .wrap also comes from the site layer; repeated here so the pages hold up alone. */
.rsw-page .wrap{max-width:1200px;margin:0 auto;padding:0 32px}
.rsw-phead{padding:48px 0 34px;border-bottom:1px solid var(--rsw-line);
  background:radial-gradient(900px 380px at 78% 0,rgba(80,150,220,.16),transparent 62%)}
.rsw-phead .crumb{font-size:14px;color:var(--rsw-mu);margin:0 0 22px;text-align:center}
.rsw-phead{text-align:center}
.rsw-phead .crumb a{color:var(--rsw-mu);text-decoration:none}
.rsw-phead .crumb a:hover{color:#fff;text-decoration:underline}
.rsw-eyebrow{justify-content:center;display:inline-flex;align-items:center;gap:10px;font-size:13px;font-weight:600;
  letter-spacing:.14em;text-transform:uppercase;color:var(--rsw-blue);margin:0 0 14px}
.rsw-eyebrow::before{content:'';width:22px;height:2px;background:var(--rsw-blue)}
.rsw-page h1{font-size:clamp(30px,4.2vw,46px);line-height:1.08;letter-spacing:-.015em;
  color:#fff;margin:0 auto 16px;max-width:26ch;text-align:center;text-wrap:balance}
.rsw-page h1.rsw-h1-wide{max-width:30ch}
.rsw-phead .rsw-lead{font-size:19px;line-height:1.6;color:var(--rsw-mu);margin:0 auto;max-width:84ch;text-align:center}
.rsw-facts{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;list-style:none;margin:22px 0 0;padding:0}
.rsw-facts li{display:inline-flex;align-items:center;gap:7px;font-size:13.5px;font-weight:600;
  color:var(--rsw-ink);background:rgba(105,183,245,.09);border:1px solid var(--rsw-line);
  border-radius:999px;padding:7px 14px}
.rsw-facts li::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--rsw-blue)}
.rsw-main{padding:40px 0 72px}

/* ---------- article typography ---------- */
.rsw-doc{max-width:980px;margin-left:auto;margin-right:auto;font-size:17px;line-height:1.72;color:var(--rsw-ink)}
.rsw-doc>*:first-child{margin-top:0}
.rsw-doc h2{font-size:clamp(25px,2.6vw,31px);line-height:1.18;letter-spacing:-.01em;
  color:#fff;margin:56px 0 16px;padding-top:26px;border-top:1px solid var(--rsw-line)}
.rsw-doc h2:first-child{margin-top:0;padding-top:0;border-top:0}
.rsw-doc h3{font-size:20px;line-height:1.3;font-weight:600;color:#fff;margin:30px 0 8px}
.rsw-doc p{margin:0 0 18px}
.rsw-doc a{color:var(--rsw-blue);text-decoration:underline;text-underline-offset:2px}
.rsw-doc a:hover{color:var(--rsw-blue2)}
.rsw-doc strong{color:#fff;font-weight:650}
.rsw-doc ul,.rsw-doc ol{margin:0 0 18px;padding-left:0;list-style:none}
.rsw-doc ol{counter-reset:rswstep}
.rsw-doc li{position:relative;padding-left:30px;margin:0 0 11px}
.rsw-doc ul>li::before{content:'';position:absolute;left:8px;top:.68em;width:7px;height:7px;
  border-radius:50%;background:var(--rsw-blue)}
.rsw-doc ol>li{counter-increment:rswstep;padding-left:40px}
.rsw-doc ol>li::before{content:counter(rswstep);position:absolute;left:0;top:.08em;
  width:26px;height:26px;border-radius:50%;background:rgba(105,183,245,.14);
  border:1px solid var(--rsw-line2);color:var(--rsw-blue);font-size:13px;font-weight:700;
  display:flex;align-items:center;justify-content:center}
.rsw-doc li>ul{margin:10px 0 0}

/* worked-example and other prose tables */
.rsw-doc table{width:100%;border-collapse:separate;border-spacing:0;margin:0 0 22px;font-size:16px;
  background:var(--rsw-surface);border:1px solid var(--rsw-line);border-radius:var(--rsw-radius);overflow:hidden}
.rsw-doc th,.rsw-doc td{padding:13px 16px;text-align:left;vertical-align:top;
  border-bottom:1px solid var(--rsw-line)}
.rsw-doc thead th{background:var(--rsw-surface2);color:#fff;font-size:13px;font-weight:700;
  letter-spacing:.06em;text-transform:uppercase}
.rsw-doc tbody tr:last-child td{border-bottom:0}
.rsw-doc td:last-child{color:var(--rsw-ink);font-variant-numeric:tabular-nums}

/* FAQ */
.rsw-faq{display:grid;gap:12px;margin:0 0 22px}
.rsw-faq-item{background:var(--rsw-surface);border:1px solid var(--rsw-line);
  border-radius:var(--rsw-radius);padding:20px 22px}
.rsw-faq-item h3{margin:0 0 8px;font-size:18px}
.rsw-faq-item p{margin:0;color:var(--rsw-mu)}

/* related tools */
.rsw-rel{display:grid;grid-template-columns:1fr;gap:12px;margin:0 0 22px;padding:0;list-style:none}
@media(min-width:760px){.rsw-rel{grid-template-columns:1fr 1fr}}
.rsw-rel li{margin:0;padding:0}
.rsw-rel li::before{display:none}
.rsw-rel a{display:block;height:100%;background:var(--rsw-surface);border:1px solid var(--rsw-line);
  border-radius:var(--rsw-radius);padding:18px 20px;text-decoration:none;color:#fff;font-weight:600;
  transition:transform .2s,border-color .2s,box-shadow .2s}
.rsw-rel a:hover{transform:translateY(-3px);border-color:#3C6186;color:#fff;
  box-shadow:0 20px 34px -20px rgba(60,130,200,.5)}
.rsw-rel span{display:block;margin-top:6px;font-weight:400;font-size:15px;color:var(--rsw-mu)}

/* closing call to action */
.rsw-endcta{background:linear-gradient(180deg,var(--rsw-surface),#111D2A);
  border:1px solid var(--rsw-line);border-radius:18px;padding:30px 30px 32px;margin:10px 0 0}
.rsw-endcta p{margin:0 0 20px;color:var(--rsw-mu)}
.rsw-endcta p:last-of-type{margin-bottom:22px}
.rsw-ctabtns{display:flex;flex-wrap:wrap;gap:12px;margin:0;padding:0;list-style:none}
.rsw-ctabtns li{margin:0;padding:0}
.rsw-ctabtns li::before{display:none}
.rsw-ctabtns a{display:inline-flex;align-items:center;justify-content:center;min-height:50px;
  padding:0 24px;border-radius:10px;font-size:16px;font-weight:600;text-decoration:none;
  background:rgba(255,255,255,.04);border:1.5px solid var(--rsw-line2);color:#fff;
  transition:transform .2s,border-color .2s,background .2s}
.rsw-ctabtns a:hover{transform:translateY(-2px);border-color:var(--rsw-blue);color:#fff;
  background:rgba(105,183,245,.1)}
.rsw-ctabtns li:first-child a{background:var(--rsw-btn);border-color:var(--rsw-btn);
  box-shadow:0 8px 24px -8px rgba(53,133,206,.7)}
.rsw-ctabtns li:first-child a:hover{background:var(--rsw-btn-h);border-color:var(--rsw-btn-h)}

/* ---------- the tool panel ---------- */
.rsw-tool{color:var(--rsw-ink);background:linear-gradient(180deg,var(--rsw-surface),#111D2A);
  border:1px solid var(--rsw-line);border-radius:18px;padding:26px;margin:0 0 44px;
  font-size:16px;line-height:1.55;max-width:100%}
.rsw-tool h3{margin:26px 0 10px;font-size:18px;color:#fff;font-weight:650}
.rsw-tool h3:first-child{margin-top:0}
.rsw-form{display:grid;grid-template-columns:1fr;gap:18px 16px;margin:0 0 20px}
@media(min-width:640px){.rsw-form{grid-template-columns:1fr 1fr}.rsw-field-full{grid-column:1/-1}}
.rsw-field label{display:block;font-weight:600;margin:0 0 7px;font-size:14.5px;color:#fff}
.rsw-field-check{display:flex;gap:10px;align-items:center}
.rsw-field-check label{margin:0;font-weight:500;color:var(--rsw-ink)}
.rsw-inputrow{display:flex;gap:8px;align-items:center}
.rsw-tool input[type=number],.rsw-tool input[type=text],.rsw-tool input[type=search],.rsw-tool select{
  border:1px solid var(--rsw-line2);border-radius:9px;padding:11px 12px;font-size:16px;
  min-height:46px;width:100%;background:var(--rsw-sunk);color:#fff;
  font-family:inherit;appearance:none;-webkit-appearance:none}
.rsw-tool select{background-image:linear-gradient(45deg,transparent 50%,var(--rsw-mu) 50%),linear-gradient(135deg,var(--rsw-mu) 50%,transparent 50%);
  background-position:calc(100% - 19px) 50%,calc(100% - 13px) 50%;background-size:6px 6px,6px 6px;
  background-repeat:no-repeat;padding-right:38px}
.rsw-tool input::placeholder{color:#6F8498;opacity:1}
.rsw-tool input[type=checkbox]{width:19px;height:19px;min-height:0;accent-color:var(--rsw-btn)}
.rsw-tool input:hover,.rsw-tool select:hover{border-color:#44607D}
.rsw-tool input:focus-visible,.rsw-tool select:focus-visible,.rsw-tool button:focus-visible,
.rsw-hub input:focus-visible,.rsw-hub button:focus-visible,.rsw-page a:focus-visible{
  outline:2px solid var(--rsw-blue);outline-offset:2px}
.rsw-unit{max-width:96px}
.rsw-suffix{color:var(--rsw-mu);font-size:14px;white-space:nowrap}
.rsw-help{margin:7px 0 0;color:var(--rsw-mu);font-size:13.5px;line-height:1.5}
.rsw-err{margin:7px 0 0;color:var(--rsw-red);font-size:14px;font-weight:600}
.rsw-actions{display:flex;flex-wrap:wrap;gap:12px;margin:22px 0 0}
.rsw-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;
  border:1.5px solid var(--rsw-line2);border-radius:10px;background:rgba(255,255,255,.04);
  color:#fff;padding:0 20px;font-size:15.5px;font-weight:600;min-height:46px;cursor:pointer;
  text-decoration:none;text-align:center;font-family:inherit;
  transition:background-color .18s,border-color .18s,transform .18s}
.rsw-btn:hover{border-color:var(--rsw-blue);background:rgba(105,183,245,.1);color:#fff;transform:translateY(-1px)}
.rsw-btn-primary{background:var(--rsw-btn);border-color:var(--rsw-btn);color:#fff;
  box-shadow:0 8px 22px -10px rgba(53,133,206,.8)}
.rsw-btn-primary:hover{background:var(--rsw-btn-h);border-color:var(--rsw-btn-h)}
.rsw-btn-sm{padding:0 14px;min-height:38px;font-size:14px}
.rsw-btn-x{border-color:var(--rsw-line);color:var(--rsw-red);min-height:38px;min-width:38px;padding:0 10px;font-size:18px;line-height:1}
.rsw-btn-x:hover{border-color:var(--rsw-red);background:rgba(255,138,138,.12);color:var(--rsw-red)}

/* results */
.rsw-result:empty{display:none}
.rsw-result{border-top:1px solid var(--rsw-line);margin-top:26px;padding-top:22px}
.rsw-kv{border-collapse:collapse;width:100%;max-width:560px;margin:14px 0}
.rsw-kv th{text-align:left;padding:11px 14px 11px 0;font-weight:500;vertical-align:top;width:58%;color:var(--rsw-mu)}
.rsw-kv td{padding:11px 0;text-align:right;font-variant-numeric:tabular-nums;font-weight:650;color:#fff}
.rsw-kv tr+tr th,.rsw-kv tr+tr td{border-top:1px solid var(--rsw-line)}
.rsw-rows-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;
  border:1px solid var(--rsw-line);border-radius:12px;background:var(--rsw-sunk)}
.rsw-table,.rsw-rows{border-collapse:collapse;width:100%;margin:14px 0;font-size:15px}
.rsw-rows{margin:0}
.rsw-table caption{text-align:left;font-weight:650;color:#fff;padding:0 0 8px}
.rsw-table th,.rsw-table td,.rsw-rows th,.rsw-rows td{border:1px solid var(--rsw-line);padding:10px 12px;text-align:left}
.rsw-table td{font-variant-numeric:tabular-nums}
.rsw-table thead th,.rsw-rows thead th{background:var(--rsw-surface2);color:#fff;font-size:12.5px;
  font-weight:700;letter-spacing:.05em;text-transform:uppercase;white-space:nowrap}
.rsw-rows td{padding:7px}
.rsw-rows input,.rsw-rows select{min-height:42px;padding:9px;min-width:78px}
/* a row's type select holds real words, so it needs room the unit select does not */
.rsw-rows select{min-width:152px;padding-right:36px}
.rsw-unit,.rsw-rows select.rsw-unit{min-width:86px;max-width:104px;padding-right:30px;
  background-position:calc(100% - 15px) 50%,calc(100% - 9px) 50%}
.rsw-rows-wrap{margin:0 0 16px}

/* notes */
.rsw-badge,.rsw-safety{display:block;border-radius:0 10px 10px 0;padding:13px 16px;margin:16px 0;font-size:14.5px;line-height:1.55}
.rsw-badge{background:rgba(105,183,245,.09);border-left:3px solid var(--rsw-blue);color:var(--rsw-ink)}
.rsw-safety{background:rgba(255,196,107,.09);border-left:3px solid var(--rsw-amber);color:var(--rsw-ink)}
.rsw-export,.rsw-draftbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:18px 0 0}
.rsw-export-status{color:var(--rsw-blue);font-size:14px}
.rsw-cta{border-top:1px solid var(--rsw-line);margin-top:24px;padding-top:20px;
  display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.rsw-cta-note{flex-basis:100%;margin:0 0 6px;color:var(--rsw-mu);font-size:14px}
/* drawings keep a light sheet: the SVGs are drawn with dark ink */
.rsw-svgwrap{overflow-x:auto;margin:16px 0;border:1px solid var(--rsw-line);border-radius:12px;
  background:#F7FAFC;padding:10px}
.rsw-svgwrap svg{display:block;max-width:100%;height:auto}
.rsw-visually-hidden{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.rsw-nojs{background:rgba(105,183,245,.09);border:1px solid var(--rsw-line);color:var(--rsw-ink);
  padding:14px 16px;border-radius:12px;margin:0 0 20px;font-size:15px}

/* ---------- hub ---------- */
.rsw-hub{margin:0 0 8px}
.rsw-hub-search{margin:0 0 16px;max-width:460px}
.rsw-hub-search input{width:100%;border:1px solid var(--rsw-line2);border-radius:10px;
  padding:12px 14px;font-size:16px;min-height:48px;background:var(--rsw-sunk);color:#fff;font-family:inherit}
.rsw-hub-search input::placeholder{color:#6F8498;opacity:1}
.rsw-hub-filters{display:flex;flex-wrap:wrap;gap:9px;margin:0 0 26px}
.rsw-hub-grid{display:grid;grid-template-columns:1fr;gap:16px;padding:0;list-style:none;margin:0}
@media(min-width:640px){.rsw-hub-grid{grid-template-columns:1fr 1fr}}
@media(min-width:1000px){.rsw-hub-grid{grid-template-columns:repeat(3,1fr)}}
.rsw-card{display:flex;flex-direction:column;gap:9px;
  background:linear-gradient(180deg,var(--rsw-surface),#111D2A);
  border:1px solid var(--rsw-line);border-radius:var(--rsw-radius);padding:20px;
  transition:transform .22s,border-color .22s,box-shadow .22s}
.rsw-card:hover{transform:translateY(-4px);border-color:#3C6186;
  box-shadow:0 22px 38px -22px rgba(60,130,200,.5)}
.rsw-card h3{margin:0;font-size:17.5px;line-height:1.32;font-weight:650}
.rsw-card h3 a{color:#fff;text-decoration:none}
.rsw-card h3 a::after{content:'';position:absolute;inset:0}
.rsw-card{position:relative}
.rsw-card h3 a:hover{color:var(--rsw-blue2)}
.rsw-card p{margin:0;color:var(--rsw-mu);font-size:15px;line-height:1.55}
.rsw-card .rsw-tag{align-self:flex-start;background:rgba(105,183,245,.12);
  border:1px solid var(--rsw-line);border-radius:999px;padding:4px 12px;
  font-size:12px;font-weight:600;letter-spacing:.04em;color:var(--rsw-blue)}
.rsw-hub-empty{color:var(--rsw-mu);padding:20px 0}

@media(max-width:900px){
  .rsw-page .wrap{padding:0 20px}
  .rsw-phead{padding:34px 0 28px}
  .rsw-main{padding:30px 0 56px}
  .rsw-doc{font-size:16.5px}
  .rsw-doc h2{margin:42px 0 14px;padding-top:22px}
  .rsw-tool{padding:18px;border-radius:14px}
  .rsw-endcta{padding:24px 20px 26px}
  .rsw-ctabtns a{width:100%}
}
@media(prefers-reduced-motion:reduce){
  .rsw-page *,.rsw-tool *,.rsw-hub *{transition:none!important;animation:none!important}
}

/* ---------- print: a clean black-on-white worksheet ---------- */
@media print{
  .fab,.fab-l,.fab-r,.hd,header.hd,#masthead,.site-header,.ast-mobile-header-wrap,
  #colophon,.site-footer,.rsw-actions,.rsw-export,.rsw-draftbar,.rsw-cta,.rsw-btn,
  .rsw-hub-search,.rsw-hub-filters,.rsw-endcta,.rsw-facts,.rsw-phead .crumb{display:none!important}
  .rsw-page,.rsw-tool,.rsw-hub,.rsw-doc,.rsw-faq-item,.rsw-card,.rsw-rows-scroll{
    background:#fff!important;color:#000!important;box-shadow:none!important}
  .rsw-page h1,.rsw-doc h2,.rsw-doc h3,.rsw-tool h3,.rsw-card h3,.rsw-doc strong,.rsw-kv td{color:#000!important}
  .rsw-page .wrap{max-width:none;padding:0}
  .rsw-phead{padding:0 0 12px;border-bottom:1px solid #000;background:none}
  .rsw-page h1{font-size:22pt;margin:0 0 6px}
  .rsw-phead .rsw-lead{font-size:11pt;color:#333!important}
  .rsw-main{padding:14px 0 0}
  .rsw-doc{max-width:none;font-size:10.5pt;line-height:1.5}
  .rsw-doc h2{font-size:15pt;margin:20px 0 8px;padding-top:10px;border-top:1px solid #999;break-after:avoid}
  .rsw-doc h3,.rsw-tool h3{font-size:12pt;break-after:avoid}
  .rsw-doc p,.rsw-doc li{color:#000!important}
  .rsw-doc a{color:#000!important}
  .rsw-eyebrow,.rsw-eyebrow::before{color:#555!important;background:none}
  .rsw-eyebrow::before{background:#555!important}
  .rsw-doc ul>li::before{background:#555!important}
  .rsw-doc ol>li::before{background:#EEE!important;border-color:#999!important;color:#000!important}
  .rsw-tool{border:1px solid #999!important;padding:12px;margin:0 0 18px;break-inside:avoid}
  .rsw-field label,.rsw-help,.rsw-suffix,.rsw-kv th,.rsw-faq-item p,.rsw-card p{color:#333!important}
  .rsw-tool input,.rsw-tool select{background:#fff!important;color:#000!important;border:1px solid #999!important;min-height:0;padding:5px 7px}
  .rsw-doc table,.rsw-table,.rsw-rows,.rsw-kv{break-inside:avoid;background:#fff!important}
  .rsw-doc th,.rsw-doc td,.rsw-table th,.rsw-table td,.rsw-rows th,.rsw-rows td{
    border:1px solid #999!important;color:#000!important;padding:6px 8px}
  .rsw-doc thead th,.rsw-table thead th,.rsw-rows thead th{background:#EEE!important;color:#000!important}
  .rsw-badge,.rsw-safety{border:1px solid #999!important;border-left:3px solid #666!important;
    background:#F6F6F6!important;color:#000!important;break-inside:avoid}
  .rsw-faq-item{border:0!important;padding:0;break-inside:avoid}
  .rsw-rel{display:block}
  .rsw-rel a{border:0!important;padding:0 0 4px;color:#000!important;text-decoration:underline}
  .rsw-svgwrap{border:1px solid #999;break-inside:avoid}
}
