@import url('https://fonts.googleapis.com/css2?family=Fraunces:wght@500;600;700&family=JetBrains+Mono:wght@400;500&family=Space+Grotesk:wght@400;500;600;700&display=swap');

:root{
  --bg: #f4f3f0;
  --bg-soft: #f0f2ef;
  --panel: rgba(255, 255, 255, 0.92);
  --panel-strong: #ffffff;
  --text: #1b1a1f;
  --muted: #5f6672;
  --accent: #ff6b35;
  --accent-2: #1c8c8c;
  --accent-3: #ffb703;
  --border: rgba(29, 34, 41, 0.12);
  --shadow: 0 20px 60px rgba(20, 22, 26, 0.16);
  --shadow-soft: 0 12px 30px rgba(22, 24, 28, 0.12);
  --footer-bg: linear-gradient(120deg, rgba(255, 255, 255, 0.9), rgba(231, 241, 239, 0.9));
  --footer-text: #1b1a1f;
  --footer-muted: #5f6672;
  --glow-1: rgba(255, 183, 3, 0.08);
  --glow-2: rgba(255, 107, 53, 0.06);
  --radius: 18px;
}

html[data-theme="escuro"]{
  --bg: #17181b;
  --bg-soft: #1b1e23;
  --panel: rgba(26, 28, 34, 0.92);
  --panel-strong: #1f2229;
  --text: #f1f3f6;
  --muted: #a3abb6;
  --accent: #ff6b35;
  --accent-2: #51bfb5;
  --accent-3: #ffd166;
  --border: rgba(255, 255, 255, 0.12);
  --shadow: 0 18px 50px rgba(0, 0, 0, 0.5);
  --shadow-soft: 0 12px 26px rgba(0, 0, 0, 0.45);
  --footer-bg: linear-gradient(120deg, rgba(14, 15, 18, 0.95), rgba(19, 25, 30, 0.8));
  --footer-text: #f1f3f6;
  --footer-muted: rgba(241, 243, 246, 0.7);
  --glow-1: rgba(255, 107, 53, 0.08);
  --glow-2: rgba(81, 191, 181, 0.08);
}

html[data-theme="leve"]{
  --bg: #f7f5f1;
  --bg-soft: #f1f4f4;
  --panel: rgba(255, 255, 255, 0.96);
  --panel-strong: #ffffff;
  --text: #22222a;
  --muted: #6a7280;
  --accent: #ff8b5b;
  --accent-2: #2b9a93;
  --accent-3: #ffd27a;
  --border: rgba(30, 34, 40, 0.1);
  --footer-bg: linear-gradient(120deg, rgba(255, 255, 255, 0.92), rgba(238, 242, 242, 0.92));
  --footer-text: #22222a;
  --footer-muted: #6a7280;
  --glow-1: rgba(255, 139, 91, 0.08);
  --glow-2: rgba(43, 154, 147, 0.08);
}

html[data-theme="claro"]{
  --bg: #f4f3f0;
  --bg-soft: #f0f2ef;
  --panel: rgba(255, 255, 255, 0.92);
  --panel-strong: #ffffff;
  --text: #1b1a1f;
  --muted: #5f6672;
  --accent: #ff6b35;
  --accent-2: #1c8c8c;
  --accent-3: #ffb703;
  --border: rgba(29, 34, 41, 0.12);
  --glow-1: rgba(255, 183, 3, 0.08);
  --glow-2: rgba(255, 107, 53, 0.06);
}

html[data-theme="verde"]{
  --bg: #eef4ef;
  --bg-soft: #e9f1ec;
  --panel: rgba(255, 255, 255, 0.94);
  --panel-strong: #ffffff;
  --text: #1d2b24;
  --muted: #5e7266;
  --accent: #2f7f5b;
  --accent-2: #1f9d8b;
  --accent-3: #8ccf7e;
  --border: rgba(30, 40, 34, 0.12);
  --footer-bg: linear-gradient(120deg, rgba(241, 246, 243, 0.9), rgba(226, 239, 230, 0.92));
  --footer-text: #1d2b24;
  --footer-muted: #5e7266;
  --glow-1: rgba(140, 207, 126, 0.08);
  --glow-2: rgba(47, 127, 91, 0.08);
}

html[data-theme="noturno"]{
  --bg: #0b0f16;
  --bg-soft: #121827;
  --panel: rgba(40, 45, 62, 0.94);
  --panel-strong: #343a50;
  --text: #8fb8ff;
  --muted: #b9c9ea;
  --accent: #3a6fc6;
  --accent-2: #244a86;
  --accent-3: #7c6bff;
  --border: rgba(143, 184, 255, 0.24);
  --shadow: 0 20px 60px rgba(3, 6, 12, 0.6);
  --shadow-soft: 0 12px 30px rgba(3, 6, 12, 0.5);
  --footer-bg: linear-gradient(120deg, rgba(10, 12, 18, 0.98), rgba(28, 36, 54, 0.78));
  --footer-text: #8fb8ff;
  --footer-muted: rgba(193, 208, 234, 0.75);
  --glow-1: rgba(102, 168, 255, 0.18);
  --glow-2: rgba(155, 140, 255, 0.18);
}

html[data-theme="divertido"]{
  --bg: #fff2f7;
  --bg-soft: #f4f9ff;
  --panel: rgba(255, 255, 255, 0.96);
  --panel-strong: #ffffff;
  --text: #1d1530;
  --muted: #5f5a7a;
  --accent: #ff4f87;
  --accent-2: #20c997;
  --accent-3: #ffd166;
  --border: rgba(29, 21, 48, 0.12);
  --shadow: 0 20px 60px rgba(40, 20, 80, 0.18);
  --shadow-soft: 0 12px 30px rgba(40, 20, 80, 0.12);
  --footer-bg: linear-gradient(120deg, rgba(255, 236, 246, 0.95), rgba(232, 246, 255, 0.92));
  --footer-text: #1d1530;
  --footer-muted: #5f5a7a;
  --glow-1: rgba(255, 79, 135, 0.12);
  --glow-2: rgba(32, 201, 151, 0.12);
}
html[data-theme="verdinho"]{
  --bg: #f1f6f3;
  --bg-soft: #ecf3ee;
  --panel: rgba(255, 255, 255, 0.94);
  --panel-strong: #ffffff;
  --text: #1f2a24;
  --muted: #5f6f66;
  --accent: #4da37b;
  --accent-2: #2c8c7c;
  --accent-3: #b1e3b5;
  --border: rgba(30, 40, 34, 0.1);
  --footer-bg: linear-gradient(120deg, rgba(241, 246, 243, 0.9), rgba(230, 241, 234, 0.92));
  --footer-text: #1f2a24;
  --footer-muted: #5f6f66;
  --glow-1: rgba(177, 227, 181, 0.08);
  --glow-2: rgba(44, 140, 124, 0.08);
}

