/* AA Times: ALL styling lives in this one file. Palette and shapes follow GPT's prototype (aa-times-prototype.html).
   The render functions only emit class names, so a new look can replace this file without touching the logic. */
:root{--bg:#f9f6f0;--ink:#282622;--muted:#82786f;--card:#fffefa;--line:#e9e2d8;--terra:#b66146;--soft:#f2e1d4;--sage:#5c7468;--pink:#edbba9;--shadow:0 18px 42px #49382d10;--field:#fff;--chipon:#b66146;--tabbg:#fffefaed}
body.dark{--bg:#201d1c;--ink:#f5eee7;--muted:#b6a79d;--card:#302927;--line:#443934;--soft:#3c2a25;--shadow:none;--field:#312b29;--tabbg:#2c2424f5}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font:15px/1.45 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;background:#e9e5e0;color:var(--ink)}
body.dark{background:#171515}
body.noscroll{overflow:hidden}
button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}
:focus-visible{outline:3px solid #c77e63;outline-offset:2px}
.frame{width:min(100%,440px);min-height:100dvh;margin:auto;background:var(--bg);position:relative;box-shadow:0 0 45px #0001}
#top{position:sticky;top:0;z-index:9;background:var(--bg);padding:14px 20px 8px;display:flex;align-items:center;justify-content:space-between}
#top[hidden],.tabs[hidden]{display:none}
#top small{display:block;font-size:10px;letter-spacing:2px;color:var(--muted);font-weight:700}
.brand{font-family:Georgia,serif;font-size:23px;font-weight:bold;letter-spacing:-1px}.brand span{color:var(--terra)}
.avatar{height:44px;width:44px;border-radius:50%;border:1px solid var(--line);background:#f1dfd1;display:grid;place-items:center;font-weight:700;color:#342520}
.content{padding:10px 20px 150px}
.eyebrow{font-size:11px;color:var(--terra);text-transform:uppercase;letter-spacing:1.7px;font-weight:800}
.muted{color:var(--muted)}.mini{font-size:13px}.terra{color:var(--terra)}
h1,h2,h3,p{margin:0}
h1,h2{font-family:Georgia,serif;font-weight:500;letter-spacing:-1px}
h1{font-size:34px;line-height:1.13;margin:9px 0 4px}h2{font-size:25px}h3{font-size:16px}
h3.sect,summary.sect{font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:24px 0 10px;font-weight:800}
.sub{color:var(--muted);font-size:13px}.gold{color:var(--terra)}.mint{color:var(--sage)}.rose{color:#b3402f}
body.dark .rose{color:#ff9d8a}
.smallnote,.status{font-size:11px;color:var(--muted);line-height:1.5}
.warm{color:var(--muted);text-align:center;padding:14px 4px;margin:0}.unk{font-style:italic}
/* panels / tiles */
.panel{background:var(--card);border:1px solid var(--line);border-radius:22px;padding:17px;box-shadow:var(--shadow);margin-top:12px}
.tile{background:var(--card);border:1px solid var(--line);border-radius:22px;padding:16px}
.tiles{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin-top:14px}
.tile.art{min-height:150px;display:flex;flex-direction:column;justify-content:space-between;text-align:left;border:0;color:#302a25}
.tile.art:nth-child(1){background:#f3ddcd}.tile.art:nth-child(2){background:#e6e9dd}.tile.art:nth-child(3){background:#efe1d3}.tile.art:nth-child(4){background:#eee2ea}.tile.art:nth-child(5){background:#f3e8d2}
.tile.art .art{font-size:40px;line-height:1;align-self:flex-end}.tile.art h3{font:22px Georgia,serif}.tile.art p{font-size:11px;margin-top:4px;color:#625950}
.grid,.grid3{display:grid;gap:10px}.grid{grid-template-columns:1fr 1fr}.grid3{grid-template-columns:repeat(3,1fr)}
.tile.in{padding:12px 10px;min-width:0}.tile.in .big{font-size:22px;overflow-wrap:anywhere}
.big{font:30px Georgia,serif;letter-spacing:-1px;line-height:1.1}.lbl{font-size:12px;color:var(--muted);font-weight:700}
.row{display:flex;justify-content:space-between;gap:12px;align-items:baseline;padding:11px 0;border-top:1px solid var(--line)}
.row:first-child{border-top:0}.row .r{text-align:right;font-variant-numeric:tabular-nums;font-weight:700;white-space:nowrap}
.row .main{flex:1;min-width:0;overflow-wrap:anywhere}.row.na{align-items:center}
.row.void .main,.row.void .r{text-decoration:line-through;color:var(--muted)}.row.void .sub.rose{text-decoration:none}
.panel>.row:first-child{align-items:center}
.cashrow strong{font-weight:600}
/* day rows */
.days{padding:6px 17px}
.dayrow{display:flex;justify-content:space-between;align-items:center;gap:10px;width:100%;min-height:52px;background:none;border:0;border-top:1px solid var(--line);padding:10px 0;text-align:left;color:var(--ink)}
.dayrow:first-child{border-top:0}.dayrow .dv{font-weight:650}.dayrow .go{color:var(--terra);font-weight:800}
.nudge{display:flex;gap:13px}
/* chips and buttons */
.chip{display:inline-block;border:1px solid #dacac0;background:var(--field);border-radius:60px;padding:10px 14px;font-size:13px;min-height:44px;color:var(--ink)}
.chip.on{background:var(--chipon);color:#fff;border-color:var(--chipon)}
span.chip{min-height:0;padding:3px 10px;font-size:11px;font-weight:700;background:#f4e7db;color:#9d533b;border-color:transparent}
span.chip.mint{background:#e1e9e3;color:#476355}span.chip.rose{background:#f7dcd5;color:#a23d2c}span.chip.gold{background:#f4e7db;color:#9d533b}
body.dark span.chip{background:#4a3329;color:#f6c5ad}body.dark span.chip.mint{background:#2d3d34;color:#a8d0bb}body.dark span.chip.rose{background:#4a2a26;color:#ffb3a3}
.options{display:flex;gap:7px;flex-wrap:wrap;margin:12px 0}
button.primary{background:var(--terra);color:#fff;border:0;border-radius:16px;padding:14px 16px;font-weight:800;width:100%;min-height:48px}
button.primary.danger{background:#a23d2c}
button.secondary{background:var(--card);color:var(--terra);border:1px solid #d9b7a6;border-radius:16px;padding:12px 16px;font-weight:750;min-height:48px}
body.dark button.secondary,body.dark button.ghost{color:#f6c5ad;background:#332b28}
button.ghost{background:var(--card);border:1px solid #dcc4b6;color:#92523d;border-radius:50px;padding:10px 14px;font-size:13px;font-weight:700;min-height:44px}
.textbtn{border:0;background:transparent;color:var(--terra);font-weight:750;padding:8px 0;text-decoration:none;display:inline-block}
a.textbtn{display:inline-block}
button.link{display:block;width:100%;text-align:left;background:var(--card);border:1px solid var(--line);border-radius:19px;padding:14px;margin:10px 0;color:var(--ink)}
button.link .top{display:flex;justify-content:space-between;gap:8px;padding:0;align-items:center}
/* quick actions */
.quick{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:12px 0}.quick.three{grid-template-columns:repeat(3,1fr)}.quick.two2{grid-template-columns:1fr 1fr}
.q{background:var(--card);border:1px solid var(--line);border-radius:19px;padding:12px 4px 10px;display:flex;align-items:center;flex-direction:column;gap:6px;min-height:84px;color:var(--ink)}
.q i{font-style:normal;font-size:23px}.q span{font-size:11px;font-weight:650;text-align:center}
/* forms */
.acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;align-items:flex-start}
form.af{margin-top:6px}
.fl,.field label{font-size:12px;font-weight:750;display:block}
.fl input,.fl select,.fl textarea,.field input,.field select,.field textarea,input[type=search],.assistrow input,.login input{width:100%;padding:13px;border:1px solid #ddd2c7;border-radius:13px;background:var(--field);color:var(--ink);margin-top:5px;min-height:46px}
body.dark .fl input,body.dark .fl select,body.dark .fl textarea,body.dark .field input,body.dark .field select,body.dark .field textarea,body.dark input[type=search],body.dark .assistrow input,body.dark .login input{border-color:var(--line)}
textarea{resize:vertical;min-height:92px}
.field{display:grid;gap:4px;margin-bottom:14px}
.fl{margin:0 0 12px}
form.af.inline{display:inline-block;margin:0}form.af.inline button.primary{width:auto;background:var(--card);color:var(--terra);border:1px solid #d9b7a6;border-radius:50px;padding:0 16px;min-height:44px}
details.act{display:inline-block;max-width:100%}
details.act[open]{flex-basis:100%;display:block;background:var(--soft);border-radius:16px;padding:10px}
details.act>summary{list-style:none;cursor:pointer;min-height:44px;display:inline-flex;align-items:center;padding:0 16px;border:1px solid #dcc4b6;border-radius:99px;color:#92523d;background:var(--card);font-weight:700;font-size:13px}
details.act>summary::-webkit-details-marker,details.hd>summary::-webkit-details-marker{display:none}
details.act.danger>summary{color:#a23d2c}
details.hd{margin-top:8px}details.hd>summary{cursor:pointer;list-style:none}
.st{font-size:13px;margin:8px 0 0;min-height:1em;color:var(--muted)}.st.bad{color:#b3402f}.st.ok{color:var(--sage)}
body.dark .st.bad{color:#ff9d8a}
.info{border-radius:14px;background:#f5efe6;padding:12px 13px;font-size:13px;color:#6c5a4b;margin-top:12px}
body.dark .info{background:#3e332d;color:#e1c4b4}
.note{background:var(--soft);border-radius:12px;padding:8px 10px;margin-top:6px;font-size:13px}
.hl{outline:2px solid var(--terra);outline-offset:4px;border-radius:12px;background:var(--soft)}
.item{border-top:1px solid var(--line);padding:12px 0}.item:first-child{border-top:0}.item.low{border-left:3px solid #b3402f;padding-left:10px}
.item .top{display:flex;justify-content:space-between;gap:8px;padding:0;align-items:flex-start}
.att{display:inline-flex;gap:8px}
/* tab bar, Ask AA, sheets, toast */
.tabs{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(100%,440px);display:flex;padding:8px 10px max(12px,env(safe-area-inset-bottom));background:var(--tabbg);border-top:1px solid var(--line);backdrop-filter:blur(12px);z-index:10}
.tab{flex:1;border:0;background:none;color:#8c8178;display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 2px;font-size:11px;min-height:52px}
.tab i{font-style:normal;font-size:21px}.tab.active{color:var(--terra);font-weight:800}
.topbtns{display:flex;gap:8px;align-items:center}
.askpill{background:var(--ink);color:var(--bg);border:0;border-radius:50px;padding:0 14px;font-size:12px;font-weight:800;min-height:44px}
.modalwrap{display:none;position:fixed;inset:0;background:#211b18a0;z-index:30;justify-content:center;align-items:flex-end}
.modalwrap.show{display:flex}
.sheet{width:min(100%,440px);max-height:92dvh;overflow:auto;background:var(--bg);border-radius:26px 26px 0 0;padding:20px 22px max(32px,env(safe-area-inset-bottom));box-shadow:0 -13px 50px #0002}
.sheet .handle{width:43px;height:5px;background:#d8c7bc;border-radius:50px;margin:0 auto 16px}
.sheet-body{margin-top:14px}
.close{border:0;background:var(--soft);border-radius:50%;width:44px;height:44px;font-size:20px;color:var(--ink)}
.answer{background:var(--field);border:1px solid var(--line);border-radius:18px;padding:14px;margin-top:12px;font-size:14px}
.assistrow{display:flex;gap:7px;margin-top:12px}.assistrow input{flex:1;min-width:0;margin:0}.assistrow button{border:0;background:var(--terra);border-radius:13px;padding:10px 14px;color:#fff;font-weight:800;min-height:46px}
.toast{position:fixed;left:16px;right:16px;bottom:150px;max-width:420px;margin:0 auto;background:#e1e9e3;color:#2f4a3c;border-radius:14px;padding:12px 16px;z-index:40;opacity:0;pointer-events:none;transition:opacity .2s}
.toast.show{opacity:1}.toast.bad{background:#f7dcd5;color:#7d2a1d}
/* chart (real months only) */
.chart{height:112px;display:flex;align-items:end;gap:10px;padding:12px 5px 0}
.barpair{flex:1;display:flex;align-items:end;gap:3px;height:100%}.barpair .bar{flex:1;border-radius:6px 6px 2px 2px;min-height:4px;display:block}
.bar.in{background:#b96c50}.bar.out{background:#dfad97}
.chart-label{display:flex;justify-content:space-around;font-size:10px;color:var(--muted)}
/* login */
.login{max-width:360px;margin:10vh auto 0;padding:0 24px}.login label{display:block;margin-top:12px;font-size:12px;font-weight:700}
.login .primary{margin-top:16px}
.foot{margin-top:28px;text-align:center}
/* record sales */
.salesrow{border-top:1px solid var(--line);padding:12px 0}.salesrow:first-of-type{border-top:0}
.sch-wrap{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}
button.sch{min-height:44px;padding:0 14px;border:1px solid #dacac0;border-radius:99px;background:var(--field);color:var(--ink);font-weight:600}
button.sch.on{background:var(--terra);color:#fff;border-color:var(--terra)}button.sch.on .sub{color:#fff}
.sugs{display:flex;flex-direction:column;gap:6px;margin-bottom:8px}button.sug{text-align:left;width:100%}
.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.fl.chk{display:flex;align-items:center;gap:10px;min-height:44px}.fl.chk input{width:22px;height:22px;margin:0;min-height:0}
.sr-res{margin-top:12px}.sr-totals{padding:10px 0;font-weight:600}
@media(max-width:380px){h1{font-size:30px}.big{font-size:26px}.tile.in .big{font-size:19px}.q span{font-size:10px}}

/* Accounts: cash book + ledger */
.acc-chips{margin-top:8px}
.cb-controls{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}.cb-controls .fl{flex:1;min-width:140px;margin:0}
.printbtn{min-height:46px;padding:0 14px}
.cbook{padding:12px}
.cb-title{margin-bottom:6px}
.cbcols{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}
.cbside{min-width:0;border-top:2px solid var(--ink);padding-top:6px}
.cbside h3{font:600 14px Georgia,serif;margin-bottom:4px}
.cbrow{display:grid;grid-template-columns:auto 1fr auto;gap:6px;align-items:baseline;width:100%;background:none;border:0;border-bottom:1px dotted var(--line);padding:9px 0;text-align:left;min-height:44px;font-size:12px;color:var(--ink)}
.cbrow .cd{color:var(--muted);font-size:11px}
.cbrow .cw{min-width:0;overflow-wrap:anywhere}.cbrow .cw small{display:block;color:var(--muted);font-size:10px}
.cbrow .ca{font-variant-numeric:tabular-nums;font-weight:700;text-align:right}
.cbrow.open{background:var(--soft);border-radius:8px;padding-left:4px;padding-right:4px}
.cbrow.pre .cw small{color:#9d533b}
.wide-only{display:none}
.cbtot .big.sm{font-size:19px}.cbtot .sm{font-size:14px;margin-bottom:6px}
.cb-bf,.cb-close{border-top:1px solid var(--line);margin-top:8px}.cb-close{border-top:2px solid var(--ink);font-size:16px}
.cbempty{padding:8px 0}
@media(min-width:560px){
  .frame{width:min(100%,980px)}.tabs{width:min(100%,980px)}
  .wide-only{display:inline}
  .cbrow{grid-template-columns:auto 1fr auto auto auto;font-size:13px}
}
@media print{
  body{background:#fff;color:#000}.frame{width:100%;box-shadow:none}.top,.tabs,.toast,.modalwrap,.acc-chips,.cb-controls,.printbtn,.options,.foot,button.ghost,[data-back]{display:none!important}
  .content{padding:0}.panel{box-shadow:none;border:0;padding:0}.wide-only{display:inline}
  .cbrow{grid-template-columns:auto 1fr auto auto auto;font-size:11px;border-bottom:1px solid #ccc}
  h1{font-size:22px}a{color:#000}
}
button.link .top span{white-space:nowrap}button.link .top h3{min-width:0;overflow-wrap:anywhere}

.below-line{border-top:3px double var(--ink);margin-top:14px;padding-top:6px}
.below-line h3.sect{margin-top:12px}

body.saving button.primary,body.saving form.af button[type=submit],body.saving [data-sh=save]{pointer-events:none;opacity:.65}

.link.void h3,.link.void .sub{text-decoration:line-through;color:var(--muted)}.link.void .chip{text-decoration:none}

/* Clay pots */
.potgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.potcard{margin-top:0;padding:12px}.potcard .row{padding:6px 0}.potcard button{width:100%;min-height:44px;margin-top:8px}
.pperson{padding:10px}.pperson .pname{margin:0;border:0;padding:6px 4px;background:none}.potline form.af{margin:0}.potline select{min-height:44px;width:auto;margin:0 6px 0 0}.potline .r{display:flex;align-items:center;gap:6px;white-space:normal}
.potline{flex-direction:column;align-items:stretch!important;gap:4px}.potline .r{justify-content:flex-start}.potline form.af{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.potline .fl{display:flex;align-items:center;gap:8px;margin:0;font-weight:600}.potline form.af button.primary{width:auto;padding:0 22px}

/* returns / exchange */
.rxline{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin-top:6px}.rxbtns{display:inline-flex;gap:8px}

.potline .rxline{margin-top:4px}.pperson .rxbtns{flex-wrap:wrap}
button.primary:disabled{opacity:.45;cursor:not-allowed}

.bigchips{gap:10px}.chip.big{min-height:56px;padding:0 18px;font-size:15px;font-weight:700;flex:1 1 140px}

/* ---------- Number Times ----------------------------------------------------
   Deepika's numerology side. It borrows every AA token above, so light and dark
   both work without a second palette. The ONLY thing that changes per person is
   --num-ink / --num-wash, set on the reading from her own colour for that number
   (1 to 31 chapter). A number she has not given a colour for renders plain:
   that is a complete, intentional appearance, not an unfinished page.
   Colour never touches navigation, status meaning, or any figure.            */
.numreading{--num-ink:var(--terra);--num-wash:var(--soft)}
.numreading.neutral{--num-ink:var(--terra);--num-wash:var(--soft)}
.numreading .grid3 .tile{border-left:3px solid var(--num-ink)}
.numreading .sect{color:var(--num-ink)}
.numreading .standout{background:linear-gradient(0deg,var(--card),var(--num-wash));border:1px solid var(--line)}
body.dark .numreading .standout{background:var(--card)}

.standout .options{display:flex;flex-wrap:wrap;gap:7px;margin-top:4px}
.standout .chip{font-size:12.5px;min-height:38px;padding:8px 12px}
.standout .chip.on{background:var(--num-ink,var(--chipon));border-color:var(--num-ink,var(--chipon))}

.numgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}
.numcell{border:1px solid var(--line);border-radius:13px;min-height:66px;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:2px;background:var(--field)}
.numcell.on{background:var(--num-wash,var(--soft));border-color:var(--num-ink,var(--terra))}
.numcell b{font-size:17px;letter-spacing:1px;font-variant-numeric:tabular-nums}
.numcell i{font-style:normal;font-size:11px;color:var(--muted)}
.numhl{color:var(--terra);font-weight:800}

.numreading .row .acts{display:flex;gap:6px;flex-wrap:wrap;margin-top:7px}
.numreading .row .acts .chip{min-height:34px;padding:6px 11px;font-size:12px}
.numreading .row.void .main{opacity:.55}
.numnew .fl textarea,.numchapters textarea,.numquestions textarea{width:100%;background:var(--field);
  border:1px solid var(--line);border-radius:13px;padding:10px 12px;resize:vertical}
.numchapters .acts,.numquestions .acts{display:flex;gap:7px;margin-top:9px}
.sub.rose{color:var(--terra)}
