:root{--orange: #ff9400;--orange-10: #ffefd7;--blue: #0354f0;--blue-40: #9abbf9;--blue-20: #ccddfe;--blue-10: #e0eaff;--blue-05: #f3f7ff;--brown: #231303;--brown-80: #615447;--beige-10: #f4ede6;--beige-20: #eee3d8;--table-head: #f8f6f2;--line: #ece7e1;--white: #ffffff;--green: #1f8a4c;--green-10: #e3f4ea;--red: #d92d3a;--red-10: #fde8ea;--amber: #8a5a00;--amber-10: #fff4e2;--purple: #6b3fd6;--purple-10: #efe9fd;--radius: 16px;--font: "Figtree", system-ui, sans-serif;--display: "Sora", "Figtree", system-ui, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--beige-10);color:var(--brown);font-family:var(--font);font-size:14px;line-height:1.4}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}button{font-family:inherit;font-size:14px;cursor:pointer}input,select,textarea{font-family:inherit;font-size:14px;color:var(--brown)}.shell{display:flex;gap:24px;padding:24px;min-height:100vh}.sidebar{width:232px;flex-shrink:0;background:var(--white);border-radius:var(--radius);padding:24px 15px;display:flex;flex-direction:column;gap:12px;position:sticky;top:24px;height:calc(100vh - 48px)}.logo{display:flex;align-items:baseline;gap:8px;padding:0 2px 18px}.logo .word{font-family:var(--display);font-weight:600;font-size:25px;color:var(--blue);letter-spacing:-.5px;position:relative}.logo .word .leaf{position:absolute;left:70px;top:-6px;width:10px;height:12px}.logo .sub{color:var(--orange);font-weight:600;font-size:15px}.nav{display:flex;flex-direction:column;gap:12px}.nav a{display:flex;align-items:center;gap:12px;height:48px;padding:0 16px;border-radius:12px;background:var(--blue-05);color:var(--blue);font-weight:600;font-size:14px;text-decoration:none}.nav a .dot{width:20px;height:20px;border-radius:50%;background:var(--blue-20);flex-shrink:0}.nav a.active{background:var(--blue);color:var(--white)}.nav a.active .dot{background:transparent;border:2px solid var(--white)}.nav .sep{height:1px;background:var(--line);margin:4px 0}.nav a.dev{background:transparent;color:var(--brown-80);height:36px;font-weight:500}.nav a.dev.active{background:var(--beige-10);color:var(--brown)}.me{margin-top:auto;border-top:1px solid var(--line);padding-top:16px;display:flex;gap:12px;align-items:flex-start}.avatar{width:40px;height:40px;border-radius:50%;background:var(--orange-10);color:var(--orange);display:grid;place-items:center;font-weight:700;flex-shrink:0}.me .name{font-weight:600}.me .role{color:var(--brown-80);font-size:13px}.me button{background:none;border:none;color:var(--blue);padding:0;font-size:13px;margin-top:4px}.main{flex:1;min-width:0;display:flex;flex-direction:column;gap:24px}.topbar{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;min-height:80px}.topbar h1{font-family:var(--display);font-weight:600;font-size:28px;line-height:36px;letter-spacing:-.6px;margin:16px 0 0}.topsearch{background:var(--white);border-radius:var(--radius);padding:16px;width:320px;flex-shrink:0}.topsearch input{width:100%;height:48px;border-radius:8px;border:1px solid var(--blue-20);background:var(--blue-05);padding:0 16px 0 40px;outline:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='none' stroke='%230354f0' stroke-width='2'%3E%3Ccircle cx='8' cy='8' r='6'/%3E%3Cpath d='m13 13 4 4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:14px center}.subtitle{color:var(--brown-80);margin:-12px 0 0}.intro{color:var(--brown-80);margin:-8px 0 0;max-width:900px}.tabs{display:flex;gap:24px;border-bottom:none}.tabs button{background:none;border:none;padding:0 0 8px;color:var(--brown-80);border-bottom:2px solid transparent}.tabs button.active{color:var(--brown);font-weight:600;border-color:var(--orange)}.filters{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.filters .search{height:36px;border-radius:18px;border:none;background:var(--white);padding:0 16px;width:220px;outline:none}.pill-select{position:relative;display:inline-flex;align-items:center;height:36px;border-radius:18px;background:var(--white);padding:0 12px;gap:4px;color:var(--brown-80)}.pill-select.on{border:1px solid var(--blue);background:var(--blue-05)}.pill-select.on b{color:var(--blue)}.pill-select select{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.pill-select b{color:var(--brown);font-weight:600}.pill-select .caret{font-size:9px}.linkbtn{background:none;border:none;color:var(--blue);font-weight:600;padding:0}.btn{height:40px;border-radius:8px;border:none;padding:0 20px;font-weight:600}.btn.primary{background:var(--blue);color:var(--white)}.btn.primary:disabled{opacity:.5;cursor:default}.btn.secondary{background:var(--blue-05);color:var(--blue)}.btn.danger{background:var(--red);color:var(--white)}.btn.ghost{background:transparent;color:var(--blue)}.btn.block{width:100%}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:12px;color:var(--brown-80)}.input,.textarea,.select{border:1px solid var(--line);border-radius:8px;padding:10px 12px;background:var(--white);outline:none}.input:focus,.textarea:focus,.select:focus{border-color:var(--blue)}.textarea{min-height:110px;resize:vertical}.check{display:flex;gap:10px;align-items:center}.check input{width:18px;height:18px;accent-color:var(--blue)}.card{background:var(--white);border-radius:var(--radius);padding:20px 24px}.card h3{margin:0 0 12px;font-size:16px;font-weight:600}.grid2{display:grid;grid-template-columns:360px 1fr;gap:20px;align-items:start}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.split{display:grid;grid-template-columns:1fr 380px;gap:20px;align-items:start}.stack{display:flex;flex-direction:column;gap:16px}.row{display:flex;gap:12px;align-items:center}.row.end{justify-content:flex-end}.row.between{justify-content:space-between}.muted{color:var(--brown-80)}.small{font-size:12px}.num{text-align:right;font-variant-numeric:tabular-nums}.bold{font-weight:600}.table{background:var(--white);border-radius:var(--radius);overflow:hidden}.table table{width:100%;border-collapse:collapse}.table th{background:var(--table-head);text-align:left;font-weight:500;font-size:12px;color:var(--brown-80);padding:14px 12px}.table td{padding:13px 12px;border-top:1px solid var(--line)}.table tr.click{cursor:pointer}.table tr.click:hover td,.table tr.sel td{background:var(--blue-05)}.table tr.total td{background:var(--table-head);font-weight:600}.table th:first-child,.table td:first-child{padding-left:16px}.table .empty{text-align:center;color:var(--brown-80);padding:40px}.stat{background:var(--white);border-radius:var(--radius);padding:16px 16px 18px}.stat .label{color:var(--brown-80);font-size:13px}.stat .value{font-family:var(--display);font-size:24px;font-weight:600;margin-top:6px}.stat .value.green{color:var(--green)}.stat .value.red{color:var(--red)}.badge{display:inline-block;border-radius:12px;padding:3px 9px;font-size:11px;font-weight:500;white-space:nowrap}.b-amber{background:var(--amber-10);color:var(--amber)}.b-red{background:var(--red-10);color:var(--red)}.b-green{background:var(--green-10);color:var(--green)}.b-blue{background:var(--blue-10);color:var(--blue)}.b-purple{background:var(--purple-10);color:var(--purple)}.b-grey{background:var(--beige-10);color:var(--brown-80)}.bulkbar{background:var(--brown);color:var(--white);border-radius:var(--radius);padding:12px 12px 12px 16px;display:flex;align-items:center;gap:12px}.bulkbar .btn{min-width:200px}.bulkbar span{flex:1;font-weight:600}.ai-note{background:var(--amber-10);border-radius:12px;padding:12px 16px;line-height:1.5}.receipt{background:var(--table-head);border-radius:8px;padding:20px;font-size:13px;display:flex;flex-direction:column;gap:6px}.receipt .line{display:flex;justify-content:space-between}.posting-line{display:flex;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}.posting-line:last-of-type{border-bottom:none}.posting-line .select{max-width:280px;font-weight:600}.posting-line .input{flex:1;border-color:transparent}.posting-line .amount{width:120px;text-align:right;font-weight:600}.bankmatch{border:1px solid var(--line);border-radius:8px;padding:12px;display:flex;align-items:center;gap:12px}.bankmatch .grow{flex:1}.quote{background:var(--beige-10);border-radius:8px;padding:10px 14px;font-style:italic}.option{border:1px solid var(--line);border-radius:8px;padding:14px 16px;display:flex;gap:14px;cursor:pointer;background:var(--white);text-align:left;width:100%}.option.on{border:2px solid var(--blue);background:var(--blue-05);padding:13px 15px}.option .radio{width:18px;height:18px;border-radius:50%;border:2px solid var(--brown-80);flex-shrink:0;margin-top:2px}.option.on .radio{border:5px solid var(--blue)}.option .t{font-weight:600}.option .d{font-size:12px;color:var(--brown-80);margin-top:2px}.option:disabled{opacity:.5;cursor:default}.stmt{background:var(--table-head);border-radius:8px;padding:6px 12px}.stmt .r{display:grid;grid-template-columns:62px 1fr 120px;padding:7px 0;font-size:13px}.kv{display:flex;justify-content:space-between;padding:7px 0;font-size:13px}.kv span:first-child{color:var(--brown-80)}.kv span:last-child{font-weight:600;text-align:right}.chips{display:flex;gap:8px;flex-wrap:wrap}.chip{border:1px solid var(--line);border-radius:16px;padding:5px 12px;background:var(--white);font-size:12px}.chip.on{border-color:var(--blue);color:var(--blue);background:var(--blue-05)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#23130359;display:grid;place-items:center;z-index:20;padding:24px}.modal{background:var(--white);border-radius:20px;padding:24px;width:480px;max-width:100%;display:flex;flex-direction:column;gap:16px;box-shadow:0 24px 60px #00000026}.modal.wide{width:620px}.modal h2{font-family:var(--display);font-weight:600;font-size:20px;margin:0}.modal .btns{display:flex;gap:12px}.modal .btns .btn{flex:1}.error{color:var(--red);font-size:13px}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);background:var(--brown);color:var(--white);padding:12px 20px;border-radius:12px;z-index:30;font-weight:500}.login{min-height:100vh;display:grid;place-items:center;padding:24px}.login .box{background:var(--white);border-radius:24px;padding:40px;width:440px;display:flex;flex-direction:column;gap:16px}.login h1{font-family:var(--display);font-size:24px;margin:8px 0 0}.sso{display:flex;align-items:center;gap:14px;border:1px solid var(--line);border-radius:12px;padding:14px 16px;background:var(--white);text-align:left}.sso .ic{width:28px;height:28px;border-radius:6px;display:grid;place-items:center;font-weight:700;color:var(--white)}.sso .t{font-weight:600}.sso .d{color:var(--brown-80);font-size:12px}.otp{display:flex;gap:8px}.otp input{width:48px;height:56px;text-align:center;font-size:22px;border:1px solid var(--line);border-radius:10px}.foot{color:var(--brown-80);font-size:12px;text-align:center;margin-top:8px}.devnote{background:var(--blue-05);border-radius:8px;padding:10px 12px;font-size:12px;color:var(--brown-80)}.stripe{min-height:100vh;display:grid;place-items:center;background:#f6f9fc}.stripe .box{background:#fff;border-radius:12px;padding:32px;width:420px;box-shadow:0 8px 30px #32325d1f;display:flex;flex-direction:column;gap:14px;font-family:system-ui,sans-serif}.stripe .pay{background:#635bff;color:#fff;border:none;border-radius:6px;height:44px;font-weight:600}.log td{font-size:12px;vertical-align:top}code{background:var(--beige-10);padding:1px 5px;border-radius:4px;font-size:12px}.table th.num{text-align:right}