html[data-theme="cru"]{
  --bg: #f4eee4;
  --bg-soft: #f0e9de;
  --panel: rgba(252, 249, 244, 0.96);
  --panel-strong: #fefbf6;
  --text: #2b2620;
  --muted: #6f6558;
  --accent: #c06b3e;
  --accent-2: #8c6f45;
  --accent-3: #e3b77c;
  --border: rgba(43, 38, 32, 0.12);
  --footer-bg: linear-gradient(120deg, rgba(254, 251, 246, 0.92), rgba(239, 232, 218, 0.92));
  --footer-text: #2b2620;
  --footer-muted: #6f6558;
  --glow-1: rgba(227, 183, 124, 0.08);
  --glow-2: rgba(192, 107, 62, 0.06);
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family:'Space Grotesk',sans-serif;
  background:var(--bg);
  color:var(--text);
  line-height:1.6;
}
body.sidebar-open{overflow:hidden}
body::before{
  content:none;
}
body::after{
  content:none;
}

.container{max-width:1120px;margin:0 auto;padding:1.3rem}
.site-header .container{
  display:grid;
  grid-template-columns:1fr auto;
  grid-template-rows:auto auto;
  align-items:center;
  column-gap:1rem;
}
.brand-wrap{padding-right:120px}
.site-header{
  padding:1.1rem 0 1.4rem;
  text-align:center;
  position:relative;
  background:var(--panel);
  border-bottom:1px solid var(--border);
  backdrop-filter:blur(12px);
}
.brand-wrap{display:flex;align-items:center;justify-content:center;gap:1rem;grid-column:1}
.brand-link{display:inline-flex}
.brand-logo{width:56px;height:56px;border-radius:16px;box-shadow:0 12px 26px rgba(20, 22, 26, 0.18)}
.brand{
  margin:0;
  font-size:2.2rem;
  letter-spacing:0.6px;
  font-family:'Fraunces',serif;
}
.tag{color:var(--muted);margin:0.5rem 0 0}

.user-profile{
  display:inline-flex;
  align-items:center;
  gap:0.6rem;
  padding:0.35rem 0.6rem;
  border-radius:999px;
  border:1px solid var(--border);
  background:var(--panel);
  box-shadow:var(--shadow-soft);
  grid-column:2;
  grid-row:1 / span 2;
  justify-self:end;
  align-self:center;
}
.user-profile-label{
  font-size:0.85rem;
  color:var(--muted);
  font-weight:600;
}
.user-avatar{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:36px;
  height:36px;
  border-radius:999px;
  border:1px solid var(--border);
  background:var(--panel-strong);
  overflow:hidden;
}
.user-avatar img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.top-nav{margin-top:1.1rem;font-size:0.95rem;grid-column:1}
.top-nav a{
  color:var(--muted);
  text-decoration:none;
  margin:0 0.35rem;
  padding:0.35rem 0.65rem;
  border-radius:999px;
  transition:all 0.3s ease;
}
.top-nav a:hover{
  color:var(--text);
  background:rgba(255, 107, 53, 0.12);
  transform:translateY(-2px);
}

h1,h2,h3{
  font-family:'Fraunces',serif;
  letter-spacing:0.3px;
}

.card{
  background:var(--panel);
  border-radius:var(--radius);
  padding:1.6rem;
  border:1px solid var(--border);
  box-shadow:var(--shadow-soft);
  position:relative;
  overflow:hidden;
  backdrop-filter:blur(10px);
  transition:border-color 0.3s ease, box-shadow 0.3s ease, transform 0.3s ease;
}
.card:hover{
  border-color:rgba(255, 107, 53, 0.28);
}
.card::after{
  content:none;
}
.card h2{margin-top:0;color:var(--accent)}
.small-desc{color:var(--muted)}
.lead{color:var(--muted);margin-top:0.35rem}
.hero-actions{
  margin-top:1rem;
  display:flex;
  justify-content:center;
  gap:0.8rem;
  flex-wrap:wrap;
}

.info-grid{
  margin-top:1.6rem;
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
  gap:1rem;
}

.info-block{
  margin-top:1.8rem;
  background:var(--panel);
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:1.4rem;
  box-shadow:var(--shadow-soft);
  display:grid;
  gap:1.2rem;
}
.info-block-item{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:1rem;
  align-items:flex-start;
  padding-bottom:1rem;
  border-bottom:1px dashed var(--border);
}
.info-block-item:last-child{
  border-bottom:none;
  padding-bottom:0;
}
.info-block-item h3{
  margin:0 0 0.35rem;
  color:var(--text);
}
.info-block-item p{
  margin:0;
  color:var(--muted);
}

.info-card{
  background:var(--panel);
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:1.3rem;
  box-shadow:var(--shadow-soft);
}

.info-card h3{margin:0.4rem 0 0.5rem}
.info-card p{margin:0;color:var(--muted)}
.info-icon{
  width:42px;
  height:42px;
  border-radius:12px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(255, 107, 53, 0.12);
  font-size:1.2rem;
}

.stat-row{
  margin-top:1.2rem;
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:0.9rem;
}

.stat-card{
  background:var(--panel);
  border:1px dashed var(--border);
  border-radius:var(--radius);
  padding:1rem 1.2rem;
}

.stat-card strong{display:block;margin-bottom:0.35rem}
.stat-card span{color:var(--muted)}

.grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:1rem;
  margin-top:1.4rem;
}
.grid .card{
  display:block;
  text-decoration:none;
  color:var(--text);
}
.grid .card h3{margin-top:0;color:var(--text)}
.grid .card p{color:var(--muted);margin-bottom:0}
.grid .card:hover h3{color:var(--accent)}
.section-title{margin:1.8rem 0 0.9rem;color:var(--accent-2)}

