.triangle-solver-wrap{width:100%;max-width:100%;box-sizing:border-box;container-type:inline-size;}
.triangle-solver-layout{display:grid;grid-template-columns:3fr 1fr;gap:14px;align-items:start;}
.triangle-solver-main{min-width:0;display:flex;flex-direction:column;gap:12px;}
.triangle-solver-side{min-width:0;display:flex;flex-direction:column;gap:12px;}
@container (max-width:860px){.triangle-solver-layout{grid-template-columns:1fr;}}
.triangle-solver-panel{background:var(--bg-card,#fff);border:1px solid var(--border,#e5e7eb);
border-radius:var(--radius,10px);padding:14px;min-width:0;}
.triangle-solver-head{display:flex;align-items:baseline;gap:8px;margin-bottom:10px;flex-wrap:wrap;}
.triangle-solver-headt{font-size:14px;font-weight:600;color:var(--text,#333);}
.triangle-solver-heads{font-size:12px;color:var(--text-secondary,#6b7281);}
.triangle-solver-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;}
.triangle-solver-grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px;}
.triangle-solver-cell{display:flex;flex-direction:column;gap:4px;min-width:0;}
.triangle-solver-cell.triangle-solver-wide{grid-column:1/-1;}
.triangle-solver-req{background:var(--bg-page,#f7f8fa);border-radius:var(--radius-sm,6px);padding:8px;}
.triangle-solver-lbl{display:block;font-size:12px;color:var(--text-secondary,#6b7281);}
.triangle-solver-in{width:100%;box-sizing:border-box;padding:7px 9px;font-size:13px;font-family:inherit;
color:var(--text,#333);background:var(--bg-input,#fff);
border:1px solid var(--border,#e5e7eb);border-radius:var(--radius-sm,6px);}
.triangle-solver-in:focus-visible{outline:none;box-shadow:0 0 0 3px var(--primary-shadow,rgba(37,99,235,.15));}
.triangle-solver-sel{width:100%;box-sizing:border-box;padding:7px 9px;font-size:13px;font-family:inherit;
color:var(--text,#333);background:var(--bg-input,#fff);
border:1px solid var(--border,#e5e7eb);border-radius:var(--radius-sm,6px);}
.triangle-solver-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px;align-items:center;}
.triangle-solver-btn{padding:7px 14px;font-size:13px;font-family:inherit;cursor:pointer;
color:var(--text,#333);background:var(--bg-btn,#f3f4f6);
border:1px solid var(--border,#e5e7eb);border-radius:var(--radius-sm,6px);}
.triangle-solver-btn:hover{background:var(--bg-btn-hover,#e5e7eb);}
.triangle-solver-btn.triangle-solver-primary{color:var(--text-on-accent,#fff);background:var(--primary,#2563eb);
border-color:var(--primary,#2563eb);}
.triangle-solver-btn.triangle-solver-primary:hover{background:var(--primary-hover,#1d4ed8);}
.triangle-solver-btn:disabled{opacity:.5;cursor:not-allowed;}
.triangle-solver-btn:focus-visible{outline:none;box-shadow:0 0 0 3px var(--primary-shadow,rgba(37,99,235,.15));}
.triangle-solver-checks{display:flex;gap:14px;flex-wrap:wrap;margin-top:8px;}
.triangle-solver-chk{display:flex;align-items:center;gap:5px;font-size:12px;
color:var(--text-secondary,#6b7281);cursor:pointer;}
.triangle-solver-cbx{width:14px;height:14px;accent-color:var(--primary,#2563eb);margin:0;}
.triangle-solver-rng{width:100%;accent-color:var(--primary,#2563eb);margin:0;}
.triangle-solver-msg{margin:8px 0 0;font-size:12px;min-height:16px;color:var(--text-secondary,#6b7281);
overflow-wrap:anywhere;}
.triangle-solver-msg.ok{color:var(--success,#16a34a);}
.triangle-solver-msg.err{color:var(--danger,#dc2626);}
.triangle-solver-msg.warn{color:var(--warning-fg,#92400e);}
.triangle-solver-empty{margin:0;font-size:12px;color:var(--text-secondary,#6b7281);}
.triangle-solver-empty.err2{color:var(--danger,#dc2626);font-weight:600;}
.triangle-solver-res{display:flex;flex-direction:column;gap:8px;max-height:620px;overflow:auto;}
.triangle-solver-big{font-size:26px;font-weight:700;line-height:1.2;color:var(--primary,#2563eb);
overflow-wrap:anywhere;}
.triangle-solver-bigsub{font-size:12px;color:var(--text-secondary,#6b7281);}
.triangle-solver-card{background:var(--bg-page,#f7f8fa);border-radius:var(--radius-sm,6px);
padding:10px;min-width:0;overflow-wrap:anywhere;}
.triangle-solver-cardt{font-size:12px;font-weight:600;color:var(--text,#333);margin-bottom:6px;}
.triangle-solver-note{margin:8px 0 0;font-size:12px;color:var(--text-secondary,#6b7281);line-height:1.6;}
.triangle-solver-tbl{width:100%;border-collapse:collapse;font-size:12px;}
.triangle-solver-tbl th,.triangle-solver-tbl td{border:1px solid var(--border,#e5e7eb);padding:6px 8px;text-align:left;
overflow-wrap:anywhere;}
.triangle-solver-tbl th{background:var(--bg-page,#f7f8fa);font-weight:600;color:var(--text,#333);}
.triangle-solver-kw{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;}
.triangle-solver-kwi{padding:4px 9px;font-size:12px;font-family:inherit;cursor:pointer;color:var(--text,#333);
background:var(--bg-btn,#f3f4f6);border:1px solid var(--border,#e5e7eb);
border-radius:var(--radius-sm,6px);}
.triangle-solver-kwi:hover{background:var(--bg-btn-hover,#e5e7eb);}
.triangle-solver-kwi.on{color:var(--text-on-accent,#fff);background:var(--primary,#2563eb);
border-color:var(--primary,#2563eb);}
.triangle-solver-mt6{margin-top:6px;}
.triangle-solver-mt10{margin-top:10px;}
.triangle-solver-hide{display:none !important;}
.triangle-solver-cwrap{border:1px solid var(--border,#e5e7eb);border-radius:var(--radius-sm,6px);
padding:8px;background:var(--bg-page,#f7f8fa);min-width:0;}
.triangle-solver-cwrap canvas{max-width:100%;height:auto;display:block;}
.triangle-solver-fnrow{display:flex;gap:8px;align-items:center;}
.triangle-solver-fngrow{flex:1;min-width:0;}
.triangle-solver-stat{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:8px;}
.triangle-solver-statc{background:var(--bg-page,#f7f8fa);border-radius:var(--radius-sm,6px);padding:8px;
text-align:center;min-width:0;}
.triangle-solver-statv{font-size:18px;font-weight:700;color:var(--primary,#2563eb);overflow-wrap:anywhere;}
.triangle-solver-statt{font-size:11px;color:var(--text-secondary,#6b7281);margin-top:2px;}
.triangle-solver-ptgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(52px,1fr));gap:4px;}
.triangle-solver-ptc{border:1px solid var(--border,#e5e7eb);border-radius:var(--radius-sm,6px);padding:4px 2px;
text-align:center;cursor:pointer;background:var(--bg-card,#fff);font-family:inherit;}
.triangle-solver-ptc:hover{background:var(--bg-btn-hover,#e5e7eb);}
.triangle-solver-ptc.on{background:var(--primary,#2563eb);color:var(--text-on-accent,#fff);
border-color:var(--primary,#2563eb);}
.triangle-solver-ptz{font-size:10px;color:var(--text-secondary,#6b7281);line-height:1.2;}
.triangle-solver-ptc.on .triangle-solver-ptz{color:var(--text-on-accent,#fff);}
.triangle-solver-pts{font-size:14px;font-weight:700;line-height:1.2;}
.triangle-solver-ptn{font-size:10px;line-height:1.2;}
.triangle-solver-kana{display:grid;grid-template-columns:repeat(auto-fit,minmax(58px,1fr));gap:5px;}
.triangle-solver-kcell{border:1px solid var(--border,#e5e7eb);border-radius:var(--radius-sm,6px);padding:6px 2px;
text-align:center;cursor:pointer;background:var(--bg-card,#fff);font-family:inherit;}
.triangle-solver-kcell:hover{background:var(--bg-btn-hover,#e5e7eb);}
.triangle-solver-kcell.on{background:var(--primary,#2563eb);color:var(--text-on-accent,#fff);
border-color:var(--primary,#2563eb);}
.triangle-solver-kk{font-size:19px;line-height:1.25;}
.triangle-solver-kr{font-size:10px;color:var(--text-secondary,#6b7281);line-height:1.2;}
.triangle-solver-kcell.on .triangle-solver-kr{color:var(--text-on-accent,#fff);}
.triangle-solver-formula{font-family:"Cambria Math",Georgia,"Times New Roman",serif;font-size:14px;
background:var(--bg-page,#f7f8fa);border-radius:var(--radius-sm,6px);padding:8px 10px;
overflow-wrap:anywhere;}
.triangle-solver-verb{display:flex;gap:10px;flex-wrap:wrap;font-size:14px;font-weight:600;
color:var(--primary,#2563eb);overflow-wrap:anywhere;}
.triangle-solver-need{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:6px 0 0;
font-size:12px;color:var(--text-secondary,#6b7281);}
.triangle-solver-needt{font-weight:600;}
.triangle-solver-needk{background:var(--bg-btn,#f3f4f6);border-radius:var(--radius-sm,6px);padding:2px 7px;
color:var(--primary,#2563eb);font-weight:600;}
.triangle-solver-cell .triangle-solver-in:disabled{background:var(--bg-btn,#f3f4f6);
color:var(--text-secondary,#6b7281);cursor:not-allowed;opacity:.7;}
.triangle-solver-cell.req .triangle-solver-lbl{color:var(--primary,#2563eb);font-weight:600;}

/* ENH2 */
.triangle-solver-thw{width:80px;}

/* ENH-BATCH2 */

.triangle-solver-enh{margin-top:12px;}
.triangle-solver-enhrow{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:6px;}
.triangle-solver-enhin{flex:1 1 120px;min-width:90px;padding:6px 8px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-input);color:var(--text);font-size:13px;}
.triangle-solver-enhbtn{padding:6px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-btn);color:var(--text);font-size:13px;cursor:pointer;}
.triangle-solver-enhbtn:hover{background:var(--bg-btn-hover);}
.triangle-solver-enhtitle{font-size:13px;font-weight:600;color:var(--text-secondary);margin:0 0 4px;}
.triangle-solver-enhout{margin-top:8px;padding:8px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-page);font-size:13px;line-height:1.7;word-break:break-all;}
.triangle-solver-enhout table{border-collapse:collapse;width:100%;font-size:12px;}
.triangle-solver-enhout th,.triangle-solver-enhout td{border:1px solid var(--border);padding:3px 6px;text-align:left;}
.triangle-solver-enhout svg{max-width:100%;height:auto;display:block;}
.triangle-solver-enhk{color:var(--text-secondary);}
.triangle-solver-enhv{font-weight:600;color:var(--primary);}

/* ===== ENH-BATCH4 ===== */
.triangle-solver-enhns{max-width:80px;}
.triangle-solver-enhsel{max-width:190px;}
.triangle-solver-enhbig{font-size:28px;line-height:1.4;}
.triangle-solver-enhmt{margin-top:6px;}
.triangle-solver-enhok{color:var(--success, #2f9e44);}

/* ===== 工具类（消除内联样式） ===== */
.triangle-solver-fx64{flex:0 0 64px;}
