/* Accounting Genie — only what the shared Genie stylesheet does not give.
   Structure (.wrap, .mg-top, .mg-btn, .mg-foot) comes from
   math-genie/assets/genie.css. */

.ag { --line:#dbe3ee; --ink:#11243b; --muted:#5a6b80; --navy:#001f3f; --red:#cc0000;
      --green:#17703a; --amber:#8a5d06; }

.ag-grid { display:grid; gap:1.6rem; align-items:start; }
@media (min-width:1040px) { .ag-grid { grid-template-columns:minmax(0,1fr) 320px; } }

.ag-card { background:#fff; border:1px solid var(--line); border-radius:14px;
           padding:1.2rem 1.35rem; box-shadow:0 2px 20px rgba(0,31,63,.05); margin-bottom:1.2rem; }
.ag-card > h2 { font:700 1.1rem/1.3 inherit; margin:0 0 .2rem; }
.ag-card > p.lede { color:var(--muted); font-size:.92rem; margin:0 0 .9rem; }

label.ag-l { display:block; font-weight:700; margin-bottom:.45rem; }
label.ag-l span { display:block; font-weight:400; font-size:.85rem; color:var(--muted); margin-top:.15rem; }
.ag-in, textarea.ag-in { width:100%; box-sizing:border-box; padding:.75rem .9rem;
  border:1.5px solid var(--line); border-radius:10px; font:1rem/1.6 inherit; color:var(--ink); }
textarea.ag-in { font-family:ui-monospace,Menlo,Consolas,monospace; font-size:.95rem; min-height:14rem; }
.ag-in:focus { outline:none; border-color:var(--navy); box-shadow:0 0 0 3px rgba(0,31,63,.09); }
.ag-row { display:flex; gap:.6rem; flex-wrap:wrap; align-items:flex-end; margin-top:.9rem; }
.ag-row > div { flex:1 1 9rem; }

.ag-eg { margin-top:.85rem; font-size:.87rem; color:var(--muted); }
.ag-eg button { background:#f3f6fa; border:1px solid var(--line); border-radius:999px;
  padding:.3rem .78rem; margin:.25rem .3rem 0 0; font:inherit; font-size:.85rem;
  color:var(--ink); cursor:pointer; }
.ag-eg button:hover { border-color:var(--navy); background:#fff; }

/* ---- results ---- */
.ag-out > section { margin-top:1.6rem; }
.ag-out h2 { font:700 1.15rem/1.3 inherit; margin:0 0 .25rem; }
.ag-out > section > p.lede { color:var(--muted); font-size:.92rem; margin:0 0 .85rem; }

table.ag-t { width:100%; border-collapse:collapse; font-size:.95rem; background:#fff;
             border:1px solid var(--line); border-radius:10px; overflow:hidden; }
table.ag-t th, table.ag-t td { padding:.55rem .8rem; text-align:left; border-bottom:1px solid var(--line); }
table.ag-t th { background:#f5f8fc; font:700 .76rem/1.3 inherit; letter-spacing:.07em;
                text-transform:uppercase; color:var(--muted); }
table.ag-t td.n, table.ag-t th.n { text-align:right; font-family:ui-monospace,Menlo,monospace; }
table.ag-t tr:last-child td { border-bottom:0; }
table.ag-t tr.total td { font-weight:700; background:#f5f8fc; border-top:2px solid var(--navy); }
table.ag-t td.dim { color:var(--muted); font-size:.88rem; }

.ag-verdict { border-radius:11px; padding:1rem 1.15rem; margin-bottom:1rem; font-size:.97rem; }
.ag-verdict.good { background:#eefaf1; border:1px solid #abdfbd; color:var(--green); }
.ag-verdict.bad  { background:#fdf0f0; border:1px solid #efb5b5; color:#9a1c1c; }
.ag-verdict b { display:block; font-size:1.05rem; margin-bottom:.3rem; }

.ag-fault { background:#fff; border:1px solid var(--line); border-left:4px solid var(--red);
            border-radius:10px; padding:.85rem 1.05rem; margin-bottom:.6rem; }
.ag-fault .ag-where { float:right; font-size:.78rem; color:#7a8698; }
.ag-fault b { display:block; margin-bottom:.3rem; }
.ag-fault p { margin:0; font-size:.9rem; color:var(--muted); line-height:1.6; }
.ag-fault pre { margin:.5rem 0 0; font:.85rem ui-monospace,Menlo,monospace; color:var(--ink);
                background:#f5f8fc; border-radius:7px; padding:.5rem .7rem; overflow-x:auto; }

.ag-hint { background:#f7faff; border:1px solid #c9dcf3; border-radius:9px;
           padding:.6rem .85rem; margin-bottom:.45rem; font-size:.9rem; color:#1d3c5f; }

.ag-ledger { display:grid; gap:.9rem; }
@media (min-width:720px) { .ag-ledger { grid-template-columns:1fr 1fr; } }
.ag-acc { background:#fff; border:1px solid var(--line); border-radius:11px; overflow:hidden; }
.ag-acc > h3 { font:700 .98rem/1.3 inherit; margin:0; padding:.6rem .85rem;
               background:#f5f8fc; border-bottom:1px solid var(--line);
               display:flex; justify-content:space-between; gap:.6rem; align-items:baseline; }
.ag-acc > h3 em { font-style:normal; font-weight:500; font-size:.76rem; color:var(--muted);
                  letter-spacing:.06em; text-transform:uppercase; }
.ag-acc table { width:100%; border-collapse:collapse; font-size:.88rem; }
.ag-acc td { padding:.35rem .85rem; }
.ag-acc td.n { text-align:right; font-family:ui-monospace,Menlo,monospace; }
.ag-acc .bal td { border-top:1px solid var(--line); font-weight:700; }
.ag-unusual { margin:0; padding:.5rem .85rem; background:#fff8e8; border-top:1px solid #ecd3a0;
              font-size:.84rem; color:var(--amber); }

.ag-note { font-size:.9rem; color:var(--muted); line-height:1.65; background:#f7faff;
           border:1px solid #c9dcf3; border-radius:10px; padding:.85rem 1rem; margin:.9rem 0 0; }

.ag-cant { background:#fffdf7; border:1px solid #ecd3a0; border-radius:12px;
           padding:1.1rem 1.25rem; margin-top:1.6rem; }
.ag-cant h3 { font:700 .98rem/1.3 inherit; margin:0 0 .5rem; color:var(--amber); }
.ag-cant ul { margin:0; padding-left:1.05rem; font-size:.9rem; line-height:1.7; color:var(--muted); }

.ag-side { background:#fff; border:1px solid var(--line); border-radius:12px;
           padding:1.1rem 1.25rem; margin-bottom:1rem; }
.ag-side h2 { font:700 1rem/1.3 inherit; margin:0 0 .45rem; }
.ag-side p, .ag-side ul, .ag-side ol { font-size:.9rem; line-height:1.68; color:var(--muted); margin:0; }
.ag-side ul, .ag-side ol { padding-left:1.1rem; }
.ag-side pre { font:.82rem/1.6 ui-monospace,Menlo,monospace; background:#f5f8fc;
               border-radius:8px; padding:.6rem .7rem; overflow-x:auto; margin:.5rem 0 0; color:var(--ink); }

.ag-ratio { background:#fff; border:1px solid var(--line); border-radius:11px;
            padding:.9rem 1.05rem; margin-bottom:.6rem; }
.ag-ratio .v { float:right; font:800 1.25rem/1 var(--font-heading,inherit); color:var(--navy); }
.ag-ratio b { display:block; }
.ag-ratio .f { font:.82rem ui-monospace,Menlo,monospace; color:var(--muted); margin:.25rem 0 .45rem; }
.ag-ratio p { margin:0; font-size:.9rem; color:var(--muted); line-height:1.6; }
.ag-group { margin:1.3rem 0 .5rem; font:700 .78rem/1 inherit; letter-spacing:.13em;
            text-transform:uppercase; color:var(--red); }

.ag-missing { font-size:.88rem; color:var(--muted); background:#f5f8fc; border-radius:9px;
              padding:.7rem .9rem; }
.ag-missing li { margin-bottom:.2rem; }

@media print { .ag-eg, .ag-side, .mg-top, #site-header, .mg-foot, .ag-row { display:none !important; } }
