/* tools.pottsiesfab.com — site-wide CSS
   Matches main-site styling and standardizes components across /calc, /charts, /tooling
   Link with: <link rel="stylesheet" href="/assets/css/tools.css">
*/

/* =======================================
   Theme
======================================= */
:root{
  --bg:#0b0b0b;
  --fg:#ffffff;
  --sub:#e5e7eb;
  --red:#7a0d0d;
  --red2:#991b1b;
  --card:#121212;
  --border:#1f2937;

  /* derived */
  --muted:#94a3b8;
  --accent:#ef4444;          /* red accent to match main site glow */
  --accent-2:#dc2626;        /* slightly brighter for hover/focus */
  --shadow:0 10px 30px #00000033;
  --radius-lg:18px;
  --radius-md:12px;
  --radius-sm:10px;
}

/* Base / Typography */
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--bg);color:var(--fg);font:16px/1.5 Roboto, system-ui, Arial, sans-serif}
.mono{font-family: ui-monospace,SFMono-Regular,Consolas,Menlo,monospace}
.muted{opacity:.75;color:var(--sub)}
.hidden{display:none !important}

/* Layout helpers */
.wrap{max-width:1100px;margin:0 auto;padding:1.2rem}
.site-main{padding-top:1.2rem;padding-bottom:2rem}

