.asn-finapps, .asn-finapps * { box-sizing: border-box; }
.asn-finapps {
  --accent: #1545FF;
  --text: #000000;
  --muted: #111111;
  --bg: #ffffff;
  --card-bg: #ffffff;
  --card-border: #1f2937;
  --input-bg: #ffffff;
  --input-border: #111111;
  --badge-bg: #eef2ff;
  --badge-text: #111111;
  --fs-root: 16px;
  --metric-scale: 1;
  --input-h: 44px;
  --radius: 10px;
  --maxw: 980px;
  --gap: 14px;
  --pad: 14px;
  --gauge: 180px;
}
.asn-finapps { 
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Arial, sans-serif;
  color: var(--text);
  border: 1px solid var(--card-border);
  border-radius: var(--radius);
  padding: var(--pad);
  background: var(--bg);
  max-width: var(--maxw);
  margin: 20px auto;
  font-size: var(--fs-root);
  line-height: 1.35;
}
.asn-font-inherit { font-family: inherit; }
.asn-theme-minimal.asn-finapps { background: transparent; border: 0; padding: 0; }
.asn-theme-minimal .asn-card { background: transparent; border-color: var(--card-border); box-shadow:none; }
.asn-force-bw, .asn-force-bw * { color: #000 !important; }
.asn-force-bw .asn-field input,
.asn-force-bw .asn-field select { background: #fff !important; color: #000 !important; border-color: #000 !important; caret-color:#000 !important; }
.asn-force-bw .asn-field input::placeholder { color: #000 !important; opacity: 1 !important; }
.asn-force-bw .asn-metric .v { color:#000 !important; }
.asn-force-bw .asn-card, .asn-force-bw .asn-metric { border-color:#000 !important; }
.asn-finapps h2 { margin: 0 0 8px; font-size: 1.125rem; color: var(--text); }
.asn-finapps .sub { color: var(--muted); margin-bottom: 16px; font-size: .95rem; }
.asn-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--gap); }
@media (max-width: 720px) { .asn-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); } }
.asn-card { border: 1.5px solid var(--card-border); border-radius: var(--radius); padding: var(--pad); background: var(--card-bg); min-width: 0; }
.asn-card h3 { margin-top: 0; font-size: 1rem; color: var(--text); }
.asn-field { min-width: 0; }
.asn-field label { display:block; font-size: .9rem; color: var(--text); margin-bottom:6px; font-weight:600; }
.asn-field input[type="number"], .asn-field input[type="text"], .asn-field input[type="email"], .asn-field select {
  width:100%; padding:10px 12px; border: 1.5px solid var(--input-border); border-radius: calc(var(--radius) - 2px); font-size: .95rem; background: var(--input-bg); color: var(--text);
  min-height: var(--input-h);
}
.asn-field input::placeholder { color: var(--text); opacity: 1; }
.asn-inline { display:flex; gap:8px; align-items:center; }
.asn-help { font-size:.85rem; color: var(--muted); }
.asn-actions { display:flex; gap:10px; flex-wrap:wrap; align-items:center; }
.asn-btn {
  appearance:none; border:0; border-radius: 999px; padding: 10px 16px; background: var(--accent); color:#fff; font-weight:700; cursor:pointer; font-size: .95rem;
}
.asn-btn.secondary { background: var(--badge-bg); color: var(--text); border: 1.5px solid var(--card-border); }
.asn-btn.link { background:transparent; color:var(--accent); padding:0; }
.asn-btn:focus-visible, .asn-field input:focus-visible, .asn-field select:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}
.asn-btn:disabled { opacity:.5; cursor:not-allowed; }
.asn-results { display:none; }
.asn-results.active { display:block; }
.asn-metrics { display:grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--gap); margin-top:6px;}
@media (max-width: 720px){ .asn-metrics { grid-template-columns: repeat(6, minmax(0, 1fr)); } }
.asn-metric { background: var(--bg); border:1.5px dashed var(--card-border); border-radius: var(--radius); padding: var(--pad); min-width: 0; }
.asn-metric .k { font-size:.85rem; color: var(--muted); font-weight:600; }
.asn-metric .v { font-size: calc(1.05rem * var(--metric-scale)); font-weight:800; margin-top:2px; color: var(--text); line-height: 1.2; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.asn-gauge { --size: var(--gauge); width: var(--size); height: var(--size); border-radius:50%;
  background: conic-gradient(var(--accent) calc(var(--deg) * 1%), #e6e9ef 0); display:grid; place-items:center; margin:auto; }
.asn-gauge-inner { width: calc(var(--size) - 26px); height: calc(var(--size) - 26px); background:var(--bg); border-radius:50%;
  display:grid; place-items:center; text-align:center; gap:4px; box-shadow: inset 0 0 0 1.5px var(--card-border); }
.asn-gauge .score { font-size: 1.25rem; font-weight:800; color: var(--text); }
.asn-gauge .label { font-size:.85rem; color: var(--muted); text-wrap: balance; }
.asn-accordion details { border: 1.5px solid var(--card-border); border-radius: var(--radius); padding:10px 12px; background: var(--card-bg); }
.asn-accordion details + details { margin-top:8px; }
.asn-accordion summary { cursor:pointer; font-weight:700; color: var(--text); }
.asn-accordion p, .asn-accordion li { color: var(--text); }
.asn-video { aspect-ratio: 16/9; background:#000; border-radius: var(--radius); overflow:hidden; }
.asn-video iframe { width:100%; height:100%; border:0; display:block; }
.asn-lead { display:grid; gap:8px; }
.asn-note { font-size:.85rem; color: var(--muted); }
.asn-badges { display:flex; gap:12px; flex-wrap:wrap; margin-top:6px; }
.asn-badge { background: var(--badge-bg); color: var(--badge-text); padding:6px 10px; border-radius:999px; font-size:.8rem; }
.asn-warning { padding:10px 12px; background:#fff7ed; border:1.5px solid #fed7aa; color:#9a3412; border-radius: var(--radius); }
.asn-test-banner { background:#f0f9ff; border:1.5px solid #bae6fd; color:#075985; padding:8px 12px; border-radius: var(--radius); margin:8px 0; font-size:.9rem; display:none; }
.asn-success { padding:12px; border:1.5px solid #16a34a; background:#ecfdf5; color:#065f46; border-radius: var(--radius); margin-top:10px; }
.asn-success pre { white-space: pre-wrap; background:#fff; border:1px solid #d1fae5; padding:8px; border-radius:6px; color:#111; overflow:auto; }
@media print {
  body * { visibility: hidden; }
  #asn_finapps_print, #asn_finapps_print * { visibility: visible; }
  #asn_finapps_print { position: absolute; left: 0; top: 0; width: 100%; }
}
