:root{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:#332e35;background:#fff9f4;font-synthesis:none;font-size:14px}
*{box-sizing:border-box}body{margin:0;min-height:100vh}button,input,select,textarea{font:inherit}button{cursor:pointer;border:0}button:disabled{opacity:.5;cursor:not-allowed}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #bba8ee;outline-offset:1px}a{color:inherit;text-decoration:none}
:root{--ink:#302c38;--muted:#7c7784;--purple:#6651a6;--purple2:#ebe5fc;--peach:#fff1e4;--card:#fff;--border:#ebe6e8;--mint:#e6f5ec;--green:#227e58;--red:#b64551;--orange:#bb710e;--yellow:#fff0d1;--bg:#fff9f4}
.loading-screen{min-height:100vh;display:grid;place-items:center;color:var(--purple)}
.layout{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.sidebar{background:#fff;border-right:1px solid var(--border);padding:27px 15px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:10px;padding:2px 10px 26px;font-size:21px;font-weight:800;letter-spacing:-.65px;color:var(--ink)}.brand-logo{display:grid;place-items:center;border-radius:14px;background:var(--purple2);width:39px;height:39px;font-size:23px}.nav{display:grid;gap:5px}.nav-button{display:flex;width:100%;align-items:center;gap:11px;text-align:left;padding:13px 14px;border-radius:12px;color:#635d6f;background:transparent;font-weight:600}.nav-button .emoji{font-size:17px}.nav-button:hover{background:#fbf6f2}.nav-button.active{background:var(--purple2);color:#604b9e}.sidebar-foot{margin-top:auto;padding:10px 13px;font-size:12px;line-height:1.5;color:var(--muted)}
.main{padding:28px clamp(18px,4vw,56px) 90px;max-width:1440px;width:100%;margin:auto}.topbar{display:flex;gap:15px;align-items:center;justify-content:space-between;margin-bottom:27px;flex-wrap:wrap}.eyebrow{text-transform:uppercase;letter-spacing:1.7px;color:var(--purple);font-size:11px;font-weight:800;margin:0 0 6px}.topbar h1{margin:0;font-size:30px;letter-spacing:-1.1px;line-height:1.2}.subtitle{color:var(--muted);margin:6px 0 0;font-size:13px}.top-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.month-input{border:1px solid var(--border);border-radius:11px;background:white;padding:10px 10px;min-height:41px;color:var(--ink);font-weight:650}.btn{border-radius:11px;background:var(--purple);color:white;font-weight:750;padding:11px 16px;min-height:41px;display:inline-flex;align-items:center;justify-content:center;gap:7px;white-space:nowrap}.btn:hover{filter:brightness(.96)}.btn.ghost{background:#fff;color:var(--ink);border:1px solid var(--border)}.btn.soft{background:var(--purple2);color:var(--purple)}.btn.danger{background:#fff0f1;color:var(--red)}.btn.tiny{font-size:12px;min-height:31px;padding:6px 10px;border-radius:9px}.btn.link{background:transparent;color:var(--purple);padding:5px;min-height:0}.btn.full{width:100%}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:0 0 20px}.stat,.panel,.tile{background:var(--card);border:1px solid var(--border);border-radius:17px}.stat{padding:18px 19px}.stat .stat-label{font-size:12px;color:var(--muted);font-weight:600;display:flex;gap:8px;align-items:center}.stat .stat-value{font-size:26px;letter-spacing:-.8px;font-weight:800;margin-top:9px;overflow-wrap:anywhere}.stat small{display:block;color:var(--muted);font-size:11px;margin-top:7px}.stat.accent{background:#f5f0ff;border-color:#e5d9ff}.stat.warm{background:var(--peach);border-color:#ffe8d7}.stat.green{background:#eef9f3;border-color:#ddf2e7}.stat.warn{background:#fff4e0;border-color:#ffebc5}
.columns{display:grid;grid-template-columns:1.25fr 1fr;gap:17px}.panel{padding:22px;margin-bottom:18px;min-width:0}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;flex-wrap:wrap}.panel-head h2{font-size:17px;letter-spacing:-.4px;margin:0}.section-title{font-size:17px;margin:0 0 12px;letter-spacing:-.4px}.muted{color:var(--muted)}.tinytext{font-size:12px;color:var(--muted);line-height:1.55}.spaced{margin:17px 0}.empty{padding:26px 15px;text-align:center;color:var(--muted);background:#fcfafb;border:1px dashed #e7e0e6;border-radius:12px;line-height:1.6}.empty strong{display:block;color:var(--ink);margin-bottom:4px}
.list{display:grid;gap:0}.item{display:flex;align-items:center;gap:12px;padding:13px 0;border-top:1px solid #f1edef}.item:first-child{border-top:0}.item-body{min-width:0;flex:1}.item-name{font-size:13px;font-weight:700;line-height:1.35}.item-sub{font-size:11px;color:var(--muted);margin-top:4px;line-height:1.5}.item-right{text-align:right;flex-shrink:0;display:grid;justify-items:end;gap:6px}.item-price{font-weight:800;font-size:14px}.item-buttons{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}.badge{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:800;padding:5px 7px;border-radius:8px;background:#f2f0f3;color:#6c6770}.badge.green{background:var(--mint);color:var(--green)}.badge.orange{background:var(--yellow);color:var(--orange)}.badge.red{background:#fff0f1;color:var(--red)}.badge.purple{background:var(--purple2);color:var(--purple)}.badge.grey{background:#f0eff1;color:#676471}.dot{height:32px;width:32px;display:grid;place-items:center;background:#f5f0ff;border-radius:10px;flex-shrink:0;font-size:16px}
.progress{height:8px;border-radius:99px;background:#f2eaf0;overflow:hidden;margin:10px 0 5px}.progress>span{display:block;height:100%;background:var(--purple);border-radius:99px;max-width:100%}.progress.orange>span{background:#df9d44}.progress.green>span{background:#65ae89}.coffer-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.tile{padding:19px}.tile h3{margin:0 0 6px;font-size:16px}.tile strong{font-size:24px;letter-spacing:-.5px}.tile-foot{font-size:11px;color:var(--muted);display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:10px}.tile-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:13px}
.summary-rows{display:grid;gap:11px}.summary-row{display:flex;justify-content:space-between;gap:15px;align-items:center;font-size:13px}.summary-row strong{font-weight:800}.person-group{margin-bottom:16px;background:#fcfafb;border:1px solid var(--border);border-radius:13px;padding:14px}.person-head{display:flex;justify-content:space-between;align-items:center;font-weight:750;margin-bottom:8px}
.table-scroll{width:100%;overflow:auto}.tbl{border-collapse:collapse;width:100%;font-size:13px;min-width:640px}.tbl th{text-align:left;color:var(--muted);font-size:11px;padding:10px 10px;border-bottom:1px solid var(--border)}.tbl td{padding:11px 10px;border-bottom:1px solid #f2eff0;vertical-align:middle}.tbl tr:last-child td{border-bottom:0}.tbl .money{text-align:right;white-space:nowrap;font-weight:750}.row-actions{display:flex;gap:5px;align-items:center;flex-wrap:wrap}
.auth-page{min-height:100vh;padding:23px;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 15% 8%,#f3e6ff 0,transparent 36%),radial-gradient(circle at 100% 100%,#ffe8cd 0,transparent 40%),var(--bg)}.auth-box{width:min(100%,450px);padding:30px;background:#fff;border:1px solid var(--border);border-radius:24px;box-shadow:0 16px 60px #3a305115}.auth-logo{font-size:44px;margin-bottom:10px}.auth-box h1{font-size:28px;letter-spacing:-.9px;margin:0 0 8px}.auth-box p{line-height:1.65;color:var(--muted)}
form{display:grid;gap:13px}.field{display:grid;gap:6px}.field label{font-size:12px;color:#595360;font-weight:700}.field input,.field select,.field textarea{border:1px solid #e5dfe7;border-radius:10px;min-height:42px;padding:10px 12px;outline:none;width:100%;background:#fff;color:var(--ink)}.field textarea{min-height:83px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:#9b87d0;box-shadow:0 0 0 3px #e9e1fb}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:13px}.field small{font-size:11px;color:var(--muted)}.checkrow{display:flex;gap:9px;align-items:center;font-size:12px}.checkrow input{width:auto;min-height:0}.help{background:#f8f5ff;border:1px solid #eee7ff;color:#625487;padding:12px;border-radius:11px;font-size:12px;line-height:1.6}.help.orange{background:#fff7e9;border-color:#ffecd0;color:#8b612d}.form-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:8px;flex-wrap:wrap}
.modal-scrim{position:fixed;inset:0;background:#241c30a3;z-index:50;display:flex;justify-content:center;align-items:center;padding:18px;overflow:auto}.modal{width:min(100%,580px);max-height:min(90vh,880px);overflow:auto;background:#fff;border-radius:20px;padding:24px;box-shadow:0 30px 90px #1b102652}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:18px}.modal-head h2{margin:0;font-size:21px;letter-spacing:-.6px}.xbtn{background:#f2eff3;color:#655b6b;border-radius:10px;width:33px;height:33px;font-size:18px}#toast{position:fixed;bottom:24px;right:24px;z-index:100;background:#372e4d;color:#fff;padding:12px 18px;border-radius:11px;box-shadow:0 12px 35px #281b2c44;opacity:0;pointer-events:none;transform:translateY(12px);transition:.2s;max-width:380px;line-height:1.5}#toast.show{opacity:1;transform:none}#toast.error{background:#a43b48}.notice{font-size:12px;color:#855b2e;background:#fff3de;padding:11px 12px;border-radius:10px;margin:8px 0 0}.inline-muted{font-size:12px;color:var(--muted)}.actions{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:18px}.separator{border:0;border-top:1px solid var(--border);margin:19px 0}.pills{display:flex;gap:7px;flex-wrap:wrap}.pills button{border-radius:10px;background:#f7f4f8;color:#6b6070;padding:7px 10px}.pills button.active{background:var(--purple2);color:var(--purple)}
@media(max-width:1080px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.columns{grid-template-columns:1fr}.layout{grid-template-columns:202px 1fr}.sidebar{padding:24px 9px}.main{padding:24px 20px 90px}}
@media(max-width:760px){.layout{display:block}.sidebar{position:fixed;top:auto;bottom:0;left:0;right:0;height:auto;padding:5px 6px calc(7px + env(safe-area-inset-bottom));display:block;border-right:0;border-top:1px solid var(--border);z-index:20;box-shadow:0 -4px 20px #1f16300d}.brand,.sidebar-foot{display:none}.nav{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:0}.nav-button{padding:6px 3px;text-align:center;flex-direction:column;gap:4px;font-size:9px;min-height:52px;border-radius:10px;justify-content:center}.nav-button .emoji{font-size:19px}.main{padding:22px 14px 100px}.topbar{margin-bottom:20px;gap:12px}.topbar h1{font-size:25px}.top-actions{width:100%}.month-input{flex:1;min-width:0}.stat{padding:15px}.stat .stat-value{font-size:22px}.stats{gap:9px}.panel{padding:16px;margin-bottom:12px}.coffer-grid{grid-template-columns:1fr}.item{align-items:flex-start}.item-right{max-width:50%}.modal-scrim{padding:10px;align-items:flex-end}.modal{width:100%;max-height:94vh;border-radius:20px 20px 14px 14px;padding:20px}.field-row{grid-template-columns:1fr}.btn{padding:10px 12px}}
@media(max-width:350px){.stat .stat-value{font-size:19px}.nav-button{font-size:8px}.item-right{max-width:44%}}
