:root{--bg: #f4f3f1;--bg-2: #ffffff;--panel: #ffffff;--panel-2: #faf9f7;--navy: #2c2c2c;--gold: #b8945f;--gold-bright: #c9a570;--ink: #2a2a2a;--muted: #8a8784;--line: #e5e3df;--green: #3f9e6b;--red: #c2554d;--amber: #c89b3c;--radius: 14px;--shadow: 0 4px 24px rgba(0,0,0,.06)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Inter,-apple-system,system-ui,sans-serif;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;font-size:16px}#root{min-height:100vh}input,select,button,textarea{font-family:inherit;font-size:16px}.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(130% 90% at 50% 0%,#faf9f7,#ecebe8 70%)}.auth-card{width:100%;max-width:380px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:32px 28px;box-shadow:var(--shadow)}.brand{text-align:center;margin-bottom:28px}.brand h1{font-size:28px;font-weight:800;letter-spacing:-.5px}.brand span{color:var(--gold)}.brand p{color:var(--muted);font-size:14px;margin-top:4px}label{display:block;font-size:13px;color:var(--muted);margin:14px 0 6px;font-weight:600}.field{width:100%;background:var(--bg-2);border:1px solid var(--line);color:var(--ink);border-radius:12px;padding:13px 14px;outline:none}.field:focus{border-color:var(--gold)}.btn{width:100%;border:none;border-radius:12px;padding:14px;font-weight:700;cursor:pointer;margin-top:20px;background:var(--gold);color:#fff;transition:filter .15s}.btn:hover{filter:brightness(1.08)}.btn:disabled{opacity:.6;cursor:default}.btn-ghost{background:transparent;border:1px solid var(--line);color:var(--ink)}.btn-sm{width:auto;padding:9px 14px;margin:0;font-size:14px}.btn-red{background:var(--red);color:#2a0606}.btn-green{background:var(--green);color:#052017}.error{color:var(--red);font-size:13px;margin-top:12px;text-align:center}.shell{min-height:100vh;padding-bottom:80px}.topbar{position:sticky;top:0;z-index:20;background:#06262beb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);padding:16px 18px;display:flex;align-items:center;justify-content:space-between}.topbar h2{font-size:18px;font-weight:800}.topbar .sub{color:var(--muted);font-size:12px}.content{padding:18px;max-width:760px;margin:0 auto}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:18px;margin-bottom:14px}.card-title{font-size:13px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.5px;margin-bottom:12px}.balance-big{font-size:34px;font-weight:800;letter-spacing:-1px}.balance-row{display:flex;align-items:center;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--line)}.balance-row:last-child{border-bottom:none}.balance-row .name{font-weight:600}.balance-row .amt{font-weight:800;font-size:18px}.list-item{display:flex;align-items:center;justify-content:space-between;padding:13px 0;border-bottom:1px solid var(--line)}.list-item:last-child{border-bottom:none}.list-item .meta{font-size:12px;color:var(--muted);margin-top:2px}.pos{color:var(--green)}.neg{color:var(--red)}.row{display:flex;gap:10px}.row>*{flex:1}.chip-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.chip{padding:8px 14px;border-radius:999px;border:1px solid var(--line);background:var(--bg-2);color:var(--muted);cursor:pointer;font-weight:600;font-size:14px}.empty{text-align:center;color:var(--muted);padding:30px 10px;font-size:14px}.bottomnav{position:fixed;bottom:0;left:0;right:0;z-index:30;background:#0a3138f5;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--line);display:flex;justify-content:space-around;padding:8px 4px calc(8px + env(safe-area-inset-bottom))}.navbtn{background:none;border:none;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:3px;font-size:11px;font-weight:600;cursor:pointer;padding:4px 10px}.navbtn svg{width:22px;height:22px}.modal-bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#0009;display:flex;align-items:flex-end;justify-content:center}.modal{width:100%;max-width:480px;background:var(--panel);border-radius:20px 20px 0 0;border:1px solid var(--line);padding:22px 20px calc(22px + env(safe-area-inset-bottom));max-height:90vh;overflow-y:auto}.modal h3{font-size:18px;margin-bottom:6px}.modal-close{float:right;background:none;border:none;color:var(--muted);font-size:22px;cursor:pointer}.seg{display:flex;gap:8px;margin:14px 0}.seg button{flex:1;padding:11px;border-radius:10px;border:1px solid var(--line);background:var(--bg-2);color:var(--muted);font-weight:700;cursor:pointer}.seg button.on-in{background:var(--green);color:#052017;border-color:var(--green)}.seg button.on-out{background:var(--red);color:#2a0606;border-color:var(--red)}@media (min-width: 560px){.modal{border-radius:20px;margin-bottom:40px}.modal-bg{align-items:center}}.tbl{width:100%;border-collapse:collapse;font-size:14px}.tbl th{text-align:left;color:var(--muted);font-weight:700;padding:10px 8px;border-bottom:1px solid var(--line);font-size:12px}.tbl td{padding:11px 8px;border-bottom:1px solid var(--line)}.badge{font-size:11px;padding:3px 8px;border-radius:999px;font-weight:700}.badge.admin{background:#2dd4d426;color:var(--gold)}.badge.user{background:#7fa8ac26;color:var(--muted)}.badge.off{background:#f8717126;color:var(--red)}.loading{display:grid;place-items:center;min-height:60vh;color:var(--muted)}.search-box{position:relative;margin-bottom:14px}.search-ico{position:absolute;left:13px;top:50%;transform:translateY(-50%);width:18px;height:18px;color:var(--muted);pointer-events:none}.topbar h2,.brand h1,.modal h3,.balance-big{font-family:Cormorant Garamond,Playfair Display,Georgia,serif;font-weight:600;letter-spacing:.2px}.topbar h2,.modal h3{font-size:22px}.card-title{font-family:Inter,sans-serif;font-weight:600;letter-spacing:.8px;color:var(--muted)}.card{box-shadow:var(--shadow)}.btn{box-shadow:none;letter-spacing:.3px}.btn:hover{filter:brightness(1.04)}.chip.active{background:var(--gold);color:#fff;border-color:var(--gold)}.topbar{background:#ffffffd9}.bottomnav{background:#ffffffeb}.navbtn.active{color:var(--gold)}.badge.admin{background:#b8945f24;color:var(--gold)}