.equation-search{
  margin-top:1rem;
  width:100%;
  padding:0.7rem 0.85rem;
  border-radius:10px;
  border:1px solid var(--border);
  background:var(--panel);
  color:var(--text);
  box-shadow:0 6px 18px rgba(20, 22, 26, 0.1);
}

.equation-grid{
  margin-top:1.6rem;
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:1.4rem;
}

.equation-card h4{
  margin-top:1rem;
  color:var(--accent-2);
}
.equation-card h3 a{
  color:var(--accent-2);
  text-decoration:none;
  transition:all 0.3s ease;
}
.equation-card h3 a:hover{
  color:var(--text);
  transform:translateY(-1px);
}
.equation-formula{
  font-family:"JetBrains Mono",monospace;
  background:rgba(27, 26, 31, 0.04);
  border:1px solid var(--border);
  border-radius:10px;
  padding:0.45rem 0.6rem;
  margin:0.5rem 0 0.6rem;
  color:#2a2f36;
  font-size:0.95rem;
}
.equation-schematic{
  margin:0.6rem 0 1rem;
  padding:0.6rem;
  border-radius:12px;
  border:1px dashed var(--border);
  background:var(--panel);
}
.equation-schematic img{
  width:100%;
  height:auto;
  border-radius:10px;
  display:block;
}
.equation-tags{
  display:flex;
  flex-wrap:wrap;
  gap:0.4rem;
  margin-bottom:0.6rem;
}
.tag-pill{
  display:inline-flex;
  padding:0.15rem 0.5rem;
  border-radius:999px;
  background:rgba(28,140,140,0.12);
  color:var(--accent-2);
  font-size:0.75rem;
}
.equation-notes-label{
  display:flex;
  flex-direction:column;
  gap:0.4rem;
  margin-top:0.8rem;
  color:var(--muted);
}
.equation-notes{
  min-height:90px;
  border-radius:12px;
  border:1px solid var(--border);
  padding:0.6rem 0.7rem;
  background:var(--panel);
  color:var(--text);
}
.mechanics-summary{margin-top:1.4rem}
.equation-summary-box{
  margin-top:0.8rem;
  padding:1rem 1.1rem;
  border-radius:14px;
  border:1px dashed var(--border);
  background:var(--panel);
}
.equation-summary-box .result-list{
  margin:0;
  padding-left:0;
  list-style:none;
  display:grid;
  gap:0.45rem;
}
.equation-summary-box .result-list li{
  line-height:1.5;
  display:flex;
  gap:0.4rem;
  align-items:flex-start;
}
.formula{
  display:inline-block;
  font-family:"JetBrains Mono",monospace;
  font-size:0.92rem;
  padding:0.08rem 0.45rem;
  border-radius:8px;
  border:1px solid var(--border);
  background:rgba(27, 26, 31, 0.06);
  color:var(--text);
  margin:0 0.15rem;
  white-space:nowrap;
}
.mechanics-sim{margin-top:1.4rem}
.beam-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
  gap:0.8rem;
  margin-top:0.8rem;
}
.beam-grid label{
  display:flex;
  flex-direction:column;
  gap:0.35rem;
  color:var(--muted);
  font-size:0.9rem;
}
.beam-grid input,
.beam-grid select{
  padding:0.55rem 0.7rem;
  border-radius:10px;
  border:1px solid var(--border);
  background:var(--panel);
  color:var(--text);
}
.beam-loads{margin-top:1rem}
.beam-loads-header{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:1rem;
  flex-wrap:wrap;
}
.beam-load-list{
  margin-top:0.6rem;
  display:grid;
  gap:0.6rem;
}
.beam-load-item{
  border:1px dashed var(--border);
  border-radius:12px;
  padding:0.6rem;
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(140px,1fr));
  gap:0.6rem;
  align-items:end;
}
.beam-load-item label{
  display:flex;
  flex-direction:column;
  gap:0.35rem;
  font-size:0.85rem;
  color:var(--muted);
}
.beam-load-item input{
  padding:0.45rem 0.6rem;
  border-radius:10px;
  border:1px solid var(--border);
  background:var(--panel);
  color:var(--text);
}
.beam-chart{
  border:1px solid var(--border);
  border-radius:12px;
  padding:0.6rem;
  background:var(--panel);
}
.beam-charts{
  display:grid;
  grid-template-columns:1fr;
  gap:0.8rem;
  margin-top:1rem;
}
.beam-chart canvas{
  width:100%;
  height:200px;
  display:block;
}
.beam-results{
  margin-top:0.8rem;
  padding:0.8rem;
  border-radius:12px;
  border:1px solid var(--border);
  background:var(--panel);
}

.form-grid{display:grid;grid-template-columns:1fr;gap:1.5rem}
.form-grid label{display:flex;flex-direction:column;font-size:0.95rem;color:var(--muted)}
.form-grid input{
  margin-top:0.45rem;
  padding:0.7rem 0.85rem;
  border-radius:10px;
  border:1px solid var(--border);
  background:var(--panel);
  color:var(--text);
  box-shadow:0 6px 18px rgba(24, 26, 30, 0.08);
  transition:all 0.3s ease;
  width:100%;
  box-sizing:border-box;
}
.form-grid select{
  margin-top:0.45rem;
  padding:0.65rem 0.85rem;
  border-radius:10px;
  border:1px solid var(--border);
  background:var(--panel);
  color:var(--text);
  width:100%;
  box-sizing:border-box;
}
.form-grid input:focus{
  outline:none;
  border-color:rgba(255, 107, 53, 0.6);
  box-shadow:0 12px 28px rgba(255, 107, 53, 0.25);
  transform:translateY(-1px);
}
.form-grid input.locked-empty{
  background:rgba(0, 0, 0, 0.04);
  color:var(--muted);
  cursor:not-allowed;
  box-shadow:none;
  border-color:var(--border);
}

.actions{display:flex;gap:0.8rem;justify-content:flex-end}
.btn-primary{
  background:linear-gradient(135deg,var(--accent),var(--accent-3));
  color:#ffffff;
  border:none;
  padding:0.7rem 1.2rem;
  border-radius:10px;
  cursor:pointer;
  font-weight:600;
  transition:all 0.3s ease;
  box-shadow:0 12px 26px rgba(255, 107, 53, 0.28);
  position:relative;
  overflow:hidden;
}
.btn-primary:hover{
  filter:brightness(1.03);
  transform:translateY(-2px) scale(1.02);
}
.btn-primary:active{transform:translateY(1px) scale(0.98)}
.btn-primary::after{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(120deg, transparent 0%, rgba(255,255,255,0.55) 45%, transparent 65%);
  opacity:0;
  transform:translateX(-120%);
  transition:opacity 0.3s ease;
}
.btn-primary:hover::after{
  opacity:0.7;
  transform:translateX(120%);
  transition:transform 0.6s ease;
}

