@import "https://fonts.googleapis.com/css2?family=Fraunces:wght@500;600&family=Inter:wght@400;500;600&display=swap";@import "https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@500;600&display=swap";:root{--page-bg:#ece9e2;--app-bg:#f8f7f3;--navy:#162a32;--emerald:#176b5b;--emerald-soft:#e6f1ed;--gold:#c69232;--gold-soft:#f5ead3;--danger:#b14e38;--text:#18272e;--text-secondary:#706b62;--border:#ddd7cc;--surface:#fff;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--shadow-sm:0 1px 2px #162a320f;--shadow-md:0 4px 12px #162a3214;--shadow-focus:0 0 0 3px #176b5b2e;--dur-fast:.16s;--dur-base:.22s;--dur-slow:.32s;--ease:cubic-bezier(.16, 1, .3, 1)}*{box-sizing:border-box}body{background:var(--page-bg);color:var(--text);margin:0;font-family:Inter,-apple-system,sans-serif}#root{background:var(--app-bg);max-width:480px;min-height:100vh;padding:var(--sp-6) var(--sp-5) 60px;margin:0 auto}h1,h2,h3,h4{color:var(--text);margin:0;font-family:Fraunces,serif;font-weight:600}.amount-mono{font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-family:JetBrains Mono,monospace}.muted{color:var(--text-secondary);font-size:13px}.error-text{color:var(--danger);margin:var(--sp-2) 0;font-size:13px}.stat-label{letter-spacing:.04em;text-transform:uppercase;color:var(--text-secondary);margin:0;font-size:12px}.stat-value{margin:var(--sp-1) 0 0;color:var(--text);font-family:Fraunces,serif;font-size:28px}.section-label{letter-spacing:.05em;text-transform:uppercase;color:var(--text-secondary);margin:var(--sp-6) 0 var(--sp-2);font-size:13px}.app-header{padding-bottom:var(--sp-3);margin-bottom:var(--sp-1);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;display:flex}.row{justify-content:space-between;align-items:center;display:flex}.row-gap{align-items:center;gap:var(--sp-2);display:flex}.stack-gap{gap:var(--sp-2);flex-direction:column;display:flex}.form-stack>*+*{margin-top:var(--sp-2)}.field-row{gap:var(--sp-2);display:flex}button{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);min-height:44px;color:var(--text);cursor:pointer;transition:background var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);padding:11px 18px;font-family:Inter,sans-serif;font-size:14px;font-weight:500}button:hover{background:var(--emerald-soft);border-color:var(--emerald)}button:active{transform:scale(.97)}button:focus-visible{box-shadow:var(--shadow-focus);outline:none}button:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn-primary{background:var(--emerald);color:#fff;border:none}.btn-primary:hover{background:#12594b}.btn-secondary{background:var(--surface);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover{background:var(--gold-soft);border-color:var(--gold)}.btn-danger{background:var(--surface);color:var(--danger);border:1px solid var(--danger)}.btn-danger:hover{background:#fbeeea}.btn-block{width:100%}.btn-flex{flex:1}.icon-btn{padding:var(--sp-1);min-width:32px;min-height:32px;color:var(--text-secondary);background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover{color:var(--danger);background:0 0;border-color:#0000}.icon-btn:focus-visible{box-shadow:var(--shadow-focus);border-radius:var(--radius-sm)}input,select{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);width:100%;min-height:44px;color:var(--text);transition:border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);padding:12px 14px;font-family:Inter,sans-serif;font-size:15px}input:focus,select:focus{border-color:var(--emerald);box-shadow:var(--shadow-focus);outline:none}.search-input{margin-bottom:var(--sp-3)}.search-wrap{margin-bottom:var(--sp-3);position:relative}.search-wrap input{margin-bottom:0;padding-left:38px}.search-wrap .search-icon{color:var(--text-secondary);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.toggle-group{gap:var(--sp-2);display:flex}.toggle-btn{flex:1}.toggle-btn.active{background:var(--emerald);color:#fff;border-color:var(--emerald)}.card{background:var(--surface);border-radius:var(--radius-md);padding:var(--sp-4);border:1px solid var(--border);box-shadow:var(--shadow-sm)}.summary-grid{gap:var(--sp-3);margin-bottom:var(--sp-5);display:flex}.summary-grid .card{flex:1}.ledger-summary-card{background:var(--navy);border-radius:var(--radius-lg);padding:var(--sp-5);box-shadow:var(--shadow-md);color:#fff;margin-bottom:var(--sp-5);position:relative}.ledger-summary-card .stat-label{color:#ffffffa6}.ledger-summary-card .stat-value{color:#fff}.ledger-seal{top:var(--sp-4);right:var(--sp-4);background:var(--gold);border-radius:50%;width:10px;height:10px;position:absolute}@media (prefers-reduced-motion:no-preference){.ledger-seal{animation:3.2s ease-in-out infinite sealBreathe}}@keyframes sealBreathe{0%,to{opacity:.85;transform:scale(1)}50%{opacity:1;transform:scale(1.15)}}.tab-bar{gap:var(--sp-2);margin-bottom:var(--sp-5);border-bottom:1px solid var(--border);padding-bottom:var(--sp-2);display:flex;position:relative}.tab-btn{color:var(--text-secondary);min-height:40px;padding:var(--sp-2) var(--sp-2);background:0 0;border:none;flex:1;font-weight:500}.tab-btn:hover{color:var(--emerald);background:0 0;border-color:#0000}.tab-btn.active{color:var(--emerald);font-weight:600}.tab-underline{background:var(--emerald);height:2px;transition:left var(--dur-slow) var(--ease), width var(--dur-slow) var(--ease);border-radius:2px;position:absolute;bottom:-1px}.tab-content-enter{animation:tabFade var(--dur-base) var(--ease)}@keyframes tabFade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.person-row{padding:14px var(--sp-4);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);text-align:left;width:100%;margin-bottom:var(--sp-2);box-shadow:var(--shadow-sm);justify-content:space-between;align-items:center;display:flex}.person-row:hover{background:var(--emerald-soft);border-color:var(--emerald)}.person-row:active{transform:scale(.99)}.avatar{background:var(--navy);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:13px;font-weight:600;display:flex}.avatar-lg{width:44px;height:44px;font-size:15px}.balance-positive{color:var(--emerald);font-weight:600}.balance-negative{color:var(--danger);font-weight:600}.balance-neutral{color:var(--text-secondary)}.settled-badge{letter-spacing:.05em;text-transform:uppercase;color:var(--emerald);background:var(--emerald-soft);border-radius:4px;padding:3px 9px;font-size:11px;font-weight:600;display:inline-block}.currency-tag{letter-spacing:.03em;text-transform:uppercase;margin-right:var(--sp-2);white-space:nowrap;border-radius:4px;justify-content:center;align-items:center;padding:2px 7px;font-family:Inter,sans-serif;font-size:10px;font-weight:600;display:inline-flex}.currency-tag-npr{background:var(--gold-soft);color:#8a6a1e}.currency-tag-aud{background:var(--emerald-soft);color:var(--emerald)}@media (prefers-reduced-motion:no-preference){.stamp-flash{animation:.7s ease-out stampFlash}}@keyframes stampFlash{0%{background-color:#c692322e}to{background-color:#0000}}.entry-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:12px 0;display:flex}.entry-row:last-child{border-bottom:none}.progress-track{background:var(--border);height:6px;margin-bottom:var(--sp-2);border-radius:3px;overflow:hidden}.progress-fill{background:var(--emerald);height:100%;transition:width var(--dur-slow) var(--ease)}@media (prefers-reduced-motion:no-preference){.row-enter{animation:rowEnter var(--dur-slow) var(--ease)}.row-exit{animation:rowExit var(--dur-base) ease-in forwards}}@keyframes rowEnter{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}@keyframes rowExit{0%{opacity:1;max-height:100px}to{opacity:0;max-height:0;margin-bottom:0;padding-top:0;padding-bottom:0}}.skeleton{background:linear-gradient(90deg, var(--border) 25%, #ede8dc 37%, var(--border) 63%);border-radius:var(--radius-sm);background-size:400% 100%}@media (prefers-reduced-motion:no-preference){.skeleton{animation:1.4s ease-in-out infinite skeletonShimmer}}@keyframes skeletonShimmer{0%{background-position:100%}to{background-position:0%}}.skeleton-row{height:58px;margin-bottom:var(--sp-2)}.skeleton-card{height:90px}.book-cover-wrap{z-index:1000;pointer-events:none;position:fixed;inset:0}.book-cover-half{background:var(--navy);justify-content:center;align-items:center;width:50%;transition:transform .7s cubic-bezier(.65,0,.35,1);display:flex;position:fixed;top:0;bottom:0}.book-cover-left{border-right:1px solid #c692324d;left:0}.book-cover-right{border-left:1px solid #c692324d;right:0}.book-cover-wrap.opening .book-cover-left{transform:translate(-100%)}.book-cover-wrap.opening .book-cover-right{transform:translate(100%)}.book-cover-wrap.hidden{display:none}.book-cover-title{text-align:center;color:#fff;z-index:1001;transition:opacity .4s;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.book-cover-title h1{color:#fff;letter-spacing:.02em;margin:0;font-family:Fraunces,serif;font-size:40px}.book-cover-title p{color:#fff9;margin-top:var(--sp-2);letter-spacing:.08em;text-transform:uppercase;font-size:13px}.book-cover-seal{background:var(--gold);width:14px;height:14px;margin:0 auto var(--sp-4);border-radius:50%}.book-cover-wrap.opening .book-cover-title{opacity:0}@media (prefers-reduced-motion:reduce){.book-cover-half,.book-cover-title{transition:none}}
