:root{--paper:#f7f2ea;--surface:#fffdf9;--side:#f0e9df;--ink:#2c3435;--muted:#68716f;--line:#d9d0c3;--mint:#d8e9df;--accent:#b66f4c;--warm:#d09b6d;--warn:#fff0d9;--danger:#fbe5e1;--shadow:8px 10px 22px #7e665a1c,-4px -4px 12px #ffffffc2}
*{box-sizing:border-box}
html{background:var(--paper)}
body{margin:0;color:var(--ink);font:16px/1.45 system-ui,-apple-system,"Segoe UI",sans-serif;background:var(--paper)}
button,input{font:inherit}
button{cursor:pointer}
button:disabled{cursor:default;opacity:.45}
button:focus-visible,input:focus-visible{outline:3px solid #325f8f;outline-offset:2px}
.app-shell{min-height:100dvh;display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:var(--paper)}
.app-head{grid-row:1;display:flex;align-items:center;justify-content:space-between;padding:14px max(18px,env(safe-area-inset-right)) 13px max(18px,env(safe-area-inset-left));border-bottom:1px solid var(--line);background:var(--surface)}
.brand{display:flex;flex-direction:column;line-height:1.14}.brand strong{font:800 1.13rem Georgia,serif;letter-spacing:.01em}.brand small{font-size:.72rem;color:var(--muted);letter-spacing:.03em;margin-top:3px}.private-mark{font-size:.7rem;font-weight:700;color:#52645c;background:var(--mint);border:1px solid #bed2c5;border-radius:999px;padding:6px 9px;white-space:nowrap}
.screen{grid-row:2;min-width:0;width:100%;max-width:850px;margin:0 auto;padding:22px 17px calc(110px + env(safe-area-inset-bottom));overflow-wrap:anywhere}
.app-nav{grid-row:3;position:fixed;bottom:0;left:0;right:0;z-index:5;display:grid;grid-template-columns:repeat(4,1fr);gap:2px;padding:7px max(8px,env(safe-area-inset-right)) calc(7px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));border-top:1px solid var(--line);background:var(--surface);box-shadow:0 -4px 16px #8e76601c}
.app-nav button{border:0;background:transparent;color:var(--muted);border-radius:12px;min-height:54px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;font-weight:700;font-size:.75rem}.app-nav button b{font-size:1.3rem;line-height:1.1}.app-nav button.active{background:var(--mint);color:#284637}
h1,h2,h3,p{margin-top:0}h1{font:800 clamp(1.65rem,5vw,2.1rem)/1.12 Georgia,serif;margin-bottom:8px}h2{font-size:1.14rem;margin:0 0 11px}h3{font-size:1rem;margin:0 0 5px}
.eyebrow{font-size:.68rem;font-weight:850;letter-spacing:.13em;text-transform:uppercase;color:var(--accent);margin-bottom:8px}.sub{color:var(--muted);font-size:.9rem;margin:0 0 17px}
.hero{position:relative;overflow:hidden;background:linear-gradient(132deg,#dca878,#c47c55 53%,#aa6246);color:#fff;border:1px solid #a86849;border-radius:23px;padding:20px 22px;box-shadow:inset 2px 2px 3px #f5d8b666,inset -4px -5px 10px #7a392a3d,6px 12px 22px #9e65583b;margin-bottom:17px}
.hero .eyebrow{color:#fff3e9}.hero .amount{display:block;font-size:clamp(2.35rem,8vw,3.9rem);letter-spacing:-.06em;line-height:1.1;font-weight:850;margin:12px 0 5px}.hero small{color:#fff4e9}.hero .hero-note{color:#fff7ef;font-size:.88rem}
.summary{display:flex;justify-content:space-between;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:14px 16px;margin:13px 0;box-shadow:var(--shadow)}.summary strong{font-size:1.05rem}
.tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:16px 0}.tile,.row,.panel,.period-controls,.notice,.state-box{background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}.tile{min-height:105px;text-align:left;padding:17px;display:flex;flex-direction:column;gap:6px;color:var(--ink);box-shadow:inset 2px 2px 3px #ffffff,5px 6px 13px #816c581b}.tile .icon{font-size:1.3rem;color:var(--accent)}.tile strong{font-size:.98rem}.tile small{color:var(--muted);line-height:1.3}
.row{width:100%;display:flex;align-items:flex-start;justify-content:space-between;gap:13px;text-align:left;padding:14px 16px;margin:9px 0;color:var(--ink)}button.row:hover,.tile:hover,.action:hover{border-color:#bd9c82;transform:translateY(-1px)}.row .row-main{min-width:0;display:flex;flex-direction:column;gap:3px}.row small{color:var(--muted);font-size:.78rem}.row .row-amount{white-space:nowrap;font-weight:850;color:#3a4a43}.row .row-title{font-weight:750}
.period-controls{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px;margin:17px 0}.period-controls button,.action,.pager button,.chips button{min-height:43px;border:1px solid #cdbca9;border-radius:11px;background:linear-gradient(#fffdf9,#eee6da);color:var(--ink);font-weight:750;box-shadow:inset 1px 1px 1px #fff,2px 3px 5px #796d5a22}.period-controls button{width:47px;font-size:1.3rem}.period-controls strong{text-align:center}.action{padding:10px 14px;margin:3px 7px 8px 0}.back{border:0;background:transparent;color:var(--accent);font-weight:800;padding:8px 3px;margin:-5px 0 12px}.tabs,.chips{display:flex;flex-wrap:wrap;gap:8px;margin:13px 0 16px}.chips button{padding:8px 12px;font-size:.82rem}.chips button.active{background:var(--mint);border-color:#a5c5b0;color:#294a39}.date-input,.search{width:100%;padding:11px 13px;margin:5px 0 15px;min-height:46px;border:1px solid #cbbdad;border-radius:12px;background:var(--surface);color:var(--ink)}
.notice{padding:12px 14px;margin:12px 0;background:var(--warn);color:#634b22;box-shadow:none;font-size:.84rem}.notice.danger{background:var(--danger);color:#7d3428}.notice.info{background:var(--mint);color:#315744}.notice strong{display:block;margin-bottom:3px}.state-box{padding:28px 18px;text-align:center;color:var(--muted);box-shadow:none}.state-box strong{display:block;color:var(--ink);margin-bottom:5px}.loading{color:var(--muted);padding:30px;text-align:center}
.pager{display:flex;justify-content:space-between;align-items:center;gap:7px;margin:15px 0}.pager button{padding:8px 11px}.pager small,.source-line{font-size:.77rem;color:var(--muted)}.source-line{margin:15px 2px 5px}.facts{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:5px 15px}.fact{display:flex;justify-content:space-between;gap:15px;border-bottom:1px solid var(--line);padding:12px 0;font-size:.85rem}.fact:last-child{border-bottom:0}.fact span{color:var(--muted)}.fact strong{text-align:right}.section-title{display:flex;justify-content:space-between;align-items:center;margin:17px 0 8px}.section-title small{color:var(--muted)}
[data-theme="dark"]{--paper:#232a29;--surface:#303a38;--side:#293230;--ink:#f2ede6;--muted:#b5c1bc;--line:#52605a;--mint:#345b4a;--accent:#e0ab84;--warm:#aa6f50;--warn:#4b3a25;--danger:#57332e;--shadow:4px 7px 15px #0004,-2px -2px 6px #ffffff08}
[data-theme="dark"] .tile,[data-theme="dark"] .action,[data-theme="dark"] .period-controls button,[data-theme="dark"] .chips button,[data-theme="dark"] .pager button{background:#35403c;color:var(--ink);box-shadow:inset 1px 1px 2px #ffffff15,2px 3px 5px #0003}
[data-theme="dark"] .notice{color:#f7dda9}[data-theme="dark"] .notice.danger{color:#f6beb4}[data-theme="dark"] .notice.info{color:#d3e8d8}
@media(min-width:760px){.app-shell{grid-template-columns:170px minmax(0,1fr);grid-template-rows:72px minmax(0,1fr)}.app-head{grid-column:1/-1;grid-row:1;padding:14px 25px}.app-nav{position:static;grid-column:1;grid-row:2;display:flex;flex-direction:column;justify-content:flex-start;gap:7px;border-top:0;border-right:1px solid var(--line);padding:20px 10px;background:var(--side);box-shadow:none}.app-nav button{min-height:46px;flex-direction:row;justify-content:flex-start;gap:11px;padding-left:14px;font-size:.87rem}.app-nav button b{width:22px;text-align:center}.screen{grid-column:2;grid-row:2;padding:30px 35px 65px}.tiles{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:360px){.private-mark{display:none}.screen{padding-left:12px;padding-right:12px}.row{padding:12px}.row .row-amount{white-space:normal;text-align:right}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
html[data-layout="desktop"] .app-shell{grid-template-columns:150px minmax(0,1fr);grid-template-rows:72px minmax(0,1fr)}
html[data-layout="desktop"] .app-head{grid-column:1/-1;grid-row:1;padding:14px 25px}
html[data-layout="desktop"] .app-nav{position:static;grid-column:1;grid-row:2;display:flex;flex-direction:column;justify-content:flex-start;gap:7px;border-top:0;border-right:1px solid var(--line);padding:20px 10px;background:var(--side);box-shadow:none}
html[data-layout="desktop"] .app-nav button{min-height:46px;flex-direction:row;justify-content:flex-start;gap:11px;padding-left:14px;font-size:.87rem}
html[data-layout="desktop"] .app-nav button b{width:22px;text-align:center}
html[data-layout="desktop"] .screen{grid-column:2;grid-row:2;padding:22px 17px 55px}
html[data-layout="desktop"] .tiles{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(min-width:900px){html[data-layout="desktop"] .app-shell{grid-template-columns:170px minmax(0,1fr)}html[data-layout="desktop"] .screen{padding:30px 35px 65px}html[data-layout="desktop"] .tiles{grid-template-columns:repeat(3,minmax(0,1fr))}}