.result{
  margin-top:1.2rem;
  padding:0.95rem 1rem;
  border-radius:12px;
  border:1px solid var(--border);
  background:var(--panel);
  transition:all 0.3s ease;
  min-height:3rem;
}
.result.neon{
  border-color:rgba(255, 107, 53, 0.35);
  box-shadow:0 14px 30px rgba(255, 107, 53, 0.18);
  animation:fadeIn 0.45s ease both;
}
.result.error{
  background:rgba(255, 237, 233, 0.9);
  color:#9c1b1b;
  border-color:rgba(220, 96, 96, 0.3);
}
.result.warning{
  background:rgba(255, 183, 3, 0.16);
  color:#7a4b00;
  border-color:rgba(255, 183, 3, 0.4);
}
.result.flash{animation:flashUp .28s ease}
@keyframes flashUp{0%{transform:translateY(6px);opacity:0}50%{transform:translateY(0);opacity:1}100%{transform:translateY(0);opacity:1}}
@keyframes fadeIn{from{opacity:0;transform:translateY(10px) scale(0.98)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes slideIn{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
@keyframes drift{0%,100%{transform:translate(0,0)}50%{transform:translate(-12px,10px)}}
.result-list{margin:0.6rem 0 0;padding-left:1rem;color:var(--text)}

.site-footer{margin-top:2.4rem;text-align:center;color:var(--muted);font-size:0.95rem}

/* Layout: sidebar + content */
.layout{display:grid;grid-template-columns:240px 1fr;gap:1.1rem;align-items:start}
.sidebar{
  background:var(--panel);
  padding:1.15rem;
  border-radius:var(--radius);
  border:1px solid var(--border);
  box-shadow:var(--shadow-soft);
  transition:transform 0.35s ease, box-shadow 0.35s ease;
  overflow-y:auto;
  max-height:calc(100vh - 140px);
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
}
.sidebar h3{margin-top:0;color:var(--text)}
.calc-list{list-style:none;padding:0;margin:0}
.calc-list li{margin:0.45rem 0}
.calc-list a{
  color:var(--muted);
  text-decoration:none;
  padding:0.35rem 0.5rem;
  display:block;
  border-radius:8px;
  transition:all 0.3s ease;
}
.calc-list a:hover{
  background:rgba(255, 107, 53, 0.12);
  color:var(--text);
  transform:translateY(-2px) scale(1.02);
  box-shadow:0 10px 22px rgba(255, 107, 53, 0.16);
}
.calc-list a:active{transform:translateY(1px) scale(0.98)}
.calc-group{
  margin:0.9rem 0 0.3rem;
  font-size:0.72rem;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--muted);
  font-weight:700;
}
.calc-more a{
  color:var(--accent);
  font-weight:600;
}
.calc-accordions{display:flex;flex-direction:column;gap:0.6rem}
.calc-accordion{
  border:1px solid rgba(255, 107, 53, 0.14);
  border-radius:12px;
  padding:0.5rem 0.6rem;
  background:var(--panel);
}
.calc-accordion summary{
  cursor:pointer;
  font-weight:600;
  color:var(--text);
  list-style:none;
  display:flex;
  align-items:center;
  justify-content:space-between;
}
.calc-accordion summary::-webkit-details-marker{display:none}
.calc-accordion summary::after{
  content:'▾';
  font-size:0.9rem;
  color:var(--muted);
}
.calc-accordion[open] summary::after{transform:rotate(180deg)}
.calc-accordion .calc-list{margin-top:0.4rem}
.calc-accordion .calc-more{margin-top:0.35rem}

.theme-panel{
  margin-top:1.2rem;
  padding-top:0.9rem;
  border-top:1px dashed var(--border);
}
.theme-panel h3{margin-bottom:0.6rem}
.theme-options{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:0.45rem;
}
.profile-theme{
  margin-top:1rem;
  padding-top:0.8rem;
}
.theme-btn{
  background:var(--panel);
  border:1px solid var(--border);
  color:var(--text);
  padding:0.4rem 0.6rem;
  border-radius:10px;
  font-size:0.85rem;
  cursor:pointer;
  transition:all 0.2s ease;
}
.theme-btn:hover{
  transform:translateY(-2px);
  box-shadow:0 8px 18px rgba(20, 22, 26, 0.14);
}
.theme-btn.active{
  background:var(--accent);
  color:#ffffff;
  border-color:transparent;
}

.sidebar-toggle{
  display:none;
  position:relative;
  z-index:70;
  margin-bottom:0.6rem;
  padding:0.45rem 0.7rem;
  border-radius:10px;
  border:1px solid var(--border);
  background:var(--panel);
  color:var(--text);
  box-shadow:0 8px 20px rgba(20, 22, 26, 0.12);
  cursor:pointer;
}
.sidebar-close{
  display:none;
  background:transparent;
  color:var(--muted);
  border:none;
  font-size:20px;
  float:right;
}
.sidebar-overlay{
  position:fixed;
  inset:0;
  background:linear-gradient(120deg, rgba(20, 22, 26, 0.55), rgba(20, 22, 26, 0.3));
  opacity:0;
  pointer-events:none;
  transition:opacity 0.25s ease;
  z-index:40;
}
.sidebar-overlay.active{
  opacity:1;
  pointer-events:auto;
}

@media (max-width:900px){
  .layout{grid-template-columns:1fr}
  .sidebar{
    position:fixed;
    left:12px;
    top:70px;
    bottom:12px;
    width:260px;
    transform:translateX(-120%);
    transition:transform 0.25s ease;
    z-index:50;
    max-height:calc(100vh - 82px);
  }
  .sidebar.open{transform:translateX(0)}
  .sidebar-toggle{display:inline-block}
  .sidebar-close{display:inline-block}
}

@media (max-width:720px){
  .site-header{text-align:left}
  .site-header .container{
    grid-template-columns:1fr;
    grid-template-rows:auto;
    row-gap:0.7rem;
    justify-items:start;
  }
  .brand-wrap{
    justify-content:flex-start;
    flex-wrap:wrap;
    padding-right:0;
  }
  .top-nav{
    display:flex;
    flex-wrap:wrap;
    justify-content:flex-start;
    grid-column:1;
  }
  .user-profile{
    position:static;
    margin-top:0.4rem;
    grid-column:1;
    justify-self:start;
    align-self:start;
  }
  .profile-header{flex-direction:column;align-items:flex-start}
  .profile-actions{flex-direction:column;align-items:stretch}
  .profile-actions .btn-primary,
  .profile-actions .btn-secondary{width:100%}
}

/* hero & cards animations */
.hero{
  padding:1.8rem;
  border-radius:var(--radius);
  background:
    linear-gradient(135deg, rgba(255, 107, 53, 0.12), rgba(28, 140, 140, 0.12)),
    repeating-linear-gradient(120deg, rgba(255, 255, 255, 0.2) 0, rgba(255, 255, 255, 0.2) 12px, transparent 12px, transparent 24px);
  text-align:center;
  opacity:1;
  transform:none;
  border:1px solid var(--border);
  box-shadow:0 10px 24px rgba(20, 22, 26, 0.1);
  position:relative;
  overflow:hidden;
}
.hero.appear{animation:fadeIn 0.6s ease both}
.hero h2{font-size:2.25rem;margin:0;color:var(--text)}
.hero::after{
  content:'';
  position:absolute;
  right:-40px;
  top:-40px;
  width:160px;
  height:160px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(255, 183, 3, 0.45), transparent 70%);
  opacity:0.7;
  pointer-events:none;
}
.grid .card{transition:transform .2s ease, box-shadow .2s ease;opacity:1;transform:none}
.grid .card.appear{animation:fadeIn 0.5s ease both}
.grid .card:hover{transform:translateY(-6px);box-shadow:0 18px 40px rgba(20, 22, 26, 0.18)}

.tool-card{max-width:520px;margin:0 auto}
.tool-calc{margin-top:1rem}
.calc-display{
  width:100%;
  font-size:1.4rem;
  padding:0.75rem 0.9rem;
  border-radius:12px;
  border:1px solid var(--border);
  background:var(--panel);
  box-shadow:0 6px 18px rgba(20, 22, 26, 0.1);
}
.calc-toolbar{
  margin-top:0.65rem;
  display:flex;
  flex-wrap:wrap;
  gap:0.6rem;
}
.calc-grid{
  margin-top:0.9rem;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:0.6rem;
}
.calc-btn{
  padding:0.65rem 0.5rem;
  border-radius:10px;
  border:1px solid var(--border);
  background:var(--panel);
  cursor:pointer;
  box-shadow:0 8px 20px rgba(20, 22, 26, 0.12);
  transition:all 0.25s ease;
}
.calc-btn:hover{transform:translateY(-2px) scale(1.03)}
.calc-btn:active{transform:translateY(1px) scale(0.98)}
.calc-btn-primary{
  background:linear-gradient(135deg,var(--accent),var(--accent-3));
  color:#fff;
  border:none;
}
.calc-hint{margin-top:0.6rem;color:var(--muted);font-size:0.9rem}
.binary-converter{
  margin-top:1.4rem;
  padding-top:1rem;
  border-top:1px dashed var(--border);
}
.binary-converter h4{
  margin:0;
  color:var(--accent-2);
}
.binary-converter input[readonly]{
  background:rgba(0, 0, 0, 0.04);
  color:var(--text);
}
.binary-converter .converter-status{
  margin:0.4rem 0 0;
  min-height:1.3rem;
  color:var(--muted);
}
.binary-converter .converter-status.error{
  color:#9c1b1b;
}
.calc-history{
  margin-top:0.75rem;
  padding:0.6rem 0.7rem;
  border-radius:12px;
  border:1px dashed var(--border);
  background:#f7f9fc;
}
.calc-history h4{margin:0 0 0.4rem 0;font-size:0.95rem}
.history-list{list-style:none;margin:0;padding:0;max-height:160px;overflow:auto}
.history-item{
  display:flex;
  justify-content:space-between;
  gap:0.5rem;
  padding:0.25rem 0.2rem;
  font-size:0.85rem;
  cursor:pointer;
  border-bottom:1px dashed rgba(90,107,127,0.15);
}
.history-item:last-child{border-bottom:none}
.history-expr{color:var(--muted)}
.history-result{font-weight:600}

.premium-card{margin-bottom:1.4rem}
.premium-actions{display:flex;flex-wrap:wrap;gap:1.4rem;row-gap:1rem;align-items:center;margin-top:1rem}
.btn-secondary{
  background:rgba(28, 140, 140, 0.12);
  color:var(--text);
  border:1px solid rgba(28, 140, 140, 0.28);
  padding:0.65rem 1.1rem;
  border-radius:10px;
  cursor:pointer;
  transition:all 0.3s ease;
}
.btn-secondary:hover{
  background:rgba(28, 140, 140, 0.18);
  transform:translateY(-2px) scale(1.02)
}
.btn-secondary:active{transform:translateY(1px) scale(0.98)}
.premium-status{font-weight:600;color:var(--muted)}
.premium-status-box{display:inline-flex;align-items:center;gap:0.4rem;padding:0.45rem 0.7rem;border-radius:10px;border:1px solid rgba(255, 107, 53, 0.25);background:rgba(255, 107, 53, 0.1);color:var(--text);}
.premium-grid{margin-top:1rem}
.premium-tool h3{margin-top:0;color:var(--accent)}
.premium-tool .small-desc{margin-bottom:1rem}
.premium-tool-header{display:flex;align-items:center;justify-content:space-between;gap:0.8rem}
.premium-tool-header h3{margin:0;color:var(--accent)}
.premium-tool{
  display:flex;
  flex-direction:column;
  gap:0.9rem;
  animation:fadeIn 0.5s ease both;
}
.premium-link-card{display:flex;flex-direction:column;gap:0.7rem;}
.premium-link-card .small-desc{margin-bottom:0.4rem;}
.premium-link-card .btn-primary,
.premium-link-card .btn-secondary{align-self:flex-start;}
.premium-link-card .btn-secondary,
.premium-link-card .btn-primary{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  line-height:1.2;
  min-height:38px;
  white-space:nowrap;
}
.btn-ghost{
  background:transparent;
  border:1px solid var(--border);
  color:var(--muted);
  padding:0.35rem 0.75rem;
  border-radius:999px;
  font-size:0.85rem;
  cursor:pointer;
  transition:all 0.25s ease;
}
.btn-ghost:hover{color:var(--accent);border-color:var(--accent);transform:translateY(-2px) scale(1.02)}
.btn-ghost:active{transform:translateY(1px) scale(0.98)}
.premium-output{
  margin-top:0;
  padding:0.8rem;
  border:1px dashed var(--border);
  border-radius:12px;
  background:var(--panel);
}
.premium-output table{width:100%;border-collapse:collapse;font-size:0.9rem}
.premium-output th,.premium-output td{padding:0.35rem 0.5rem;border-bottom:1px solid var(--border);text-align:left}
.chart-frame{
  width:100%;
  max-width:100%;
  height:240px;
  max-height:240px;
  min-height:240px;
  overflow:hidden;
  border-radius:12px;
  border:1px solid var(--border);
  background:var(--panel);
  display:flex;
  align-items:center;
  justify-content:center;
}
.premium-chart{
  width:100%;
  max-width:100%;
  height:240px !important;
  max-height:240px !important;
  min-height:240px;
  display:block;
  overflow:hidden;
}
.premium-table{margin-top:1rem;overflow:auto;max-height:260px;border:1px solid var(--border);border-radius:10px}

.circuit-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:1.1rem;
}
.circuit-preview{
  margin-top:1rem;
  border:1px solid var(--border);
  border-radius:12px;
  overflow:hidden;
  background:var(--panel);
}
.circuit-iframe{
  width:100%;
  height:520px;
  border:0;
  display:block;
}
.premium-table table{width:100%;border-collapse:collapse;font-size:0.9rem}
.premium-table th,.premium-table td{padding:0.4rem 0.6rem;border-bottom:1px solid var(--border);text-align:left}
.premium-modal{
  position:fixed;
  inset:0;
  background:rgba(18, 20, 24, 0.6);
  display:none;
  align-items:center;
  justify-content:center;
  z-index:100;
}
.premium-modal.open{display:flex}
.premium-modal-content{
  background:var(--panel);
  padding:1.4rem;
  border-radius:16px;
  max-width:520px;
  width:90%;
  box-shadow:var(--shadow);
  animation:fadeIn 0.35s ease both;
  position:relative;
}
.plan-picker{margin-top:0.6rem}
.plan-picker label{display:flex;flex-direction:column;gap:0.4rem;color:var(--muted);font-size:0.95rem}
.plan-picker select{
  padding:0.55rem 0.7rem;
  border-radius:10px;
  border:1px solid var(--border);
  background:var(--panel);
  color:var(--text);
}
.premium-close{
  position:absolute;
  top:10px;
  right:12px;
  border:none;
  background:transparent;
  color:var(--muted);
  font-size:1.4rem;
  cursor:pointer;
  line-height:1;
}
.premium-close:hover{color:var(--accent);transform:translateY(-1px)}
.premium-qr{display:grid;gap:0.6rem;margin:0.8rem 0}
.premium-qr.hidden{display:none}
.premium-qr img{max-width:220px;width:100%;border-radius:12px;border:1px solid var(--border)}
.premium-qr textarea{width:100%;min-height:80px;border-radius:10px;border:1px solid var(--border);padding:0.6rem}
.help-modal{position:fixed;inset:0;display:none;align-items:center;justify-content:center;z-index:1000}
.help-modal.open{display:flex}
.help-modal__backdrop{position:absolute;inset:0;background:rgba(18,20,24,0.55);backdrop-filter:blur(6px);animation:fadeIn 0.2s ease}
.help-modal__dialog{position:relative;z-index:1;max-width:560px;width:90%;background:var(--panel);border-radius:16px;padding:1.2rem 1.4rem;box-shadow:0 30px 80px rgba(20,22,26,0.25);animation:slideIn 0.25s ease}
.help-modal__close{position:absolute;right:12px;top:10px;border:none;background:transparent;font-size:1.4rem;color:var(--muted);cursor:pointer}
.help-modal__content{margin-top:0.6rem;color:var(--text);line-height:1.5}


