@font-face{font-family:"DM Mono";font-style:normal;font-weight:500;font-display:swap;src:url("vendor/fonts/dm-mono-500.ttf") format("truetype")}
@font-face{font-family:"DM Mono";font-style:normal;font-weight:700;font-display:swap;src:url("vendor/fonts/dm-mono-500.ttf") format("truetype")}
@font-face{font-family:"DM Sans";font-style:normal;font-weight:400;font-display:swap;src:url("vendor/fonts/dm-sans-400.ttf") format("truetype")}
@font-face{font-family:"DM Sans";font-style:normal;font-weight:500;font-display:swap;src:url("vendor/fonts/dm-sans-500.ttf") format("truetype")}
@font-face{font-family:"DM Sans";font-style:normal;font-weight:600;font-display:swap;src:url("vendor/fonts/dm-sans-600.ttf") format("truetype")}
@font-face{font-family:"DM Sans";font-style:normal;font-weight:700;font-display:swap;src:url("vendor/fonts/dm-sans-700.ttf") format("truetype")}
@font-face{font-family:"Manrope";font-style:normal;font-weight:500;font-display:swap;src:url("vendor/fonts/manrope-500.ttf") format("truetype")}
@font-face{font-family:"Manrope";font-style:normal;font-weight:600;font-display:swap;src:url("vendor/fonts/manrope-600.ttf") format("truetype")}
@font-face{font-family:"Manrope";font-style:normal;font-weight:700;font-display:swap;src:url("vendor/fonts/manrope-700.ttf") format("truetype")}
@font-face{font-family:"Manrope";font-style:normal;font-weight:800;font-display:swap;src:url("vendor/fonts/manrope-800.ttf") format("truetype")}

:root{
  --tool-ink:#101521;
  --tool-paper:#f7f6f2;
  --tool-white:#fff;
  --tool-orange:#f06d43;
  --tool-yellow:#f5cf55;
  --tool-sky:#b8d7ff;
  --tool-mint:#c6efc5;
  --tool-line:#1a1f29;
  --tool-muted:#5d626c;
}