/* =======================================
   Header / Nav (matches main site)
======================================= */
.site-header{
  position:sticky; top:0; z-index:10;
  background:linear-gradient(180deg, #0b0b0bcc, #0b0b0b);
  backdrop-filter:saturate(1.2) blur(8px);
  border-bottom:1px solid #111;
}
.header-inner{display:flex;gap:1rem;align-items:center;justify-content:space-between}
.brand{display:flex;gap:.9rem;align-items:center;text-decoration:none;color:inherit}
.brand img{height:58px;width:auto;filter:drop-shadow(0 0 10px #000)}
.brand-text .title{display:block;font:800 1.4rem/1 Montserrat, sans-serif;letter-spacing:.5px}
.brand-text .tagline{display:block;color:var(--sub);font-weight:600;opacity:.9}

.site-nav a{
  color:var(--fg);text-decoration:none;padding:.6rem .9rem;border-radius:12px;opacity:.9
}
.site-nav a:hover{background:#0f0f0f;opacity:1}
.site-nav a.active{
  background:var(--red);
  box-shadow:0 0 0 1px var(--accent), 0 0 20px #ef444466;
}

/* Responsive nav (from main site) */
@media (max-width: 900px){
  .site-nav a{padding:.5rem .7rem;font-size:.9rem}
}
@media (max-width: 768px){
  .header-inner{flex-direction:column;align-items:center}
  .site-nav{display:flex;flex-wrap:wrap;justify-content:center;margin-top:.5rem}
  .site-nav a{margin:.25rem .4rem;font-size:.85rem}
}
@media (max-width: 480px){
  .brand img{height:48px}
  .brand-text .title{font-size:1rem}
  .site-nav a{font-size:.8rem;padding:.4rem .6rem}
}

/* ===== Sub Header (below sticky site header) ===== */
:root{
  --header-h: 72px;         /* estimated site-header height; tweak if needed */
  --subhdr-gap: .8rem;
}

@media (max-width: 768px){
  :root{ --header-h: 92px; } /* header stacks on mobile; give it more room */
}

.sub-header{
  position: sticky;
  top: var(--header-h);
  z-index: 9;
  background: linear-gradient(180deg, #0b0b0bcc, #0b0b0b);
  backdrop-filter: saturate(1.1) blur(8px);
  border-bottom: 1px solid #111;
}

.sub-header .inner{
  display: flex;
  flex-direction: column;
  gap: var(--subhdr-gap);
}

.sub-header .title-row{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .8rem;
  flex-wrap: wrap;
}

.sub-header .title-row .title{
  display: flex;
  align-items: center;
  gap: .8rem;
}

.sub-header .kpis{
  display: flex;
  gap: .5rem;
  flex-wrap: wrap;
}

.sub-header .search-row{
  display: flex;
  gap: .6rem;
  flex-wrap: wrap;
  align-items: center;
}

.sub-header .search-row .actions{
  display: flex;
  gap: .5rem;
  flex-wrap: wrap;
  align-items: center;
}

/* Quickbar card */
.quickbar{
  padding: .6rem .8rem;
  display: flex;
  flex-direction: column;
  gap: .4rem;
}

.quickbar .slot{
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
}

/* subtle shadow when content scrolls under sub-header */
.sub-header.is-stuck{
  box-shadow: 0 6px 18px rgba(0,0,0,.35);
}


/* =======================================
   Cards / Sections
======================================= */
.card{
  background:var(--card);
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  padding:1.2rem;
  box-shadow:var(--shadow);
}
.hero{
  display:flex;flex-direction:column;gap:1rem;text-align:center;
  background:radial-gradient(1200px 200px at 50% -40%, #7a0d0d55, transparent 60%);
}
.hero h1{font:800 2rem/1.2 Montserrat, sans-serif;margin:.2rem 0}

/* Grid helpers */
.grid-3{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin-top:1rem}
.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem}

/* KPI blocks */
.kpi h3{margin:.2rem 0 .3rem 0;font:700 1.1rem/1.2 Montserrat, sans-serif}
.kpis{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:.6rem}
.k{
  background:#0c0c0c;border:1px solid var(--border);
  padding:.45rem .6rem;border-radius:var(--radius-md)
}

/* =======================================
   Buttons
======================================= */
.btn{
  display:inline-block;
  background:var(--red);
  color:#fff;
  padding:.7rem 1rem;
  border-radius:999px;
  text-decoration:none;
  font-weight:700;
  letter-spacing:.3px;
  border:1px solid var(--accent);
  transition:transform .15s ease, box-shadow .15s ease, background .15s ease, border-color .15s ease;
  cursor:pointer;
}
.btn:hover{transform:translateY(-1px);box-shadow:0 8px 24px #ef44445c}
.btn:focus{outline:2px solid var(--accent);outline-offset:2px}

.btn.is-ghost{background:transparent;border:1px solid var(--border)}
.btn.is-quiet{background:#0f0f0f;border-color:#0f0f0f}
.btn.is-blue{background:#1e3a8a;border-color:#1e40af}
.btn.is-disabled, .btn[disabled]{opacity:.6;cursor:not-allowed;filter:grayscale(20%)}

/* Small button variant for toolbars */
.btn-sm{padding:.5rem .75rem;border-radius:12px;font-weight:600}

/* =======================================
   Forms / Inputs (used by calculators)
======================================= */
label{font-size:12px;color:var(--sub)}
input,select,textarea{
  width:100%;
  padding:.55rem .6rem;
  border:1px solid var(--border);
  border-radius:var(--radius-md);
  background:#0f0f0f;
  color:var(--fg);
}
input:focus,select:focus,textarea:focus{
  outline:2px solid var(--accent); outline-offset:2px; border-color:var(--accent-2)
}
.row{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
.row3{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem}
.actions{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}

/* Search bar (calc/charts index) */
.searchbar{display:flex;gap:.6rem;margin-top:1rem;flex-wrap:wrap}
.searchbar input[type=search]{
  flex:1; min-width:220px; background:#0f0f0f
}

/* Pills / Tags (charts & calc lists) */
.pill,.tag{
  padding:.2rem .55rem;
  border:1px solid var(--border);
  background:#0f0f0f;
  border-radius:999px;
  color:#cbd5e1;
  font-size:12px;
}
.tags{display:flex;gap:.35rem;flex-wrap:wrap}

/* Flash messages */
.flash{padding:.6rem .8rem;border-radius:12px;border:1px solid var(--border)}
.flash.ok{background:#0c1f14;border-color:#14532d}
.flash.error{background:#220e10;border-color:#7f1d1d}

/* =======================================
   Tables (charts)
======================================= */
.tablewrap{overflow:auto;border:1px solid var(--border);border-radius:var(--radius-lg);background:#0b0b0b}
table{width:100%;border-collapse:collapse}
th,td{padding:.5rem .55rem;border-bottom:1px solid var(--border);text-align:left}
th{
  background:#0f0f0f;
  color:#cdd9ea;
  position:sticky; top:0; z-index:1;
}
tbody tr:hover{background:#0f0f0f}

/* =======================================
   Visual blocks used by calculators
======================================= */
.svgwrap,.imgwrap{
  background:#0b0b0b;
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  padding:.5rem;
}
.note{font-size:12px;color:var(--muted);margin-top:.4rem}

/* Viewer panels (charts) */
.viewer{max-width:1100px;margin:0 auto;padding:0 1.1rem 1.2rem}
.viewer .panel{display:none}
.viewer .panel.active{display:block}

/* =======================================
   Gallery (if used later)
======================================= */
.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.8rem}
.gallery-item{display:block;border-radius:14px;overflow:hidden;border:1px solid var(--border);background:#0a0a0a}
.gallery-item img{width:100%;height:180px;object-fit:cover;display:block;transition:transform .25s ease}
.gallery-item:hover img{transform:scale(1.04)}

/* =======================================
   Footer
======================================= */
.site-footer{border-top:1px solid var(--border);background:#0b0b0b}
.site-footer .footer-inner{
  display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;color:var(--sub)
}
.site-footer a{color:#fff;text-decoration:none;border-bottom:1px dashed var(--accent)}
.site-footer a:hover{color:var(--accent)}

/* =======================================
   Utilities
======================================= */
.mt-0{margin-top:0}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}
.mb-0{margin-bottom:0}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}
.center{text-align:center}
.right{text-align:right}