.calc-section{margin-top:1rem}
.area-list a{font-weight:600}
.site-footer{
  background:var(--footer-bg);
  color:var(--footer-text);
  padding:22px 0;
  text-align:center;
  font-family:'Space Grotesk',sans-serif;
}
.site-footer .footer-content p{margin:0.3rem 0}
.site-footer .footer-sub{font-size:0.9em;color:var(--footer-muted)}
.site-footer .footer-links{margin-top:10px}
.site-footer .footer-links a{color:var(--footer-text);margin:0 10px;text-decoration:none}
.site-footer .footer-links a:hover{color:var(--accent-3)}

.pro-title{color:#ffd700}
.pro-list a{color:#b08b00}
.pro-lock{margin-left:6px}
.premium-benefits{margin:0.8rem 0 1rem;padding-left:1rem;color:var(--text)}
.premium-benefits li{margin:0.35rem 0}

.user-avatar{
  position:static;
  width:36px;
  height:36px;
  border-radius:50%;
  overflow:hidden;
  border:1px solid var(--border);
  box-shadow:0 8px 22px rgba(20, 22, 26, 0.18);
}
.user-avatar img{width:100%;height:100%;object-fit:cover}

.profile-card{max-width:520px;margin:0 auto}
.profile-header{display:flex;gap:1rem;align-items:center;margin:1rem 0}
.profile-photo{width:72px;height:72px;border-radius:16px;object-fit:cover;border:1px solid var(--border)}
.profile-actions{display:flex;gap:0.6rem;margin-top:0.8rem;align-items:center}
.auth-debug{margin-top:0.8rem}
.auth-debug summary{
  cursor:pointer;
  font-weight:600;
  color:var(--muted);
}
.auth-debug pre{
  margin-top:0.6rem;
  padding:0.6rem 0.7rem;
  border-radius:10px;
  border:1px solid var(--border);
  background:var(--panel);
  color:var(--text);
  white-space:pre-wrap;
  word-break:break-word;
  font-size:0.85rem;
}

.site-footer .footer-donation{margin-top:16px;border-top:1px solid rgba(255,255,255,0.2);padding-top:16px}
.site-footer .donation-title{font-weight:600;margin:0 0 6px}
.site-footer .donation-text{margin:0 0 12px;color:var(--footer-muted)}
.site-footer .donation-actions{display:flex;gap:16px;flex-wrap:wrap;align-items:center;justify-content:center}
.site-footer .donation-qr{width:120px;height:120px;border-radius:8px;background:#fff;padding:6px}
.site-footer .donation-controls{display:flex;flex-direction:column;gap:6px;align-items:center}
.site-footer .btn-donate{padding:8px 14px;border-radius:10px}
.site-footer .donation-hint{margin:0;color:var(--footer-muted);font-size:0.85rem}

@media (prefers-reduced-motion: reduce){
  *{
    animation-duration:0.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:0.01ms !important;
    scroll-behavior:auto !important;
  }
}
.hidden{display:none}

.converter-header{
  display:flex;
  flex-wrap:wrap;
  gap:1rem;
  align-items:flex-start;
  justify-content:space-between;
}
.converter-tabs{
  display:inline-flex;
  gap:0.5rem;
  background:#f1f5fb;
  padding:0.35rem;
  border-radius:999px;
  border:1px solid var(--border);
}
.tab-button{
  border:none;
  background:transparent;
  padding:0.45rem 0.9rem;
  border-radius:999px;
  cursor:pointer;
  font-weight:600;
  color:var(--muted);
  transition:all 0.2s ease;
}
.tab-button.active{
  background:var(--panel);
  color:var(--accent);
  box-shadow:0 10px 22px rgba(20, 22, 26, 0.18);
}
.tab-panel{display:none;margin-top:1.2rem}
.tab-panel.active{display:block;animation:fadeIn 0.4s ease both}

.converter-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:1rem;
  align-items:end;
}
.converter-grid label{
  display:flex;
  flex-direction:column;
  gap:0.45rem;
  color:var(--muted);
  font-size:0.95rem;
}
.converter-grid select,
.converter-grid input{
  padding:0.65rem 0.8rem;
  border-radius:10px;
  border:1px solid var(--border);
  background:var(--panel);
  color:var(--text);
}
.converter-actions{
  grid-column:1 / -1;
  display:flex;
  flex-wrap:wrap;
  gap:0.8rem;
}
.converter-format{
  grid-column:1 / -1;
  display:flex;
  flex-wrap:wrap;
  gap:1rem;
  align-items:center;
}
.toggle-row{
  display:inline-flex;
  align-items:center;
  gap:0.4rem;
}
.converter-status{margin:0.4rem 0 0}
.extra-block,
.model-block{
  grid-column:1 / -1;
  padding:1rem;
  border-radius:12px;
  border:1px dashed var(--border);
  background:#f7f9fd;
  display:none;
}
.extra-block.active,
.model-block.active{display:block}
.extra-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:1rem;
}
.input-group{
  display:none;
  gap:0.6rem;
  align-items:end;
}
.input-group.active{
  display:grid;
  grid-template-columns:1fr 1fr;
}
.prefixes-card{
  padding:1rem;
  border-radius:14px;
  border:1px solid var(--border);
  background:var(--panel);
}
.prefix-io{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:1rem;
  margin:0.8rem 0 1rem;
}
.prefix-block{
  border:1px solid var(--border);
  border-radius:14px;
  padding:0.9rem;
  background:var(--panel-strong);
}
.prefix-block h4{
  margin:0 0 0.6rem;
  color:var(--accent-2);
}
.prefix-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:1rem;
}
.prefix-examples{
  margin-top:1rem;
  padding-top:0.6rem;
  border-top:1px dashed var(--border);
}
.prefix-inputs{
  margin:0.2rem 0 0.8rem;
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:0.8rem;
}
.prefix-output{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:0.6rem;
  margin-bottom:1rem;
}
.prefix-output .prefix-pill{
  padding:0.5rem 0.7rem;
  border-radius:10px;
  border:1px solid var(--border);
  background:var(--panel-strong);
  display:flex;
  flex-direction:column;
  gap:0.2rem;
}
.prefix-output .prefix-label{
  font-size:0.75rem;
  color:var(--muted);
}
.prefix-result{
  border:1px dashed var(--border);
  border-radius:12px;
  padding:0.6rem 0.8rem;
  background:rgba(255, 255, 255, 0.6);
  font-weight:600;
  color:var(--text);
  min-height:2.6rem;
  display:flex;
  align-items:center;
}
.percent-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:1rem;
  margin-top:0.8rem;
}
.percent-card{
  border:1px dashed var(--border);
  border-radius:14px;
  padding:1rem;
  background:var(--panel);
}
.percent-card h4{
  margin:0 0 0.4rem;
  color:var(--accent-2);
}
.percent-form{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(140px,1fr));
  gap:0.6rem;
  margin-top:0.6rem;
}
.percent-form label{
  display:flex;
  flex-direction:column;
  font-size:0.88rem;
  color:var(--muted);
}
.percent-form input{
  margin-top:0.35rem;
  padding:0.55rem 0.7rem;
  border-radius:10px;
  border:1px solid var(--border);
  background:var(--panel);
}
.function-panel{
  margin-top:0.8rem;
  display:grid;
  gap:1rem;
}
.function-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(140px,1fr));
  gap:0.6rem;
}
.function-grid label{
  display:flex;
  flex-direction:column;
  font-size:0.9rem;
  color:var(--muted);
}
.function-grid input{
  margin-top:0.35rem;
  padding:0.55rem 0.7rem;
  border-radius:10px;
  border:1px solid var(--border);
  background:var(--panel);
}
.function-scale{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(140px,1fr));
  gap:0.6rem;
  align-items:end;
}
.function-scale input{
  margin-top:0.35rem;
  padding:0.55rem 0.7rem;
  border-radius:10px;
  border:1px solid var(--border);
  background:var(--panel);
}
.function-chart{
  border:1px solid var(--border);
  border-radius:14px;
  padding:0.6rem;
  background:var(--panel);
}
.function-chart canvas{
  width:100%;
  height:320px;
  display:block;
}
.converter-status.error{
  color:#9c1b1b;
}
.converter-status.error::before{
  content:'!';
  display:inline-block;
  margin-right:0.4rem;
}
.model-block .small-desc.active{
  color:#9c1b1b;
}
.model-block [data-model-gain-group],
.model-block [data-model-spring-group],
.model-block [data-model-length-group]{
  display:none;
}
.model-block [data-model-gain-group].active,
.model-block [data-model-spring-group].active{
  display:block;
}
.model-block [data-model-length-group].active{
  display:grid;
}

