:root{
  --bg:#f3f5f7; --panel:#fff; --border:#e5e7eb; --text:#111827; --muted:#6b7280;
  --accent:#f97316; --btn:#1f2937;
}
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:var(--bg);color:var(--text)}
.wrap{max-width:1050px;margin:20px auto;padding:0 14px 30px}
.panel{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:14px}
.row{display:grid;grid-template-columns:170px 1fr;border:1px solid var(--border);border-radius:8px;overflow:hidden;margin-bottom:12px}
.labelBox{background:#fafafa;border-right:1px solid var(--border);padding:14px 12px;font-weight:800}
.fieldBox{padding:10px 12px}
input,select{width:100%;border:1px solid var(--border);background:#fff;border-radius:8px;padding:12px;font-size:15px;outline:none}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}
.grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;margin-bottom:12px}
@media(max-width:820px){.row{grid-template-columns:1fr}.labelBox{border-right:0;border-bottom:1px solid var(--border)}.grid2,.grid3{grid-template-columns:1fr}}
.card{border:1px solid var(--border);border-radius:8px;padding:10px;background:#fff}
.hint{font-size:12px;color:var(--muted);font-weight:800;margin-bottom:6px}
.btn{width:100%;border:0;background:var(--btn);color:#fff;padding:16px 14px;border-radius:10px;font-size:16px;font-weight:950;cursor:pointer}
.btn:hover{filter:brightness(1.05)}
.top{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px}
a{color:#2563eb;text-decoration:none;font-weight:800}
a:hover{text-decoration:underline}
.alert{background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;padding:10px 12px;border-radius:8px;font-size:13px;margin:10px 0}
.resultBar{position:relative;margin-top:16px;border:1px solid var(--border);background:#fff;border-radius:10px;padding:14px}
.miniGrid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}
@media(max-width:820px){.miniGrid{grid-template-columns:1fr}}
.miniCard{border:1px solid var(--border);border-radius:10px;padding:12px;background:#f8fafc}
.miniTitle{font-size:12px;color:var(--muted);font-weight:900}
.miniValue{margin-top:6px;font-size:20px;font-weight:950}
.bubble{position:absolute;right:14px;top:50%;transform:translateY(-50%);width:92px;height:92px;border-radius:999px;background:var(--accent);color:#fff;display:grid;place-items:center;text-align:center;font-weight:950;line-height:1.1}
.bubble b{font-size:20px}