/* EC5 Calculator — Page-specific Styles (tokens+topbar via shared CSS) */

/* Layout */
#main{display:flex;height:calc(100vh - 48px);padding-top:48px}
#panel{width:380px;min-width:320px;border-right:1px solid var(--border);overflow-y:auto;padding:20px;background:var(--srf)}
#results{flex:1;overflow-y:auto;padding:20px 28px}

/* Form */
.section{margin-bottom:20px}
.section-title{font-size:13px;font-weight:700;color:var(--accent);margin-bottom:10px;text-transform:uppercase;letter-spacing:.5px}
.form-row{display:flex;gap:10px;margin-bottom:8px}
.form-group{flex:1}
.form-group label{display:block;font-size:11px;color:var(--ink-lt);margin-bottom:3px;font-weight:500}
.form-group input,.form-group select{width:100%;background:var(--srf2);border:1px solid var(--border);border-radius:7px;padding:7px 10px;color:var(--ink);font-size:13px;font-family:var(--font)}
.form-group select{cursor:pointer}
.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--accent)}
.calc-btn{width:100%;background:var(--accent);color:#fff;border:none;border-radius:9px;padding:11px;cursor:pointer;font-size:14px;font-weight:700;font-family:var(--font);transition:.15s;margin-top:6px}
.calc-btn:hover{filter:brightness(1.1)}

/* Results */
.res-title{font-size:18px;font-weight:700;margin-bottom:16px}
.check-card{background:var(--srf);border:1px solid var(--border);border-radius:12px;padding:16px;margin-bottom:12px;transition:.15s}
.check-card.pass{border-color:var(--accent)}
.check-card.fail{border-color:var(--red)}
.check-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.check-name{font-size:14px;font-weight:700}
.check-status{font-size:11px;font-weight:700;padding:3px 10px;border-radius:20px}
.check-status.pass{background:rgba(34,197,94,.12);color:var(--accent)}
.check-status.fail{background:rgba(239,68,68,.12);color:var(--red)}
.check-bar{height:8px;border-radius:4px;background:var(--srf2);overflow:hidden;margin-bottom:8px}
.check-bar-fill{height:100%;border-radius:4px;transition:width .4s}
.check-bar-fill.pass{background:var(--accent)}
.check-bar-fill.fail{background:var(--red)}
.check-bar-fill.warn{background:var(--orange)}
.check-detail{font-size:11px;color:var(--ink-m);font-family:var(--mono)}
.check-detail span{color:var(--ink)}

/* Summary */
.summary-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;margin-bottom:20px}
.summary-card{background:var(--srf);border:1px solid var(--border);border-radius:10px;padding:12px;text-align:center}
.summary-val{font-size:20px;font-weight:700;font-family:var(--mono)}
.summary-val.pass{color:var(--accent)}
.summary-val.fail{color:var(--red)}
.summary-label{font-size:10px;color:var(--ink-lt);margin-top:2px}

/* Loads table */
.loads-table{width:100%;border-collapse:collapse;font-size:12px;margin-bottom:16px}
.loads-table th{text-align:left;font-weight:600;color:var(--ink-lt);font-size:10px;padding:6px 10px;border-bottom:1px solid var(--border);text-transform:uppercase}
.loads-table td{padding:6px 10px;border-bottom:1px solid rgba(51,65,85,.3);color:var(--ink-m)}
.loads-table td:last-child{font-family:var(--mono);color:var(--ink)}

/* Export */
.export-btn{background:var(--srf);border:1px solid var(--border);border-radius:8px;padding:8px 16px;cursor:pointer;font-size:12px;font-weight:600;font-family:var(--font);color:var(--ink-m);transition:.15s;margin-right:8px}
.export-btn:hover{border-color:var(--accent);color:var(--accent)}

/* Roof-wall results */
.rw-card{background:var(--srf);border:1px solid var(--border);border-radius:10px;padding:14px;margin-bottom:10px}
.rw-card.green{border-color:var(--accent)}
.rw-card.blue{border-color:var(--blue)}
.rw-label{font-size:12px;font-weight:700;margin-bottom:8px}
.rw-label.green{color:var(--accent)}.rw-label.blue{color:var(--blue)}
.rw-row{display:flex;justify-content:space-between;font-size:11px;color:var(--ink-m);padding:2px 0}
.rw-row span:last-child{font-family:var(--mono);color:var(--ink);font-weight:600}
.rw-diagram{background:var(--srf2);border:1px solid var(--border);border-radius:8px;padding:16px;margin-top:12px;text-align:center}
.rw-diagram svg{max-width:100%;height:auto}