.drop-zone {
  position: relative;
  border: 2px dashed var(--border);
  border-radius: 10px;
  padding: 2rem;
  text-align: center;
  background: var(--panel);
  cursor: pointer;
  transition: all 0.2s ease;
}
.drop-zone:hover, .drop-zone.drag-over {
  border-color: var(--accent);
  background: rgba(255, 107, 53, 0.06);
}
.drop-zone-label {
  color: var(--muted);
  font-weight: 500;
  position: relative;
  z-index: 2;
}
.drop-zone input[type="file"] {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  cursor: pointer;
  z-index: 1;
}
.file-info {
  display: none;
  align-items: center;
  justify-content: center;
  margin-top: 1rem;
  position: relative;
  z-index: 2;
}
.file-name {
  font-weight: 600;
  color: var(--text);
}
.btn-remove-file {
  background: transparent;
  border: none;
  color: var(--muted);
  font-size: 1.5rem;
  cursor: pointer;
  margin-left: 0.5rem;
}
.btn-remove-file:hover {
  color: var(--accent);
}
.supported-conversions {
  margin-top: 2rem;
  padding: 1.5rem;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--bg-soft);
}
.supported-conversions h4 {
  margin-top: 0;
  color: var(--accent);
}
#conversion-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 0.5rem;
  font-size: 0.9rem;
  color: var(--muted);
}

