:root {
    --fc-ink: #0f172a;
    --fc-ink-2: #334155;
    --fc-ink-3: #475569;
    --fc-muted: #64748b;
    --fc-faint: #94a3b8;
    --fc-line: #e3e8ef;
    --fc-line-strong: #cbd5e1;
    --fc-paper: #fff;
    --fc-wash: #f6f8fa;
    --fc-subtle: #fbfcfd;
    --fc-blue: #0e7cb4;
    --fc-blue-dark: #0a5f8f;
    --fc-navy: #0d1526;
    --fc-green: #2e8b62;
    --fc-green-fill: #dceee4;
    --fc-red: #c2453b;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body.public-calculator {
    margin: 0;
    min-height: 100vh;
    overflow: auto;
    padding: 0;
    background: var(--fc-wash);
    color: var(--fc-ink);
    font-family: "IBM Plex Sans", system-ui, sans-serif;
    font-size: 14px;
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
}

body.public-calculator {
    height: auto !important;
    overflow: auto !important;
    display: block !important;
}

.public-calculator .main-content {
    overflow: visible !important;
}
.public-calculator button,
.public-calculator input,
.public-calculator select { font-family: "IBM Plex Sans", system-ui, sans-serif; }
.public-calculator input[type="number"],
.public-calculator .table__num,
.public-calculator .stat-value,
.public-calculator .num { font-family: "IBM Plex Mono", monospace; font-variant-numeric: tabular-nums; }
.public-calculator h1,
.public-calculator h2,
.public-calculator .navbar-brand { font-family: Archivo, sans-serif; }
.public-calculator a { color: var(--fc-blue); }
.public-calculator a:hover { color: var(--fc-blue-dark); text-decoration: none; }
.public-calculator :focus-visible { outline: 2px solid var(--fc-blue); outline-offset: 1px; }