/* Beam diagram */
.beam-diagram-wrap{background:var(--srf);border:1px solid var(--border);border-radius:12px;padding:16px;margin-bottom:16px}
.beam-diagram-wrap .diagram-title{font-size:12px;font-weight:700;color:var(--ink-m);margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px}
.beam-diagram-wrap svg{width:100%;height:auto;display:block}

/* Span inputs */
.spans-grid{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.spans-grid .form-group{flex:0 0 calc(50% - 3px);min-width:0}

/* Empty */
.empty-state{text-align:center;padding:80px 20px;color:var(--ink-lt)}
.empty-ico{font-size:48px;margin-bottom:12px;opacity:.3}
.empty-text{font-size:14px;max-width:300px;margin:0 auto;line-height:1.5}

/* Material badge */
.material-badge{display:inline-block;font-size:10px;font-weight:700;font-family:var(--mono);padding:2px 8px;border-radius:12px;letter-spacing:.5px;text-transform:uppercase;margin-left:8px;vertical-align:middle}
.material-badge.timber{background:rgba(34,197,94,.12);color:var(--accent);border:1px solid rgba(34,197,94,.25)}
.material-badge.hardwood{background:rgba(139,69,19,.15);color:#cd853f;border:1px solid rgba(205,133,63,.3)}
.material-badge.glulam{background:rgba(59,130,246,.12);color:var(--blue);border:1px solid rgba(59,130,246,.25)}
.material-badge.clt{background:rgba(249,115,22,.12);color:var(--orange);border:1px solid rgba(249,115,22,.25)}
.material-badge.steel{background:rgba(148,163,184,.15);color:#94a3b8;border:1px solid rgba(148,163,184,.3)}
.steel-info{background:var(--srf2);border:1px solid var(--border);border-radius:8px;padding:10px;margin-top:6px;font-size:11px;font-family:var(--mono);color:var(--ink-m)}
.steel-info .si-row{display:flex;justify-content:space-between;padding:2px 0}
.steel-info .si-row span:last-child{color:var(--ink);font-weight:600}
.hidden-field{display:none!important}

/* Chain steps */
.chain-step{background:var(--srf2);border:1px solid var(--border);border-radius:6px;padding:4px 10px;font-size:11px;font-family:var(--font);font-weight:600;color:var(--ink-lt);cursor:pointer;transition:.15s}
.chain-step:hover{color:var(--ink-m);border-color:var(--ink-lt)}
.chain-step.active{color:var(--accent);border-color:var(--accent);background:rgba(34,197,94,.08)}
.chain-step.done{color:var(--blue);border-color:var(--blue);background:rgba(59,130,246,.08)}
.chain-summary{display:flex;align-items:center;gap:8px;margin-bottom:16px;overflow-x:auto;padding:8px 0}
.chain-card{background:var(--srf);border:1px solid var(--border);border-radius:10px;padding:10px 14px;font-size:11px;font-family:var(--mono);color:var(--ink-m);min-width:180px;line-height:1.6}
.chain-card b{color:var(--ink)}
.chain-arrow{color:var(--ink-lt);font-size:18px;flex-shrink:0}
.chain-next-btn{display:inline-block;margin-top:10px;background:var(--srf2);border:1px solid var(--blue);border-radius:8px;padding:7px 16px;cursor:pointer;font-size:12px;font-weight:600;font-family:var(--font);color:var(--blue);transition:.15s}
.chain-next-btn:hover{background:rgba(59,130,246,.1);color:var(--blue)}

/* Chain transfer cards */
.chain-cards-wrap{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:10px}
.chain-card-item{background:var(--srf2);border:1px solid var(--border);border-radius:8px;padding:8px 12px;font-size:11px;font-family:var(--mono);color:var(--ink-m);min-width:140px;cursor:pointer;transition:all var(--trans);position:relative;line-height:1.5}
.chain-card-item:hover{border-color:var(--ink-lt);background:var(--srf3)}
.chain-card-item.completed{border-color:var(--accent);background:rgba(34,197,94,.05)}
.chain-card-item.completed .chain-card-type{color:var(--accent)}
.chain-card-item.active-step{border-color:var(--blue);background:rgba(59,130,246,.05);box-shadow:0 0 8px rgba(59,130,246,.1)}
.chain-card-item.active-step .chain-card-type{color:var(--blue)}
.chain-card-item.pending{opacity:.5;border-style:dashed}
.chain-card-type{font-weight:700;font-size:11px;color:var(--ink-lt);text-transform:uppercase;letter-spacing:.3px;margin-bottom:2px}
.chain-card-detail{font-size:10px;color:var(--ink-lt)}
.chain-card-reaction{font-weight:700;color:var(--ink);font-size:12px}
.chain-card-remove{position:absolute;top:3px;right:5px;background:none;border:none;color:var(--ink-lt);font-size:12px;cursor:pointer;padding:0 2px;line-height:1;opacity:.5;transition:opacity .15s}
.chain-card-remove:hover{opacity:1;color:var(--red)}
.chain-arrow-icon{color:var(--ink-lt);font-size:16px;flex-shrink:0;font-weight:700}
.chain-template-btn{background:var(--srf2);border:1px solid var(--border);border-radius:6px;padding:4px 10px;font-size:10px;font-family:var(--font);font-weight:600;color:var(--ink-lt);cursor:pointer;transition:all var(--trans);white-space:nowrap}
.chain-template-btn:hover{color:var(--ink-m);border-color:var(--accent)}
.chain-template-btn.active-tpl{color:var(--accent);border-color:var(--accent);background:rgba(34,197,94,.06)}
.chain-transfer-info{background:var(--srf2);border:1px solid var(--blue);border-radius:8px;padding:8px 12px;margin-top:8px;font-size:11px;font-family:var(--mono);color:var(--ink-m);line-height:1.6}
.chain-transfer-info b{color:var(--ink)}
.chain-transfer-info .transfer-val{color:var(--blue);font-weight:700}
.chain-mode-badge{display:inline-block;font-size:9px;font-weight:700;font-family:var(--mono);padding:2px 6px;border-radius:8px;letter-spacing:.3px;background:rgba(59,130,246,.12);color:var(--blue);border:1px solid rgba(59,130,246,.25);margin-left:6px;vertical-align:middle}

/* Color-coded utilization */
.check-card.util-green{border-color:#22c55e}
.check-card.util-amber{border-color:#eab308}
.check-card.util-orange{border-color:var(--orange)}
.check-card.util-red{border-color:var(--red)}
.check-status.util-green{background:rgba(34,197,94,.12);color:#22c55e}
.check-status.util-amber{background:rgba(234,179,8,.12);color:#eab308}
.check-status.util-orange{background:rgba(249,115,22,.12);color:var(--orange)}
.check-status.util-red{background:rgba(239,68,68,.12);color:var(--red)}
.check-bar-fill.bar-green{background:#22c55e}
.check-bar-fill.bar-amber{background:#eab308}
.check-bar-fill.bar-orange{background:var(--orange)}
.check-bar-fill.bar-red{background:var(--red)}

/* Optimization grid */
.opt-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;margin-top:10px}
.opt-card{background:var(--srf);border:1px solid var(--border);border-radius:8px;padding:10px;cursor:pointer;transition:.15s;position:relative;text-align:center}
.opt-card:hover{border-color:var(--accent);transform:translateY(-1px)}
.opt-card.best{border-color:var(--accent);box-shadow:0 0 12px rgba(34,197,94,.15)}
.opt-section{font-family:var(--mono);font-size:13px;font-weight:700;color:var(--ink);margin-bottom:6px}
.opt-bar{height:6px;border-radius:3px;background:var(--srf2);overflow:hidden;margin-bottom:4px}
.opt-bar-fill{height:100%;border-radius:3px;transition:width .3s}
.opt-bar-fill.light{background:var(--accent)}
.opt-bar-fill.good{background:#22c55e}
.opt-bar-fill.warn{background:var(--orange)}
.opt-bar-fill.fail{background:var(--red)}
.opt-pct{font-family:var(--mono);font-size:11px;font-weight:600}
.opt-card.light .opt-pct{color:var(--accent)}
.opt-card.good .opt-pct{color:#22c55e}
.opt-card.warn .opt-pct{color:var(--orange)}
.opt-card.fail .opt-pct{color:var(--red)}
.opt-badge{position:absolute;top:-6px;right:-6px;background:var(--accent);color:#fff;font-size:8px;font-weight:700;padding:2px 6px;border-radius:8px}
.opt-card.fail{opacity:.5}

/* Report options */
.report-opts{background:var(--srf2);border:1px solid var(--border);border-radius:8px;padding:10px 12px;margin-top:8px}
.report-opts label{font-size:10px;color:var(--ink-lt);display:block;margin-bottom:2px}
.report-opts input,.report-opts select{width:100%;background:var(--srf);border:1px solid var(--border);border-radius:5px;padding:5px 8px;color:var(--ink);font-size:12px;margin-bottom:6px}

/* Climate loads section */
.climate-toggle:hover .section-title{color:var(--accent)}
#climate-panel{overflow:hidden;transition:max-height .3s ease}
#climate-panel.collapsed{max-height:0!important;overflow:hidden;padding:0;margin:0}
.city-dropdown{position:absolute;top:100%;left:0;right:0;z-index:50;max-height:200px;overflow-y:auto;background:var(--srf);border:1px solid var(--border);border-top:none;border-radius:0 0 7px 7px;box-shadow:0 6px 16px rgba(0,0,0,.25)}
.city-dropdown .city-opt{padding:6px 10px;font-size:12px;color:var(--ink-m);cursor:pointer;display:flex;justify-content:space-between;transition:background .1s}
.city-dropdown .city-opt:hover{background:var(--srf2);color:var(--ink)}
.city-dropdown .city-opt .co-zone{font-family:var(--mono);font-size:10px;color:var(--ink-lt)}
.city-dropdown .city-opt.highlighted{background:var(--srf2);color:var(--ink)}
.climate-zone-info{margin-top:8px}
.cl-zone-row{display:flex;gap:8px}
.cl-zone-card{flex:1;background:var(--srf2);border:1px solid var(--border);border-radius:8px;padding:10px;text-align:center}
.cl-zone-card.snow-zone-card{border-color:rgba(59,130,246,.3)}
.cl-zone-card.wind-zone-card{border-color:rgba(249,115,22,.3)}
.cl-zone-label{font-size:10px;color:var(--ink-lt);text-transform:uppercase;letter-spacing:.5px;margin-bottom:2px}
.cl-zone-value{font-size:22px;font-weight:700;font-family:var(--mono)}
.snow-zone-card .cl-zone-value{color:var(--blue)}
.wind-zone-card .cl-zone-value{color:var(--orange)}
.cl-zone-sk,.cl-zone-vb{font-size:11px;font-family:var(--mono);color:var(--ink-m);margin-top:2px}
.climate-calc-box{background:var(--srf2);border:1px solid var(--border);border-radius:8px;padding:10px 12px;margin-top:8px}
.cl-calc-title{font-size:11px;font-weight:700;color:var(--ink-lt);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px}
.cl-calc-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px 12px}
.cl-calc-item{display:flex;justify-content:space-between;font-size:11px;color:var(--ink-m);padding:2px 0}
.cl-calc-val{font-family:var(--mono);font-weight:600;color:var(--accent)}
.cl-combos{margin-top:6px;border-top:1px solid var(--border);padding-top:6px}
.cl-combo-row{display:flex;justify-content:space-between;font-size:10px;font-family:var(--mono);color:var(--ink-m);padding:2px 0;align-items:center}
.cl-combo-row .combo-name{color:var(--ink-lt);font-weight:600;min-width:80px}
.cl-combo-row .combo-val{color:var(--ink);font-weight:700}
.cl-combo-row.governing{color:var(--accent);background:rgba(34,197,94,.06);border-radius:4px;padding:3px 4px}
.cl-combo-row.governing .combo-name{color:var(--accent)}
.cl-combo-row.governing .combo-val{color:var(--accent)}

/* Column variants table */
.col-variants-table-wrap{overflow-x:auto;margin-bottom:16px}
.col-variants-table{width:100%;border-collapse:collapse;font-size:12px}
.col-variants-table th{text-align:left;font-weight:600;color:var(--ink-lt);font-size:10px;padding:6px 10px;border-bottom:2px solid var(--border);text-transform:uppercase;white-space:nowrap}
.col-variants-table td{padding:6px 10px;border-bottom:1px solid rgba(51,65,85,.3);color:var(--ink-m);white-space:nowrap}
.col-variants-table tr{cursor:pointer;transition:background .1s}
.col-variants-table tr:hover{background:var(--srf2)}
.col-variants-table tr.var-base{background:rgba(34,197,94,.06);font-weight:700}
.col-variants-table tr.var-base td{color:var(--ink)}
.var-section{font-family:var(--mono);font-weight:600;color:var(--ink)}
.var-axis{font-family:var(--mono);font-size:11px;color:var(--ink-lt)}
.var-bar-wrap{display:inline-block;width:80px;height:6px;border-radius:3px;background:var(--srf3);overflow:hidden;vertical-align:middle;margin-right:6px}
.var-bar{height:100%;border-radius:3px;transition:width .3s}
.var-bar.var-ok{background:#22c55e}
.var-bar.var-amber{background:#eab308}
.var-bar.var-warn{background:var(--orange)}
.var-bar.var-fail{background:var(--red)}
.var-pct{font-family:var(--mono);font-size:11px;font-weight:600;vertical-align:middle}
.var-pct.var-ok{color:#22c55e}
.var-pct.var-amber{color:#eab308}
.var-pct.var-warn{color:var(--orange)}
.var-pct.var-fail{color:var(--red)}
.col-variants-table tr.var-fail{opacity:.5}

@media(max-width:768px){
  #main{flex-direction:column}
  #panel{width:100%;max-height:50vh;border-right:none;border-bottom:1px solid var(--border)}
}