.miniftool-card {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}
.miniftool-header {
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
}
.miniftool-header-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}
.miniftool-grid {
  display: grid;
  gap: 1.5rem;
}
.miniftool-panel {
  display: none;
  flex-direction: column;
  gap: 1.5rem;
}
.miniftool-panel.active {
  display: flex;
}
.miniftool-section {
  padding: 1.25rem;
  border-radius: 14px;
  border: 1px solid var(--border);
  background: var(--bg-soft);
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.miniftool-section h3 {
  margin: 0;
}
.miniftool-section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}
.miniftool-list {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.miniftool-list-plain {
  list-style: none;
  margin: 0;
  padding-left: 0;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  font-size: 0.95rem;
}
.miniftool-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 0.75rem;
  align-items: end;
  padding: 0.75rem;
  border-radius: 10px;
  background: var(--panel);
  border: 1px solid var(--border);
}
.miniftool-row-load {
  grid-template-columns: minmax(160px, 1fr) minmax(220px, 2fr) auto;
}
.miniftool-row .btn-link {
  align-self: center;
  width: 100%;
}
.miniftool-row input,
.miniftool-row select{
  width:100%;
  box-sizing:border-box;
}
.miniftool-section .btn-secondary {
  white-space: nowrap;
}
.miniftool-section .miniftool-section-header .btn-secondary {
  min-width: 120px;
}
.miniftool-row label {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  font-size: 0.9rem;
}
.miniftool-fields {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 0.6rem;
}
.miniftool-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: center;
}
.miniftool-example {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}
.miniftool-note {
  margin: 0;
}
.miniftool-svg {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 0.5rem;
}
.miniftool-svg svg {
  width: 100%;
  height: auto;
  display: block;
}
.miniftool-svg-plot {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.miniftool-diagram-grid {
  display: grid;
  gap: 1rem;
}
.miniftool-table summary {
  cursor: pointer;
  font-weight: 600;
}

.percent-grid {
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
}
.percent-note {
  background: var(--bg-soft);
  border: 1px solid var(--border);
}
.helpful-content{
  margin-top:1.6rem;
  padding:1.2rem;
  border-radius:14px;
  border:1px solid var(--border);
  background:var(--bg-soft);
}
.helpful-section + .helpful-section{
  margin-top:1rem;
}
.helpful-text{
  color:var(--text);
  line-height:1.6;
}
.faq-item{
  border:1px solid var(--border);
  border-radius:10px;
  padding:0.7rem 0.9rem;
  background:var(--panel);
}
.faq-item + .faq-item{
  margin-top:0.6rem;
}

@media (min-width: 960px) {
  .miniftool-tabs {
    display: none;
  }
  .miniftool-header {
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
  }
  .miniftool-grid {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr);
  }
  .miniftool-panel {
    display: flex !important;
  }
  .miniftool-left {
    grid-column: 1;
  }
  .miniftool-right {
    grid-column: 2;
  }
  .miniftool-diagrams {
    grid-column: 2;
  }
  .miniftool-diagram-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .miniftool-diagram-grid .miniftool-svg-plot:last-child {
    grid-column: span 2;
  }
  .miniftool-section .form-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  .miniftool-row-load {
    grid-template-columns: 1fr;
  }
  .miniftool-row .btn-link {
    justify-self: stretch;
  }
}

