[hidden]{display:none!important}
@font-face{font-family:Manrope;src:url(fonts/manrope-latin-600-normal.woff2) format('woff2');font-weight:600;font-display:swap}
@font-face{font-family:Manrope;src:url(fonts/manrope-latin-800-normal.woff2) format('woff2');font-weight:800;font-display:swap}
@font-face{font-family:Lexend;src:url(fonts/lexend-latin-400-normal.woff2) format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Lexend;src:url(fonts/lexend-latin-600-normal.woff2) format('woff2');font-weight:600;font-display:swap}
:root{--sky:#87CEEB;--ink:#0e2f45;--ink2:#2b5672;--blue:#1e7fc0;--blue-d:#14608f;--glass:rgba(255,255,255,.7);--line:#bcdcef;--in:#167a4a;--out:#b42318}
*{box-sizing:border-box}
html{scroll-padding-top:120px}
body{margin:0;min-height:100vh;min-height:100svh;background:var(--sky) radial-gradient(circle at 15% 10%,rgba(255,255,255,.55) 0,transparent 35%) fixed;color:var(--ink);font:400 1rem/1.55 Lexend,system-ui,sans-serif;padding-bottom:84px}
h1,h2{font-family:Manrope,system-ui,sans-serif;margin:0 0 8px;line-height:1.2;text-wrap:balance}
h1{font-size:clamp(1.35rem,3.4vw,1.9rem);font-weight:800}
h2{font-size:clamp(1.05rem,.95rem + .5vw,1.25rem);font-weight:800}
p{margin:0 0 10px;text-wrap:pretty}
.muted{color:var(--ink2);font-size:.93rem}
.top{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:rgba(135,206,235,.85);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.brand{display:flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none;font:800 1.3rem Manrope,system-ui,sans-serif}
.brand img{background:#fff;border-radius:10px;padding:3px}
.offline-pill{font-size:.8rem;background:#fff;border:1px solid var(--line);border-radius:999px;padding:4px 10px;color:var(--ink2)}
.offline-pill.off{background:#fff6d6;border-color:#e8cf7a}
.tabs{position:fixed;bottom:0;left:0;right:0;z-index:30;display:flex;justify-content:space-around;background:rgba(255,255,255,.92);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-top:1px solid var(--line);padding:4px 2px calc(4px + env(safe-area-inset-bottom))}
.tabs a{flex:1;display:flex;flex-direction:column;align-items:center;gap:1px;padding:6px 2px;color:var(--ink2);text-decoration:none;font-size:.7rem;border-radius:12px;min-width:44px;min-height:44px}
.tabs a span{font-size:1.15rem;line-height:1}
.tabs a[aria-current=page]{color:var(--blue-d);background:#e3f3fc;font-weight:600}
@media (min-width:900px){
  body{padding-bottom:0}
  .tabs{position:sticky;top:58px;bottom:auto;justify-content:center;gap:6px;border-top:0;border-bottom:1px solid var(--line);background:rgba(255,255,255,.75)}
  .tabs a{flex:0 0 auto;flex-direction:row;gap:6px;font-size:.92rem;padding:8px 14px}
}
main{max-width:1100px;margin:0 auto;padding:14px}
.glass{background:var(--glass);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.95);border-radius:20px;box-shadow:0 8px 28px rgba(14,47,69,.1);padding:16px;margin-bottom:14px}
.hero h1{margin-bottom:4px}
.row{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:10px}
.row.spread{justify-content:space-between;margin-top:0}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;background:var(--blue);color:#fff;border:0;border-radius:999px;padding:10px 18px;font:600 .95rem Lexend,system-ui,sans-serif;cursor:pointer;text-decoration:none}
@media (hover:hover){.btn:hover{background:var(--blue-d)}}
.btn.light{background:#fff;color:var(--blue-d);border:1px solid var(--line)}
.btn.danger{background:#fff;color:var(--out);border:1px solid #f1b5ae}
.btn.small{min-height:36px;padding:6px 12px;font-size:.85rem}
:focus-visible{outline:3px solid var(--ink);outline-offset:2px}
textarea,input,select{font:inherit;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px;min-height:44px;width:100%}
textarea{resize:vertical}
label{display:block;font-size:.88rem;color:var(--ink2)}
label.inline{display:flex;align-items:center;gap:6px}
label.inline select,label.inline input{width:auto;min-width:120px}
.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr));gap:10px;align-items:end}
.drop{display:block;text-align:center;border:2px dashed #85c3e6;border-radius:16px;padding:18px;background:rgba(255,255,255,.55);cursor:pointer;color:var(--ink2);margin-top:8px}
.drop.over{background:#e3f3fc;border-color:var(--blue)}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr));gap:12px;margin-bottom:14px}
.card{background:var(--glass);border:1px solid #fff;border-radius:18px;padding:14px;box-shadow:0 6px 20px rgba(14,47,69,.08)}
.card b{display:block;font:800 1.35rem Manrope,system-ui,sans-serif}
.card small{color:var(--ink2)}
.in{color:var(--in)}.out{color:var(--out)}
.grid2{display:grid;grid-template-columns:minmax(0,1fr);gap:0 14px}
@media (min-width:760px){.grid2{grid-template-columns:repeat(2,minmax(0,1fr))}}
.chart svg{width:100%;height:auto;display:block}
.chart .empty{color:var(--ink2);font-size:.9rem;padding:20px 0}
.txlist,.plans{list-style:none;margin:0;padding:0}
.txlist li,.plans li{display:grid;grid-template-columns:1fr auto;gap:2px 10px;padding:10px 4px;border-bottom:1px solid #d9ecf7}
.txlist li:last-child,.plans li:last-child{border-bottom:0}
.tx-name{font-weight:600;overflow-wrap:anywhere}
.tx-meta{font-size:.82rem;color:var(--ink2);display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.tx-amt{font-weight:600;text-align:right;white-space:nowrap}
.tx-meta select{width:auto;min-height:32px;padding:2px 6px;font-size:.82rem;border-radius:8px}
.tx-del{background:none;border:0;color:var(--ink2);cursor:pointer;font-size:.8rem;text-decoration:none;padding:4px;min-height:32px}
.guess{background:#fff6d6;border-radius:6px;padding:0 6px}
.callout{background:#e8f6fd;border:1px solid var(--line);border-radius:14px;padding:12px;margin:12px 0;font-size:.95rem}
.callout.warn{background:#fff6d6;border-color:#e8cf7a}
.plans li.done .tx-name{text-decoration:line-through;color:var(--ink2)}
.plans input[type=checkbox]{width:22px;height:22px;min-height:0;margin-right:8px;vertical-align:middle}
.rec-table{width:100%;border-collapse:collapse;margin:8px 0 14px;font-size:.93rem}
.rec-table th,.rec-table td{text-align:left;padding:7px 6px;border-bottom:1px solid #d9ecf7;vertical-align:top}
.rec-table td.n{text-align:right;white-space:nowrap}
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,170px),1fr));gap:10px;margin:10px 0}
.facts div{background:#fff;border:1px solid var(--line);border-radius:14px;padding:10px}
.facts b{display:block;font:800 1.15rem Manrope,system-ui,sans-serif}
.danger-zone{border-color:#f6d2cd}
#walker{min-height:620px;padding:6px}
.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:96px;z-index:50;background:var(--ink);color:#fff;padding:10px 16px;border-radius:999px;font-size:.92rem;max-width:90vw;box-shadow:0 8px 24px rgba(0,0,0,.2)}
@media (min-width:900px){.toast{bottom:28px}}
.foot{max-width:1100px;margin:0 auto;padding:6px 16px 22px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;font-size:.82rem;color:var(--ink2)}
.endorse{display:inline-flex;align-items:center;gap:6px}
.endorse{font-weight:600;color:var(--ink)}
.endorse img{background:#fff;border-radius:6px;padding:2px}
@media print{
  body{background:#fff;padding:0}.top,.tabs,.foot,.noprint,.toast{display:none!important}
  section[data-view]{display:none!important}section[data-view=record]{display:block!important}
  .glass{box-shadow:none;border:0;background:#fff;backdrop-filter:none}
}
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -4px}
/* Responsive polish */
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.glass,.card{background:rgba(255,255,255,.94)}.top{background:#87CEEB}.tabs{background:#fff}}
@media (prefers-reduced-motion:no-preference){.btn,.card,.tabs a{transition:background-color .15s ease,transform .15s ease,box-shadow .15s ease}@media (hover:hover){.card:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(14,47,69,.12)}}}
@media (max-width:380px){.tabs a{font-size:.64rem}.tabs a span{font-size:1.05rem}}
.chart,.txlist li,.grid2>*{min-width:0}
/* Phone fixes */
.toast{border-radius:14px;width:max-content;max-width:min(90vw,24rem);text-align:center;line-height:1.4}
.card b{font-size:clamp(1rem,.8rem + 1.6vw,1.35rem);white-space:nowrap}
.rec-table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}
.rec-table th,.rec-table td{white-space:nowrap}