.public-calculator .navbar {
    position: sticky;
    top: 0;
    z-index: 1050;
    min-height: 64px;
    padding: 0 24px;
    background: rgba(255,255,255,.94) !important;
    border: 0;
    border-bottom: 1px solid var(--fc-line);
    box-shadow: none;
    backdrop-filter: saturate(140%) blur(8px);
}
.public-calculator .navbar > .container-fluid,
.public-calculator .navbar > .container,
.public-calculator .navbar-custom {
    width: 100%;
    max-width: 1280px;
    min-height: 64px;
    margin: 0 auto;
}
.public-calculator .navbar-brand {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: var(--fc-ink) !important;
    font-size: 19px;
    font-weight: 700;
    letter-spacing: -.02em;
}
.fc-blade {
    position: relative;
    width: 26px;
    height: 26px;
    flex: none;
    border-radius: 50%;
    background: repeating-conic-gradient(from 0deg,#c8871b 0 22deg,transparent 22deg 30deg);
}
.fc-blade::before { content:""; position:absolute; inset:3px; border-radius:50%; background:#c8871b; }
.fc-blade::after { content:""; position:absolute; inset:9px; border-radius:50%; background:#fff; box-shadow:0 0 0 1.5px #c8871b; }
.public-calculator .navbar .nav-link {
    color: var(--fc-ink-2) !important;
    font-size: 14px;
    font-weight: 500;
}
.public-calculator .navbar .btn-primary,
.public-calculator .navbar .btn-primary:hover {
    min-height: 36px;
    padding: 7px 16px;
    border: 1px solid var(--fc-blue-dark);
    border-radius: 6px;
    background: var(--fc-blue);
    color: #fff;
    font-weight: 600;
}
.public-calculator .nav-select,
.public-calculator .units-btn,
.public-calculator #unitsBtn,
.public-calculator .language-select {
    width: auto;
    min-height: 36px;
    padding: 0 10px;
    border: 1px solid var(--fc-line);
    border-radius: 6px;
    background: #fff;
    color: var(--fc-ink-3);
    font-size: 13px;
}

.calculator-head {
    margin: 0;
    padding: 42px max(24px, calc((100vw - 1200px)/2)) 28px;
    border-bottom: 1px solid var(--fc-line);
    background: linear-gradient(180deg,#fff 0%,var(--fc-wash) 100%);
}
.calculator-head::before {
    content: "FREE · NO ACCOUNT";
    display: block;
    margin-bottom: 14px;
    color: var(--fc-blue);
    font: 500 11.5px/1 "IBM Plex Mono", monospace;
    letter-spacing: .1em;
}
.calculator-head h1 {
    margin: 0 0 14px !important;
    color: var(--fc-ink) !important;
    font-size: clamp(32px, 4vw, 42px) !important;
    font-weight: 700 !important;
    line-height: 1.08;
    letter-spacing: -.028em;
}
.calculator-head p { max-width: 780px; margin-bottom: 0 !important; color: var(--fc-ink-3) !important; font-size: 16px; line-height: 1.6; }
.calculator-head .calculator-links { margin-bottom: 12px !important; font-size: 14px; }

.page-wrap,
.piece-shell,
.linear-page #dashboard-view > div {
    width: min(1200px, calc(100% - 48px)) !important;
    max-width: 1200px !important;
    margin: 0 auto !important;
    padding: 28px 0 56px !important;
}
.linear-page #dashboard-view { padding: 0; }
.linear-page #dashboard-view > div { display: grid; grid-template-columns: 588px minmax(0,1fr); gap: 20px; align-items: start; }
.linear-page #dashboard-view > div > .calculator-head { grid-column: 1/-1; width: 100vw; margin-left: calc(50% - 50vw); }
.linear-page .calculator-toolbar { grid-column: 1/-1; margin: 0 !important; padding: 0 !important; background: transparent !important; border: 0 !important; }
.linear-page .linear-settings,
.linear-page .linear-stock,
.linear-page .linear-parts,
.linear-page .linear-calculate { grid-column: 1; margin: 0 !important; }
.linear-page .linear-results-column { grid-column: 2; grid-row: 3 / span 5; min-width: 0; }
.linear-page #results-container { margin: 0 !important; min-width: 0; }
.linear-page .linear-about { grid-column: 1/-1; margin-top: 28px !important; border-top: 1px solid var(--fc-line); }
.linear-page .linear-settings .fa-lock { color:var(--fc-faint) !important; }

.linear-page .linear-settings {
    padding: 16px !important;
    border: 1px solid var(--fc-line) !important;
    border-bottom: 0 !important;
    border-radius: 8px 8px 0 0 !important;
    background: var(--fc-paper) !important;
}

.linear-page .linear-stock,
.linear-page .linear-parts {
    padding: 0 16px !important;
    border-right: 1px solid var(--fc-line);
    border-left: 1px solid var(--fc-line);
    background: var(--fc-paper);
}

.linear-page .linear-stock > table,
.linear-page .linear-parts > table {
    margin: 0 !important;
    border-right: 0 !important;
    border-left: 0 !important;
    border-radius: 0 !important;
}

.linear-page .linear-calculate {
    padding: 14px 16px 16px;
    border: 1px solid var(--fc-line);
    border-top: 0;
    border-radius: 0 0 8px 8px;
    background: var(--fc-paper);
}

.linear-page .linear-calculate > button:first-child {
    width: 100%;
    min-height: 44px;
    justify-content: center;
    border: 1px solid var(--fc-blue-dark) !important;
    border-radius: 6px !important;
    background: var(--fc-blue) !important;
    font-weight: 600 !important;
}

.public-result-empty {
    min-height: 430px;
    padding: 36px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--fc-line);
    border-radius: 8px;
    background: var(--fc-paper);
    color: var(--fc-muted);
    text-align: center;
}

.public-result-empty-icon {
    width: 48px;
    height: 48px;
    margin-bottom: 14px;
    display: grid;
    place-items: center;
    border: 1px solid #bfddef;
    border-radius: 50%;
    background: #f3f9fc;
    color: var(--fc-blue);
}

.public-result-empty strong {
    margin-bottom: 5px;
    color: var(--fc-ink-2);
}

.public-result-empty > span:last-child {
    max-width: 330px;
    font-size: 12.5px;
}

.calculator-workspace {
    display: grid;
    grid-template-columns: 588px minmax(0,1fr);
    gap: 20px;
    align-items: start;
}
.calculator-input,
.result-column,
.public-calculator .calc-card,
.public-calculator .settings-card {
    min-width: 0;
    background: var(--fc-paper);
    border: 1px solid var(--fc-line) !important;
    border-radius: 8px !important;
    box-shadow: none !important;
}
.calculator-input { padding: 20px; }
.result-column { min-height: 280px; padding: 18px 20px; }
.settings-card { padding: 20px; }
.calculator-input .settings-card { padding: 0; border: 0 !important; }
.public-calculator .setting-item label.caption,
.public-calculator label { color: var(--fc-ink-3); font-size: 11.5px; font-weight: 600; }
.public-calculator input,
.public-calculator select,
.public-calculator .form-control {
    min-height: 34px;
    padding: 5px 10px;
    border: 1px solid var(--fc-line-strong);
    border-radius: 5px;
    background: #fff;
    color: var(--fc-ink);
    font-size: 13px;
    box-shadow: none;
}
.public-calculator .data-table {
    width: 100%;
    margin: 18px 0 0;
    border: 1px solid var(--fc-line);
    border-collapse: separate;
    border-spacing: 0;
    border-radius: 6px;
    overflow: hidden;
}
.public-calculator .data-table th {
    padding: 6px 8px !important;
    border-bottom: 1px solid var(--fc-line) !important;
    background: var(--fc-wash) !important;
    color: var(--fc-faint) !important;
    font: 500 9.5px/1.3 "IBM Plex Mono", monospace !important;
    letter-spacing: .06em;
    text-transform: uppercase;
}
.public-calculator .data-table td { padding: 5px 8px !important; border-bottom: 1px solid #eef2f6 !important; }
.public-calculator .data-table input,
.public-calculator .data-table select { width: 100%; max-width: none; min-height: 28px; padding: 2px 8px; font-family: "IBM Plex Mono", monospace; text-align: right; }
.public-calculator .btn-outline-add {
    min-height: 28px;
    padding: 0 10px;
    border: 1px solid var(--fc-line-strong);
    border-radius: 5px;
    background: #fff;
    color: var(--fc-ink-2);
    font-size: 12.5px;
    font-weight: 600;
}
.public-calculator .btn-calc {
    min-height: 44px;
    padding: 0 20px;
    border: 1px solid var(--fc-blue-dark);
    border-radius: 6px;
    background: var(--fc-blue);
    color: #fff;
    font-size: 15px;
    font-weight: 600;
}
.public-calculator .btn-calc:hover { background: var(--fc-blue-dark); color: #fff; }
.toggle-switch {
    position: relative;
    display: inline-block;
    width: 32px !important;
    height: 18px !important;
    margin: 0;
}
.toggle-switch input { width: 0; height: 0; opacity: 0; }
.toggle-slider {
    position: absolute;
    inset: 0;
    border-radius: 9px !important;
    background: #d8dfe8 !important;
    cursor: pointer;
    transition: .2s;
}
.toggle-slider:before,
.toggle-slider::before {
    position: absolute;
    content: "";
    width: 14px !important;
    height: 14px !important;
    left: 2px !important;
    bottom: 2px !important;
    border-radius: 50%;
    background: #fff;
    transition: .2s;
}
.toggle-switch input:checked + .toggle-slider { background: var(--fc-blue) !important; }
.toggle-switch input:checked + .toggle-slider:before,
.toggle-switch input:checked + .toggle-slider::before { transform: translateX(14px) !important; }
.toggle-switch input:disabled + .toggle-slider { border: 1px solid var(--fc-line); background: #eef2f6 !important; opacity: 1 !important; cursor: not-allowed; }
.public-calculator .lock { color: var(--fc-faint); }
#trimFields { display: none; }
.public-calculator .setting-item {
    display: flex;
    flex-direction: column;
    min-width: 110px;
    margin-bottom: 12px;
}
.public-calculator .data-table th[colspan] {
    background: #fff !important;
    color: var(--fc-ink) !important;
    font: 600 15px Archivo, sans-serif !important;
    letter-spacing: -.02em;
    text-transform: none;
    padding: 14px 16px !important;
}
.public-calculator .sheet-canvas { width: 100%; max-width: 720px; }
.public-calculator .section-title {
    margin-bottom: 14px;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--fc-line);
    color: var(--fc-ink);
    font-size: 14px;
    font-weight: 600;
}
.public-calculator .btn-dropdown-menu {
    display: none;
    position: absolute;
    z-index: 20;
    min-width: 280px;
    padding: 6px;
    border: 1px solid var(--fc-line);
    border-radius: 6px;
    background: #fff;
    box-shadow: 0 12px 28px rgba(15, 23, 42, .12);
}
.public-calculator .btn-dropdown-menu.show { display: block; }
.public-calculator .btn-dropdown-item {
    padding: 8px 10px;
    border-radius: 5px;
    color: var(--fc-ink-2);
    font-size: 13.5px;
    cursor: pointer;
}
.public-calculator .btn-dropdown-item:hover,
.public-calculator .btn-dropdown-item.selected { background: var(--fc-wash); color: var(--fc-ink); }
.public-calculator .about-block { margin-top: 36px; color: var(--fc-ink-3); }
.public-calculator .unit-suffix { color: var(--fc-muted); font-size: 12px; }
.public-calculator .layout-sheet {
    margin-bottom: 16px;
    padding: 12px;
    border: 1px solid var(--fc-line);
    border-radius: 6px;
    background: #fff;
}
.public-calculator canvas { background: #fff; box-shadow: none; max-width: 100%; }
.premium-callout {
    display:flex;
    align-items:center;
    gap:9px;
    margin-top:14px;
    padding:9px 11px;
    border:1px solid var(--fc-line);
    border-radius:6px;
    background:var(--fc-wash);
    color:var(--fc-ink-3);
    font-size:12.5px;
}
.premium-callout a { margin-left:auto; font-weight:600; white-space:nowrap; }

.public-calculator .stat-box {
    margin: 0;
    padding: 12px 14px;
    border: 0;
    border-right: 1px solid var(--fc-line);
    border-radius: 0;
    background: #fff;
    text-align: left;
}
.public-calculator .stat-box .num { color: var(--fc-ink); font-size: 22px; font-weight: 600; }
.public-calculator .stat-box .label { color: var(--fc-faint); font: 500 9.5px "IBM Plex Mono", monospace; letter-spacing: .06em; }
.public-calculator .canvas-container,
.public-calculator .sheet-canvas { background: var(--fc-wash); border: 1px solid var(--fc-line); border-radius: 6px; box-shadow: none; }

.locked-options { display:grid; grid-template-columns:1fr 1fr; gap:9px 20px; margin-top:12px; }
.locked-option { display:flex; align-items:center; gap:8px; color:var(--fc-faint); font-size:13px; }
.locked-option svg { width:12px; height:12px; }

.site-footer-public { margin-top: 0; background: var(--fc-navy); color:#94a3b8; }
.site-footer-public .footer-shell { width:min(1200px,calc(100% - 48px)); margin:0 auto; padding:38px 0 26px; display:grid; grid-template-columns:300px 1fr; gap:64px; }
.site-footer-public .footer-brand { display:flex; align-items:center; gap:10px; color:#fff; font:700 17px Archivo,sans-serif; }
.site-footer-public .footer-brand .fc-blade::after { background:var(--fc-navy); }
.site-footer-public .footer-links { display:grid; grid-template-columns:repeat(5,1fr); gap:28px; }
.site-footer-public strong { display:block; color:#64748b; font:10px "IBM Plex Mono",monospace; letter-spacing:.1em; }
.site-footer-public .footer-links div div { display:grid; gap:7px; margin-top:12px; }
.site-footer-public a { color:#cbd5e1; font-size:13px; }
.site-footer-public .footer-bottom { width:min(1200px,calc(100% - 48px)); margin:0 auto; padding:18px 0 32px; border-top:1px solid #1e293b; font-size:12px; }

@media (max-width: 980px) {
    .calculator-workspace,
    .linear-page #dashboard-view > div { grid-template-columns: 1fr; }
    .linear-page .calculator-toolbar,
    .linear-page .linear-settings,
    .linear-page .linear-stock,
    .linear-page .linear-parts,
    .linear-page .linear-calculate,
    .linear-page .linear-results-column,
    .linear-page .linear-about { grid-column:1; grid-row:auto; }
    .result-column { order:-1; }
    .public-calculator .navbar-collapse { padding-bottom:12px; }
    .site-footer-public .footer-shell { grid-template-columns:1fr; gap:28px; }
    .site-footer-public .footer-links { grid-template-columns:repeat(3,1fr); }
}
@media (max-width: 640px) {
    .page-wrap,.piece-shell,.linear-page #dashboard-view > div { width:calc(100% - 28px) !important; }
    .calculator-head { padding:34px 14px 24px; }
    .locked-options { grid-template-columns:1fr; }
    .site-footer-public .footer-shell { grid-template-columns:1fr; gap:28px; }
    .site-footer-public .footer-links { grid-template-columns:1fr 1fr; }
}