.triangle-card{margin-top:1.2rem}
.triangle-grid{
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(0, 1fr);
  gap:1.4rem;
  align-items:start;
}
.triangle-preview{
  border:1px solid var(--border);
  border-radius:12px;
  padding:0.8rem;
  background:var(--panel);
}
#triangle-canvas{
  width:100%;
  height:240px;
  display:block;
  border-radius:12px;
  border:1px solid var(--border);
  background:linear-gradient(135deg, rgba(247, 249, 252, 0.9), rgba(241, 245, 249, 0.9));
  box-shadow:inset 0 0 0 1px rgba(27, 26, 31, 0.04);
}
.triangle-results{
  margin-top:1rem;
  padding:0.9rem;
  border-radius:12px;
  border:1px solid var(--border);
  background:var(--panel);
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(160px, 1fr));
  gap:0.8rem;
}
.shape-card{
  margin-top:1.2rem;
}
.shape-results{
  margin-top:1rem;
  padding:0.9rem;
  border-radius:12px;
  border:1px solid var(--border);
  background:var(--panel);
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(160px, 1fr));
  gap:0.8rem;
}
.triangle-results .result-block{
  padding:0.6rem;
  border-radius:10px;
  border:1px solid var(--border);
  background:var(--panel-strong);
}
.triangle-results .result-label{
  font-size:0.75rem;
  color:var(--muted);
}
.triangle-results .result-value{
  font-weight:600;
}
@media (max-width: 900px){
  .triangle-grid{grid-template-columns:1fr}
}