body{background:var(--tool-paper)}
.page-wrap{width:min(100% - 48px,1180px);margin:0 auto;padding:46px 0 96px}
.page-hero{position:relative;overflow:hidden;border:1px solid var(--tool-ink);background:var(--tool-yellow);margin-bottom:24px}
.page-hero:after{content:"3B";position:absolute;right:-22px;bottom:-58px;color:rgba(16,21,33,.08);font:800 clamp(8rem,22vw,18rem)/1 "Manrope",sans-serif;letter-spacing:-.1em;pointer-events:none}
.hero-inner{position:relative;z-index:1;padding:36px 40px 42px;max-width:980px}
.breadcrumb{display:flex;align-items:center;flex-wrap:wrap;gap:8px;color:#494943;font-size:.82rem;margin-bottom:28px}
.breadcrumb a{text-decoration:underline;text-underline-offset:3px}
.hero-kicker{display:flex;align-items:center;gap:8px;width:max-content;max-width:100%;font:700 .7rem/1.45 "DM Mono",monospace;text-transform:uppercase;letter-spacing:.06em}
.kicker-dot{width:10px;height:10px;border-radius:50%;background:var(--tool-orange);border:1px solid var(--tool-ink);flex:0 0 auto}
.page-hero h1{max-width:900px;margin:20px 0 18px;font:700 clamp(3rem,6.4vw,6.4rem)/.94 "Manrope",sans-serif;letter-spacing:-.065em;word-spacing:.08em}
.page-hero h1 .gold{display:block;color:var(--tool-orange)}
.page-hero p{max-width:860px;margin:0;color:#383a3c;font-size:1.05rem;line-height:1.65}

.panel,.disclaimer-panel{border:1px solid var(--tool-ink);background:var(--tool-white);margin-top:22px}
.panel-head{display:flex;align-items:center;gap:16px;padding:18px 22px;border-bottom:1px solid var(--tool-ink);background:var(--tool-sky)}
.about-section .panel-head{background:var(--tool-mint)}
.step-badge{width:40px;height:40px;display:grid;place-items:center;flex:0 0 auto;border:1px solid var(--tool-ink);border-radius:8px;background:var(--tool-ink);color:#fff;font:800 .8rem/1 "DM Mono",monospace;box-shadow:4px 4px 0 rgba(16,21,33,.2)}
.ph-title{font:700 1.28rem/1.15 "Manrope",sans-serif;letter-spacing:-.03em}
.ph-sub{margin-top:4px;color:#4f5661;font-size:.86rem}
.panel-body{padding:28px}

.dropzone{position:relative;min-height:250px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px;border:2px dashed var(--tool-ink);border-radius:16px;background-color:#fffdf5;background-image:radial-gradient(rgba(16,21,33,.13) 1.2px,transparent 1.2px);background-size:16px 16px;cursor:pointer;transition:transform .18s ease,background-color .18s ease,box-shadow .18s ease}
.dropzone:hover,.dropzone:focus-within,.dropzone.drag{background-color:var(--tool-yellow);transform:translateY(-2px);box-shadow:7px 7px 0 var(--tool-ink)}
.dropzone input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.dz-icon{width:54px;height:54px;display:grid;place-items:center;border:1px solid var(--tool-ink);border-radius:50%;background:var(--tool-orange);font-size:1.45rem}
.dropzone h3{margin:16px 0 4px;font:700 1.45rem/1.1 "Manrope",sans-serif;letter-spacing:-.035em}
.dropzone p{margin:0 0 18px;color:var(--tool-muted)}
.browse-btn{display:inline-flex;padding:11px 16px;border:1px solid var(--tool-ink);border-radius:8px;background:var(--tool-ink);color:#fff;font:700 .8rem/1 "DM Mono",monospace}

.file-list-wrap,.progress-wrap,#results{display:none}
.file-list-wrap{margin-top:22px;border:1px solid var(--tool-ink)}
.file-list-head,.result-actions{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px 18px;border-bottom:1px solid var(--tool-ink);background:var(--tool-paper);font-weight:700}
.btn-clear{border:0;background:transparent;color:#a62c1c;font:700 .75rem/1 "DM Mono",monospace;cursor:pointer}
.file-table-scroll,.result-table-wrap,.col-table-wrap{overflow-x:auto}
.file-table,.result-table,.col-table{width:100%;min-width:700px;border-collapse:collapse;background:#fff}
.file-table th,.file-table td,.result-table th,.result-table td,.col-table th,.col-table td{padding:12px 14px;border-right:1px solid #c9ccd1;border-bottom:1px solid #c9ccd1;vertical-align:top;text-align:left}
.file-table th:last-child,.file-table td:last-child,.result-table th:last-child,.result-table td:last-child,.col-table th:last-child,.col-table td:last-child{border-right:0}
.file-table th,.result-table th,.col-table th{background:var(--tool-ink);color:#fff;font:700 .68rem/1.35 "DM Mono",monospace;text-transform:uppercase;letter-spacing:.04em}
.mono,.fstatus-wait,.fstatus-ok,.fstatus-err{font-family:"DM Mono",monospace;font-size:.78rem}
.fstatus-ok{color:#16723b}.fstatus-err{color:#b12c1c}.fstatus-wait{color:#8b6111}

.btn-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
.btn-calc,.btn-reset,.btn-download,.tab-btn{border:1px solid var(--tool-ink);border-radius:8px;cursor:pointer;font:700 .78rem/1 "DM Mono",monospace}
.btn-calc,.btn-download{display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:13px 17px;background:var(--tool-ink);color:#fff}
.btn-calc:hover,.btn-download:hover{transform:translateY(-2px)}
.btn-calc:disabled{opacity:.55;cursor:wait;transform:none}
.btn-reset{padding:13px 17px;background:transparent;color:var(--tool-ink)}
.input-note-box,.note-box{display:flex;gap:12px;padding:18px;margin-top:20px;border:1px solid var(--tool-ink);background:var(--tool-mint);font-size:.9rem}
.input-note-icon{font-size:1.1rem;flex:0 0 auto}
.progress-wrap{margin-top:18px;padding:16px;border:1px solid var(--tool-ink);background:var(--tool-paper)}
.prog-bar-bg{height:12px;overflow:hidden;border:1px solid var(--tool-ink);background:#fff}
.prog-bar{width:0;height:100%;background:var(--tool-orange);transition:width .2s ease}
.prog-label{margin-top:9px;color:var(--tool-muted);font-size:.82rem}

.result-actions h3{margin:0;font:700 1.35rem/1.1 "Manrope",sans-serif}
.tab-bar{display:flex;gap:0;overflow-x:auto;border-bottom:1px solid var(--tool-ink);background:var(--tool-paper)}
.tab-btn{flex:1 0 auto;padding:14px 16px;border:0;border-right:1px solid var(--tool-ink);border-radius:0;background:transparent;color:var(--tool-ink)}
.tab-btn.active{background:var(--tool-yellow)}
.tab-panel{display:none}.tab-panel.active{display:block}
.sheet-label{padding:13px 16px;border-bottom:1px solid var(--tool-ink);background:var(--tool-orange);font:700 .72rem/1.35 "DM Mono",monospace;text-transform:uppercase}

.about-section .panel-body h2{margin:0 0 12px;font:700 2rem/1.08 "Manrope",sans-serif;letter-spacing:-.045em}
.about-section .panel-body h3{margin:34px 0 12px;font:700 1.35rem/1.15 "Manrope",sans-serif;letter-spacing:-.03em}
.about-section .panel-body p{max-width:920px;color:#444a54}
.disclaimer-panel{padding:26px;background:var(--tool-yellow)}
.disclaimer-title{font:800 1.15rem/1.1 "Manrope",sans-serif;margin-bottom:12px}
.disclaimer-text{font-size:.9rem;color:#373833}
.disclaimer-text ul{padding-left:22px}

@media(max-width:900px){
  .page-wrap{width:min(100% - 36px,1180px)}
  .hero-inner{padding:32px}
  .page-hero:after{bottom:-28px}
}
@media(max-width:600px){
  .page-wrap{width:min(100% - 28px,1180px);padding:28px 0 68px}
  .hero-inner{padding:24px 20px 28px}
  .page-hero h1{font-size:3.15rem}
  .hero-kicker{font-size:.6rem}
  .panel-body{padding:18px}
  .panel-head{align-items:flex-start;padding:16px}
  .ph-title{font-size:1.1rem}
  .dropzone{min-height:220px;padding:22px 18px}
  .file-list-head,.result-actions{align-items:flex-start;flex-direction:column}
  .btn-download,.btn-calc,.btn-reset{width:100%}
  .btn-actions{display:grid!important;grid-template-columns:1fr}
  .input-note-box,.note-box{font-size:.84rem}
  .disclaimer-panel{padding:20px}
}
@media(prefers-reduced-motion:reduce){.dropzone,.prog-bar,.btn-calc,.btn-download{transition:none}}
