:root{
  --bg:#171112;
  --bg2:#22191a;
  --card:#fffaf4;
  --card2:#f7efe6;
  --ink:#2b2323;
  --muted:#776b66;
  --soft:#a98d80;
  --line:rgba(70,45,36,.13);
  --gold:#c3a06f;
  --rose:#bd7d78;
  --plum:#59373d;
  --sage:#8d978a;
  --ok:#63806d;
  --warn:#ba8b3e;
  --danger:#a75b5b;
  --shadow:0 18px 50px rgba(24,14,12,.18);
  --radius:28px;
  --safe-top:env(safe-area-inset-top,0px);
  --safe-bottom:env(safe-area-inset-bottom,0px);
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text",Inter,Segoe UI,sans-serif;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;min-height:100%;background:radial-gradient(circle at 20% -10%,#4a3331 0,#171112 38%,#120d0e 100%);color:var(--ink);overscroll-behavior:none}
body{font-size:16px;line-height:1.45;touch-action:manipulation}
button,input,textarea,select{font:inherit;color:inherit}
button{cursor:pointer;border:0;background:none}
.app-shell{min-height:100svh;display:flex;flex-direction:column;max-width:560px;margin:0 auto;background:linear-gradient(180deg,#fff8f0 0%,#f5ece2 50%,#efe3d7 100%);box-shadow:0 0 0 1px rgba(255,255,255,.08),0 30px 90px rgba(0,0,0,.32);position:relative;overflow:hidden}
.app-shell:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 15% 8%,rgba(255,255,255,.7),transparent 20%),radial-gradient(circle at 90% 4%,rgba(195,160,111,.25),transparent 24%),linear-gradient(120deg,rgba(255,255,255,.25),transparent 35%);pointer-events:none;z-index:0}
.app-main{position:relative;z-index:1;flex:1;padding:calc(18px + var(--safe-top)) 18px calc(110px + var(--safe-bottom));overflow:auto;min-height:100svh}
.screen{animation:fadeUp .34s ease both}
@keyframes fadeUp{from{opacity:.0;transform:translateY(8px)}to{opacity:1;transform:none}}
.topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:18px}
.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.18em;color:var(--soft);font-weight:800;margin:0 0 4px}
h1{font-family:Georgia,"Times New Roman",serif;font-weight:500;letter-spacing:-.035em;font-size:34px;line-height:.95;margin:0;color:#2b2020}
h2{font-family:Georgia,"Times New Roman",serif;font-weight:500;font-size:25px;letter-spacing:-.02em;margin:0 0 12px}
h3{font-size:16px;margin:0 0 10px;letter-spacing:-.01em}
p{margin:0}.muted{color:var(--muted)}.tiny{font-size:12px;color:var(--muted)}
.hero-card,.card{background:linear-gradient(180deg,rgba(255,255,255,.83),rgba(255,248,240,.94));border:1px solid rgba(255,255,255,.75);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.hero-card{margin-bottom:16px;position:relative;overflow:hidden}.hero-card:after{content:"";position:absolute;right:-50px;top:-70px;width:180px;height:180px;border-radius:50%;background:radial-gradient(circle,rgba(195,160,111,.28),transparent 68%)}
.card{margin-bottom:14px}.card.compact{padding:14px;border-radius:22px}
.row{display:flex;align-items:center;justify-content:space-between;gap:12px}.stack{display:grid;gap:12px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}
.btn{min-height:46px;border-radius:999px;padding:12px 17px;background:#2b2020;color:#fffaf4;font-weight:800;box-shadow:0 12px 28px rgba(43,32,32,.22);display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap;transition:transform .16s ease,filter .16s ease}.btn:active{transform:scale(.98)}
.btn.secondary{background:rgba(43,32,32,.08);color:var(--ink);box-shadow:none}.btn.ghost{background:transparent;color:var(--plum);box-shadow:none;border:1px solid var(--line)}.btn.gold{background:linear-gradient(135deg,#2b2020,#5d4440 60%,#b99867)}.btn.full{width:100%}.btn.small{min-height:36px;font-size:13px;padding:8px 12px}.btn.danger{background:#7a3333;color:white}
.icon-btn{width:48px;height:48px;border-radius:17px;background:rgba(255,255,255,.62);border:1px solid rgba(255,255,255,.7);box-shadow:0 10px 26px rgba(40,25,20,.1);display:grid;place-items:center;font-size:22px;color:var(--plum)}
.tabbar{position:fixed;left:50%;bottom:calc(10px + var(--safe-bottom));transform:translateX(-50%);z-index:20;width:min(532px,calc(100vw - 22px));height:72px;background:rgba(35,25,26,.82);border:1px solid rgba(255,255,255,.16);border-radius:30px;padding:8px;display:grid;grid-template-columns:repeat(5,1fr);gap:4px;box-shadow:0 24px 55px rgba(0,0,0,.34);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px)}
.tabbar__btn{color:rgba(255,248,240,.58);border-radius:22px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;letter-spacing:-.01em;min-width:0}.tabbar__btn.is-active{background:linear-gradient(180deg,#fff6e8,#e3c99e);color:#241819;box-shadow:0 10px 25px rgba(0,0,0,.18)}
.stat{padding:14px;border-radius:22px;background:rgba(255,255,255,.58);border:1px solid var(--line)}.stat strong{display:block;font-size:21px;letter-spacing:-.04em}.stat span{font-size:12px;color:var(--muted);font-weight:700}
.chips{display:flex;gap:8px;flex-wrap:wrap}.chip{border-radius:999px;padding:8px 11px;background:rgba(43,32,32,.07);font-size:12px;font-weight:800;color:#4a3938}.chip.ok{background:rgba(99,128,109,.14);color:#405b48}.chip.warn{background:rgba(186,139,62,.14);color:#7b5926}.chip.bad{background:rgba(167,91,91,.15);color:#813d3d}.chip.gold{background:rgba(195,160,111,.18);color:#7a5a29}
.list-card{width:100%;text-align:left;background:rgba(255,255,255,.58);border:1px solid rgba(255,255,255,.78);border-radius:25px;padding:15px;margin-bottom:10px;box-shadow:0 12px 34px rgba(41,23,18,.08)}.list-card:active{transform:scale(.992)}
.list-card__title{font-weight:900;font-size:18px;letter-spacing:-.025em;margin-bottom:3px}.list-card__meta{color:var(--muted);font-size:13px}.list-card__footer{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px}
.search{width:100%;height:48px;border:1px solid rgba(255,255,255,.75);border-radius:19px;background:rgba(255,255,255,.62);padding:0 14px;outline:none;box-shadow:0 10px 26px rgba(40,25,20,.06)}
.segment{display:flex;padding:5px;border-radius:999px;background:rgba(43,32,32,.07);gap:4px}.segment button{flex:1;border-radius:999px;min-height:38px;font-size:13px;font-weight:900;color:var(--muted)}.segment button.is-active{background:#fff9f1;color:var(--ink);box-shadow:0 7px 18px rgba(50,30,25,.1)}
.calendar-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:7px}.dow{text-align:center;font-size:11px;font-weight:900;color:var(--soft);text-transform:uppercase}.day{aspect-ratio:1;border-radius:18px;background:rgba(255,255,255,.5);border:1px solid rgba(255,255,255,.75);font-weight:900;color:#3d3030;position:relative;min-width:0}.day.is-muted{opacity:.28}.day.is-selected{background:#2b2020;color:#fffaf4}.day.has-event:after{content:"";position:absolute;bottom:8px;left:50%;transform:translateX(-50%);width:5px;height:5px;border-radius:50%;background:var(--gold)}.day.is-selected:after{background:#fff0c7}
.event-row{display:flex;gap:12px;align-items:flex-start;padding:12px;border-radius:18px;background:rgba(255,255,255,.58);border:1px solid var(--line);margin-bottom:8px}.event-time{min-width:62px;font-weight:900;color:var(--plum)}
.modal{position:fixed;inset:0;z-index:50;background:rgba(18,12,13,.46);display:flex;align-items:flex-end;justify-content:center;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.sheet{width:min(560px,100%);max-height:96svh;background:linear-gradient(180deg,#fffaf4,#f4eadf);border-radius:32px 32px 0 0;box-shadow:0 -26px 80px rgba(0,0,0,.34);overflow:hidden;display:flex;flex-direction:column}.sheet__head{padding:18px 18px 12px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px}.sheet__body{padding:16px 18px calc(24px + var(--safe-bottom));overflow:auto}.sheet__title{font-family:Georgia,"Times New Roman",serif;font-size:25px;letter-spacing:-.03em}.sheet__actions{position:sticky;bottom:0;padding:13px 18px calc(13px + var(--safe-bottom));background:linear-gradient(180deg,rgba(244,234,223,0),rgba(244,234,223,.94) 22%,#f4eadf 100%);display:flex;gap:10px}
.form-section{display:none}.form-section.is-active{display:block;animation:fadeUp .2s ease both}.form-card{border-radius:24px;background:rgba(255,255,255,.62);border:1px solid rgba(255,255,255,.78);padding:14px;margin-bottom:12px}.form-card > h3{margin-bottom:12px;color:#3a2b2b}.field{display:grid;gap:6px;margin-bottom:11px}.field label{font-size:12px;color:var(--soft);font-weight:900;text-transform:uppercase;letter-spacing:.08em}.field input,.field textarea,.field select{width:100%;border:1px solid var(--line);background:rgba(255,255,255,.82);border-radius:17px;min-height:46px;padding:11px 13px;outline:none}.field textarea{min-height:92px;resize:vertical}.field input:focus,.field textarea:focus,.field select:focus{border-color:rgba(195,160,111,.9);box-shadow:0 0 0 4px rgba(195,160,111,.13)}
.status-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.status-btn{min-height:42px;border-radius:16px;background:rgba(43,32,32,.06);font-size:12px;font-weight:900;color:#554443;border:1px solid transparent}.status-btn.is-active{background:linear-gradient(135deg,#2b2020,#6b4e47);color:#fff8ef;border-color:rgba(255,255,255,.35)}
.attachment-zone{border:1px dashed rgba(89,55,61,.25);background:rgba(255,255,255,.46);border-radius:22px;padding:13px}.thumb-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-top:10px}.thumb{position:relative;aspect-ratio:1;border-radius:18px;overflow:hidden;background:linear-gradient(135deg,#eadccf,#fff7ed);border:1px solid rgba(255,255,255,.8);box-shadow:0 8px 18px rgba(42,25,20,.08)}.thumb-open{position:absolute;inset:0;width:100%;height:100%;padding:0;text-align:left}.thumb img{width:100%;height:100%;object-fit:cover;display:block}.thumb span{position:absolute;inset:auto 5px 5px;background:rgba(30,18,18,.62);color:white;border-radius:999px;font-size:10px;padding:3px 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.thumb-remove{position:absolute;right:4px;top:4px;width:24px;height:24px;border-radius:50%;background:rgba(255,255,255,.9);font-weight:900;color:#6e3333;z-index:2}.file-tile{display:grid;place-items:center;text-align:center;font-size:11px;color:var(--muted);padding:8px}
.image-viewer{position:fixed;inset:0;background:rgba(10,7,8,.86);z-index:80;display:grid;place-items:center;padding:calc(16px + var(--safe-top)) 16px calc(16px + var(--safe-bottom));backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.image-viewer img{max-width:100%;max-height:82svh;border-radius:22px;box-shadow:0 28px 80px rgba(0,0,0,.5)}.image-viewer .close{position:absolute;right:18px;top:calc(14px + var(--safe-top));background:rgba(255,255,255,.14);color:white;width:46px;height:46px;border-radius:50%;font-size:24px}
.empty{border-radius:24px;border:1px dashed rgba(89,55,61,.22);padding:22px;text-align:center;background:rgba(255,255,255,.35);color:var(--muted)}
.notice{border-radius:20px;padding:13px;background:rgba(195,160,111,.14);color:#70552e;font-size:13px}.divider{height:1px;background:var(--line);margin:14px 0}.expense-line{display:grid;grid-template-columns:1fr 100px 40px;gap:8px;align-items:end;margin-bottom:8px}.event-edit{border:1px solid var(--line);border-radius:20px;padding:12px;margin-bottom:10px;background:rgba(255,255,255,.5)}
@media (min-width:700px){.tabbar{position:fixed}.app-shell{border-radius:38px;margin-top:18px;margin-bottom:18px;min-height:calc(100svh - 36px)}.app-main{min-height:calc(100svh - 36px)}}
@media (max-width:380px){h1{font-size:30px}.grid-2,.grid-3{grid-template-columns:1fr}.thumb-grid{grid-template-columns:repeat(3,1fr)}.tabbar__btn{font-size:10px}.app-main{padding-left:14px;padding-right:14px}.expense-line{grid-template-columns:1fr 84px 36px}}
