:root { --bg:#101418; --card:#1a2129; --ink:#eef2f5; --muted:#9db0bd; --accent:#ffb52e; --accent2:#39c98e; --line:#2c3947; }
* { box-sizing: border-box; }
body { margin:0; background:var(--bg); color:var(--ink); font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; font-size:18px; line-height:1.5; }
header { padding:22px 18px 6px; max-width:760px; margin:0 auto; }
h1 { margin:0 0 4px; font-size:1.7rem; }
.sub { color:var(--muted); margin:0 0 10px; }
.talkback { display:block; font-size:.95rem; color:var(--muted); }
main { max-width:760px; margin:0 auto; padding:10px 14px 30px; }
.card { background:var(--card); border:1px solid var(--line); border-radius:14px; padding:18px; margin:14px 0; }
.card h2 { margin-top:0; font-size:1.25rem; }
label { display:block; margin:14px 0; font-weight:600; }
input, select { width:100%; margin-top:6px; padding:14px; font-size:1.05rem; border-radius:10px; border:1px solid var(--line); background:#0d1116; color:var(--ink); }
.field { display:flex; gap:8px; align-items:stretch; }
.field input { flex:1; }
.mic { font-size:1.2rem; padding:0 14px; border-radius:10px; border:1px solid var(--line); background:#243040; color:var(--ink); cursor:pointer; }
.mode-row { display:flex; gap:10px; }
.mode-row .mode-btn { flex:1; padding:16px 10px; font-size:1.05rem; font-weight:700; border-radius:12px; border:2px solid var(--line); background:#0d1116; color:var(--ink); cursor:pointer; }
.mode-row .mode-btn small { font-weight:400; color:var(--muted); }
.mode-row .mode-btn.selected { border-color:var(--accent); background:#2a2214; }
.mode-row.small .mode-btn { padding:10px; font-size:.95rem; }
.btn { display:inline-block; padding:14px 20px; font-size:1.05rem; font-weight:700; border-radius:12px; border:none; background:var(--accent); color:#191204; cursor:pointer; }
.btn.secondary { background:#243040; color:var(--ink); border:1px solid var(--line); }
.btn.big { display:block; width:100%; padding:20px; font-size:1.3rem; margin:18px 0; }
.sub-row { display:flex; gap:8px; margin:10px 0; }
.sub-row .s-name { flex:2; } .sub-row .s-amt { flex:1; }
.sub-row select { flex:1; width:auto; }
.sub-row .s-del { background:#3a2323; color:#ffb3b3; border:1px solid var(--line); border-radius:10px; padding:0 14px; font-size:1.1rem; cursor:pointer; }
.actions { display:flex; flex-wrap:wrap; gap:10px; margin:14px 0; }
.note { color:var(--muted); font-size:.9rem; }
.import-review { background:#0d1116; border:1px solid var(--accent2); border-radius:10px; padding:14px; margin-top:14px; font-size:.98rem; }
.import-review h4 { margin:0 0 8px; }
.import-review ul { margin:6px 0; padding-left:20px; }
.import-review .unplaced { color:var(--accent); }
@media print { .import-review, #btn-import { display:none !important; } }
.report .headline { background:#2a2214; border:2px solid var(--accent); border-radius:12px; padding:16px; text-align:center; margin:14px 0; }
.headline-num { font-size:2.4rem; font-weight:800; color:var(--accent); }
.cash-risk { background:#2b1a1a; border:1px solid #6b3434; border-radius:10px; padding:10px 14px; }
.finding { border-top:1px solid var(--line); padding:10px 0; }
.finding h4 { margin:6px 0; }
.finding .amt { color:var(--accent); }
.finding .fix { color:var(--accent2); }
table { width:100%; border-collapse:collapse; font-size:.95rem; }
th, td { text-align:left; padding:7px 6px; border-bottom:1px solid var(--line); }
pre.handoff { background:#0d1116; border:1px solid var(--line); border-radius:10px; padding:14px; white-space:pre-wrap; font-size:.95rem; }
.honesty { color:var(--muted); font-style:italic; margin-top:18px; }
.mode-line { color:var(--muted); }
footer { text-align:center; color:var(--muted); padding:16px; font-size:.9rem; }
@media print {
  body { background:#fff; color:#000; }
  header, main > .card:not(.report), #run, .actions, footer, .talkback { display:none !important; }
  .card.report { border:none; background:#fff; color:#000; }
  .headline { border-color:#000; background:#fff; }
  .headline-num { color:#000; }
  .finding .fix, .finding .amt { color:#000; }
  pre.handoff { background:#fff; color:#000; border-color:#999; }
}
/* --- TALK mode --- */
button.talkstart { display: block; width: 100%; padding: 22px; font-size: 1.35rem; margin: 4px 0 16px; background: var(--accent2); color: #0a140e; border-color: var(--accent2); }
#talkPanel { position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; background: #0d1116; border-top: 3px solid var(--accent); padding: 14px 16px calc(14px + env(safe-area-inset-bottom)); box-shadow: 0 -6px 24px rgba(0,0,0,.55); }
#talkPanel[hidden] { display: none !important; }
#talkQ { font-size: 1.25rem; font-weight: 700; margin-bottom: 6px; }
#talkHeard { color: var(--accent); min-height: 1.4em; font-weight: 600; }
#talkStatus { color: var(--muted); min-height: 1.4em; font-size: .95rem; }
.talkbtns { display: flex; gap: 10px; margin-top: 10px; flex-wrap: wrap; }
.talkbtns button { flex: 1 1 40%; padding: 16px 8px; font-size: 1.05rem; font-weight: 700; border-radius: 12px; border: 1px solid var(--line); background: #243040; color: var(--ink); cursor: pointer; font-family: inherit; }
.talkbtns #talkNext { background: var(--accent); border-color: var(--accent); color: #06281a; }
.talkbtns #talkStop { background: #6e2f3c; border-color: #6e2f3c; color: #fff; }
.talk-focus { outline: 3px solid var(--accent) !important; outline-offset: 2px; }
@media print { #talkPanel, #talkStart { display: none !important; } }
