.abp-app, .abp-pricing, .abp-my { max-width: 1100px; margin: 2rem auto; font-family: system-ui, -apple-system, sans-serif; }
.abp-head { display: flex; justify-content: space-between; align-items: center; padding: 0 0 1rem; border-bottom: 2px solid #e5e7eb; }
.abp-head h2 { margin: 0; color: #0f2c48; }
.abp-credits { background: #0f2c48; color: #fff; padding: .4rem .9rem; border-radius: 20px; font-size: .9rem; }
.abp-row { margin: 1.2rem 0; }
.abp-row label { display: block; font-weight: 600; font-size: .85rem; color: #1f2937; }
.abp-row select { width: 100%; max-width: 340px; padding: .6rem .9rem; border: 1.5px solid #e5e7eb; border-radius: 8px; margin-top: .35rem; }
.abp-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 1rem; margin: 1rem 0; }
.abp-grid label { font-size: .75rem; font-weight: 600; color: #374151; display: flex; flex-direction: column; }
.abp-grid input, .abp-grid select { margin-top: .25rem; padding: .55rem .7rem; border: 1.5px solid #e5e7eb; border-radius: 8px; background: #fafafa; }
.abp-actions { display: flex; gap: .8rem; flex-wrap: wrap; margin: 1.2rem 0; }
.abp-btn { padding: .7rem 1.4rem; border: none; border-radius: 30px; font-weight: 600; cursor: pointer; background: #e5e7eb; color: #111827; font-size: .9rem; text-decoration: none; display: inline-block; }
.abp-btn:hover { opacity: .85; }
.abp-btn-primary { background: linear-gradient(105deg, #1f4870, #0f2c48); color: #fff; }
.abp-canvas-wrap { background: #fafcff; border: 1px solid #e5e7eb; border-radius: 12px; padding: 1rem; overflow-x: auto; margin-top: 1rem; }
#abp-canvas { width: 100%; max-width: 100%; height: auto; display: block; background: #fff; }
.abp-notice { background: #fef3c7; padding: 1rem; border-left: 4px solid #f59e0b; border-radius: 8px; margin: 1rem 0; }
.abp-plans { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 1.2rem; margin-top: 1.5rem; }
.abp-plan { background: #fff; border: 1px solid #e5e7eb; border-radius: 14px; padding: 1.5rem; text-align: center; box-shadow: 0 4px 16px rgba(0,0,0,.05); }
.abp-plan h3 { margin: 0 0 .5rem; color: #0f2c48; font-size: 1.05rem; }
.abp-price { font-size: 1.6rem; font-weight: 700; color: #0f2c48; margin: .7rem 0 1rem; }
.abp-table { width: 100%; border-collapse: collapse; margin-top: 1rem; }
.abp-table th, .abp-table td { padding: .6rem; border-bottom: 1px solid #e5e7eb; text-align: left; font-size: .85rem; }
.abp-credits-badge { display: inline-block; background: #0f2c48; color: #fff; padding: .35rem .8rem; border-radius: 20px; font-size: .85rem; }
.abp-history-viewer { margin: 1.5rem 0; padding: 1.25rem; border: 1px solid #dbe3ec; border-radius: 14px; background: #fff; }
.abp-history-viewer h3 { margin-top: 0; color: #0f2c48; }
.abp-history-error { padding: .8rem 1rem; border-left: 4px solid #dc2626; background: #fef2f2; color: #991b1b; border-radius: 6px; }
.abp-history-viewer canvas { min-height: 40px; }

.abp-iin-field { display: inline-flex; flex-direction: column; gap: .3rem; margin-left: 1rem; min-width: 220px; max-width: 340px; vertical-align: top; }
.abp-iin-field input { width: 100%; box-sizing: border-box; padding: .6rem .9rem; border: 1.5px solid #cbd5e1; border-radius: 8px; background: #f1f5f9; color: #0f2c48; font-weight: 700; letter-spacing: .08em; margin-top: .35rem; }
.abp-iin-field small { display: block; color: #64748b; font-size: .75rem; line-height: 1.4; font-weight: 400; max-width: 340px; }
@media (max-width: 600px) { .abp-iin-field { margin-left: 0; margin-top: .8rem; display: flex; } }


/* Geometry controls: UI-only demo layout settings */
.abp-geometry { margin: 1.5rem 0; padding: 1.25rem; border: 1px solid #dbe3ec; border-radius: 14px; background: #f8fbff; }
.abp-geometry h3 { margin: 0 0 .4rem; color: #0f2c48; }
.abp-geometry-note { margin: 0 0 1rem; color: #64748b; font-size: .85rem; }
.abp-geometry-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1rem; }
.abp-geometry-grid label { display: flex; flex-direction: column; gap: .35rem; font-weight: 600; color: #374151; font-size: .85rem; }
.abp-geometry-grid input { width: 100%; box-sizing: border-box; padding: .65rem .8rem; border: 1px solid #cbd5e1; border-radius: 8px; background: #fff; font: inherit; }
.abp-geometry-grid small { color: #64748b; font-weight: 400; }
.abp-geometry-summary { display: flex; flex-wrap: wrap; gap: .7rem 1.25rem; margin-top: 1rem; padding: .8rem 1rem; border-radius: 9px; background: #eaf2fb; color: #0f2c48; }
.abp-geometry-actions { display: flex; align-items: center; flex-wrap: wrap; gap: .7rem; margin-top: 1rem; }
#abp-geometry-status { color: #166534; font-size: .85rem; }


/* USA 50-state selector: presentation-only state emblem cards and demo form */
.usa-bc-states{max-width:1180px;margin:2rem auto;padding:clamp(14px,2.5vw,28px);font-family:system-ui,-apple-system,sans-serif;color:#172b43;background:#fff;border:1px solid #e4eaf1;border-radius:22px;box-shadow:0 12px 38px rgba(15,44,72,.07)}
.usa-bc-state-header{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:22px;padding-bottom:20px;border-bottom:1px solid #e7edf4}.usa-bc-kicker{margin:0 0 5px;color:#47739a;font-size:.72rem;font-weight:800;letter-spacing:.14em}.usa-bc-state-header h2,.usa-bc-form-title h2{margin:0;color:#102f4d;font-size:clamp(1.45rem,3vw,2rem)}.usa-bc-state-header p:not(.usa-bc-kicker){margin:.4rem 0 0;color:#64748b}.usa-bc-count{flex-shrink:0;border:1px solid #d7e4f1;border-radius:999px;padding:8px 13px;background:#f2f7fc;color:#234d72;font-size:.82rem;font-weight:700}
.usa-bc-state-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.usa-bc-state-card{position:relative;display:flex;min-width:0;min-height:145px;flex-direction:column;align-items:flex-start;gap:7px;padding:15px;border:1px solid #e0e8f0;border-radius:15px;background:linear-gradient(160deg,#fff,#f8fbff);text-align:left;cursor:pointer;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;color:#172b43}.usa-bc-state-card:hover,.usa-bc-state-card:focus-visible{transform:translateY(-2px);border-color:#6b9bc6;box-shadow:0 8px 22px rgba(29,78,121,.12);outline:none}.usa-bc-state-seal{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;flex:0 0 42px;border:2px solid #c4d7e8;border-radius:50%;background:radial-gradient(circle at 35% 25%,#fff 0,#edf5fc 45%,#d8e8f6 100%);box-shadow:inset 0 0 0 3px #fff;color:#173f65;font-size:.78rem;font-weight:900;letter-spacing:.03em}.usa-bc-state-name{font-size:.92rem;font-weight:750;line-height:1.25}.usa-bc-state-abbr{color:#6b7e91;font-size:.72rem;font-weight:700;letter-spacing:.08em}.usa-bc-state-open{margin-top:auto;color:#356d9e;font-size:.75rem;font-weight:750}.usa-bc-state-open span{font-size:1rem}.usa-bc-demo-form{margin-top:24px;padding:clamp(16px,3vw,28px);border:1px solid #dce7f1;border-radius:18px;background:#fbfdff}.usa-bc-back{margin-bottom:22px;padding:9px 13px;border:1px solid #d5e0eb;border-radius:9px;background:#fff;color:#234d72;font-weight:700;cursor:pointer}.usa-bc-form-title{display:flex;align-items:center;gap:14px;margin-bottom:18px}.usa-bc-state-seal-large{width:58px;height:58px;flex-basis:58px;font-size:1rem}.usa-bc-form-title p:last-child{margin:.25rem 0 0;color:#64748b;font-size:.85rem}.usa-bc-demo-notice{margin:18px 0;padding:12px 15px;border-left:4px solid #d6a243;border-radius:8px;background:#fff7e8;color:#79541a;font-size:.88rem;line-height:1.5}.usa-bc-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.usa-bc-form-grid label{display:flex;flex-direction:column;gap:7px;color:#30465b;font-size:.84rem;font-weight:700}.usa-bc-form-grid input{width:100%;box-sizing:border-box;padding:12px 13px;border:1px solid #d5e0eb;border-radius:9px;background:#fff;color:#172b43;font:inherit;font-weight:400}.usa-bc-form-grid input:focus{outline:2px solid #a8c8e4;border-color:#6b9bc6}.usa-bc-form-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:18px}.usa-bc-submit{padding:11px 18px;border:0;border-radius:9px;background:#173f65;color:#fff;font-weight:750;cursor:pointer}.usa-bc-submit:hover{background:#245a88}#usa-bc-demo-status{color:#276749;font-size:.86rem;font-weight:700}
@media(max-width:950px){.usa-bc-state-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:680px){.usa-bc-state-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.usa-bc-state-card{min-height:130px;padding:12px}.usa-bc-state-header{align-items:flex-start}.usa-bc-form-grid{grid-template-columns:1fr}}@media(max-width:360px){.usa-bc-state-grid{grid-template-columns:1fr}.usa-bc-state-card{min-height:auto}}
