:root{font-family:Assistant,Arial,sans-serif;color:#2d2822;background:#f6f1e8;font-synthesis:none;--gold:#bf9148;--gold-dark:#8c6429;--cream:#f6f1e8;--line:#e8ddcd;--green:#5e7d62;--red:#a95e56;--ink:#2d2822;--muted:#82766a}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at 70% 0,#fff 0,transparent 34%),var(--cream)}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.55;cursor:wait}.boot{min-height:100vh;display:grid;place-content:center;text-align:center;color:var(--muted)}.spinner{width:36px;height:36px;border:3px solid #e7dac7;border-top-color:var(--gold);border-radius:50%;animation:spin .8s linear infinite;margin:auto}@keyframes spin{to{transform:rotate(360deg)}}.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(120deg,#3e3022c7,#71563566),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cpath fill='%23fff' fill-opacity='.08' d='M0 0h60v60H0zM60 60h60v60H60z'/%3E%3C/svg%3E")}.login-card{width:min(460px,100%);background:#fffffff5;border:1px solid rgba(255,255,255,.7);border-radius:30px;padding:42px;box-shadow:0 30px 80px #2a211840}.brand-mark,.logo span{width:48px;height:48px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(145deg,#d9b97c,#a77a36);color:#fff;font-size:26px;font-weight:700;box-shadow:0 8px 24px #a77a3640}.eyebrow{color:var(--gold-dark);font-size:12px;font-weight:700;letter-spacing:.18em;margin:15px 0 5px}.login-card h1{font-size:38px;line-height:1.1;margin:8px 0 12px}.login-card>p{color:var(--muted);margin-bottom:28px}.login-card form{display:grid;gap:16px}label{display:grid;gap:7px;font-size:14px;font-weight:600;color:#5e554d}input,select,textarea{width:100%;border:1px solid #ddd1c0;border-radius:12px;background:#fff;padding:12px 14px;color:var(--ink);outline:none;transition:.2s}input:focus,select:focus,textarea:focus{border-color:var(--gold);box-shadow:0 0 0 3px #bf91481f}.primary,.secondary{border-radius:12px;padding:12px 18px;font-weight:700;border:1px solid transparent}.primary{background:linear-gradient(135deg,#c99c56,#a97731);color:#fff;box-shadow:0 8px 20px #a977312e}.secondary{background:#fff;color:var(--ink);border-color:#d9ccba}.divider{height:1px;background:var(--line);margin:25px 0;position:relative}.divider span{position:absolute;top:50%;right:50%;transform:translate(50%,-50%);background:#fff;padding:0 12px;color:var(--muted)}.alert,.legal-note{padding:12px 16px;border-radius:12px;background:#fff4dc;color:#77521d;margin-bottom:16px}.shell{display:grid;grid-template-columns:250px 1fr;min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;background:#302b26;color:#fff;padding:30px 20px;display:flex;flex-direction:column}.logo{display:flex;align-items:center;gap:12px;font-size:25px}.logo span{width:38px;height:38px;border-radius:12px;font-size:20px}.sidebar>div>small{display:block;color:#cbb89e;font-size:10px;letter-spacing:.28em;margin:5px 52px}.sidebar nav{display:grid;gap:8px;margin-top:50px}.sidebar nav button,.logout{border:0;background:transparent;color:#d9d0c6;display:flex;align-items:center;gap:13px;padding:13px 15px;border-radius:12px;text-align:right}.sidebar nav button i,.logout i{font-style:normal;width:25px;text-align:center;font-size:20px}.sidebar nav button:hover,.sidebar nav button.active{background:#d3b27e2b;color:#f4d9ad}.logout{margin-top:auto}.main{min-width:0;padding:0 38px 48px}.main header{height:78px;display:flex;align-items:center;justify-content:flex-end;border-bottom:1px solid rgba(218,205,187,.7)}.user{display:flex;align-items:center;gap:10px;color:var(--muted)}.user b{width:36px;height:36px;display:grid;place-items:center;border-radius:50%;background:#e9dcc8;color:#6e512b}.page-head{display:flex;justify-content:space-between;align-items:end;padding:42px 0 28px;gap:24px}.page-head h1{font-size:36px;margin:0}.page-head p:not(.eyebrow){color:var(--muted);margin:6px 0 0}.page-head.compact{padding-top:32px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:22px}.stats article{background:#ffffffe0;border:1px solid var(--line);border-radius:18px;padding:20px;display:flex;align-items:center;gap:14px;box-shadow:0 9px 30px #4837250b}.stats small{color:var(--muted);display:block}.stats strong{font-size:23px;display:block;margin-top:4px}.stat-icon{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;font-size:21px}.stat-icon.income{background:#edf4ed;color:var(--green)}.stat-icon.expense{background:#f9edeb;color:var(--red)}.stat-icon.balance,.stat-icon.docs{background:#f7eedc;color:var(--gold-dark)}.panel{background:#ffffffe6;border:1px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:0 12px 34px #4837250b}.panel-title,.toolbar{display:flex;justify-content:space-between;align-items:center;padding:20px 22px;border-bottom:1px solid var(--line)}.panel-title h2{margin:0;font-size:21px}.panel-title p{margin:3px 0 0;color:var(--muted);font-size:14px}.link,.attachment{border:0;background:none;color:var(--gold-dark);font-weight:700}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;white-space:nowrap}th,td{padding:15px 18px;text-align:right;border-bottom:1px solid #eee6da;font-size:14px}th{font-size:12px;color:var(--muted);background:#fcfaf6}tbody tr:hover{background:#fffcf6}.tag{display:inline-flex;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700}.tag.income,.tag.issued{background:#edf4ed;color:var(--green)}.tag.expense,.tag.cancelled{background:#f9edeb;color:var(--red)}.tag.issuing{background:#eef2f8;color:#536985}.tag.draft{background:#f7eedc;color:var(--gold-dark)}.amount{font-weight:700}.amount.income{color:var(--green)}.amount.expense{color:var(--red)}.empty,.fatal{text-align:center;padding:60px 20px;color:var(--muted);display:grid;gap:7px}.empty b,.fatal h2{color:var(--ink)}.toolbar{gap:20px}.search{position:relative;display:flex;align-items:center;flex:1;max-width:500px}.search input{padding-right:42px}.search:first-letter{font-size:20px}.toolbar>span{color:var(--muted);font-size:14px}.legal-note{margin:-10px 0 20px;border:1px solid #ecd8ad}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;padding:20px}.document-card{border:1px solid var(--line);border-radius:16px;padding:18px;display:grid;gap:15px}.document-card h3{margin:10px 0 0}.document-card small{margin-right:8px;color:var(--muted)}.document-card>strong{font-size:23px}.document-card .secondary{justify-self:start}.head-actions,.document-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.danger{border:1px solid #e4c2bd;border-radius:12px;padding:12px 18px;background:#fff7f5;color:var(--red);font-weight:700}dialog{width:min(760px,calc(100% - 28px));max-height:calc(100vh - 40px);overflow:auto;border:0;border-radius:24px;padding:26px;box-shadow:0 30px 100px #271f1652}dialog::backdrop{background:#231d188c;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.dialog-head{display:flex;justify-content:space-between;align-items:start;margin-bottom:22px}.dialog-head h2{font-size:28px;margin:0}.dialog-head .eyebrow{margin-top:0}.close{border:0;background:#f3ede4;border-radius:50%;width:38px;height:38px;font-size:24px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.full{grid-column:1/-1}.segmented{display:grid;grid-template-columns:1fr 1fr;border:1px solid #d8cab8;border-radius:13px;overflow:hidden}.segmented label{display:block}.segmented input{position:absolute;opacity:0}.segmented span{display:block;text-align:center;padding:11px}.segmented input:checked+span{background:#f1d6ad;color:#654719}.upload{border:1px dashed #cdb996;border-radius:14px;padding:18px;text-align:center}.upload input{padding:8px;margin-bottom:8px}.upload span,.upload small{display:block}.upload small{color:var(--muted);font-weight:400}.actions{display:flex;justify-content:flex-end;gap:10px;padding-top:8px}.line-box{display:grid;grid-template-columns:2fr .7fr 1fr .7fr;gap:12px;background:#faf6ef;border-radius:15px;padding:15px}.line-box h3{grid-column:1/-1;margin:0}.toast{position:fixed;left:24px;bottom:24px;background:#334d36;color:#fff;padding:13px 20px;border-radius:12px;box-shadow:0 10px 30px #0003;z-index:20}.toast.error{background:#8e413c}.mobile-logo{display:none}@media(max-width:1050px){.stats,.cards{grid-template-columns:1fr 1fr}}@media(max-width:760px){.shell{display:block}.sidebar{position:fixed;z-index:10;bottom:0;top:auto;width:100%;height:68px;padding:7px 10px}.sidebar>div,.logout{display:none}.sidebar nav{margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:2px}.sidebar nav button{justify-content:center;flex-direction:column;gap:1px;padding:5px;font-size:11px}.sidebar nav button i{font-size:18px}.main{padding:0 14px 88px}.main header{height:58px;justify-content:space-between}.mobile-logo{display:block;font-weight:700}.user span{display:none}.page-head{padding:24px 0 18px;align-items:start}.page-head h1{font-size:29px}.page-head .primary{white-space:nowrap}.head-actions{justify-content:flex-end}.stats{grid-template-columns:1fr 1fr;gap:10px}.stats article{padding:14px}.stats strong{font-size:18px}.stat-icon{display:none}.cards,.form-grid{grid-template-columns:1fr}.full{grid-column:auto}.line-box{grid-template-columns:1fr 1fr}.line-box h3{grid-column:1/-1}.toolbar{align-items:stretch;flex-direction:column}.login-card{padding:30px 24px}.login-card h1{font-size:31px}}@media(max-width:430px){.stats{grid-template-columns:1fr}.page-head{display:grid}.page-head .primary{justify-self:stretch}.line-box{grid-template-columns:1fr}.line-box h3{grid-column:auto}}.login-shell{position:relative;isolation:isolate;overflow:hidden;padding:32px;background:radial-gradient(circle at 18% 15%,rgba(240,211,163,.24),transparent 27%),radial-gradient(circle at 85% 86%,rgba(226,203,165,.16),transparent 31%),linear-gradient(135deg,#8c8173,#9e9282 48%,#7d7367)}.login-shell:before,.login-shell:after{content:"";position:absolute;z-index:-1;border:1px solid rgba(255,255,255,.12);border-radius:50%}.login-shell:before{width:520px;height:520px;top:-330px;right:-170px}.login-shell:after{width:420px;height:420px;bottom:-290px;left:-110px}.login-card{width:min(480px,100%);padding:34px 38px 28px;border-radius:28px;background:#fffffff6;box-shadow:0 28px 75px #2a21183d,inset 0 1px #ffffffe6;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.login-brand{display:flex;align-items:center;gap:12px}.brand-name{font-size:21px;font-weight:700;line-height:1}.brand-product{margin-top:5px;color:#9a7743;font-size:9px;font-weight:700;letter-spacing:.26em}.login-intro{margin:27px 0 24px}.login-intro .eyebrow{margin:0 0 8px;letter-spacing:.04em}.login-card h1{margin:0 0 11px;font-size:35px;line-height:1.08;letter-spacing:-.025em}.login-card>.login-intro>p{margin:0;color:var(--muted);font-size:16px;line-height:1.5}.login-card form{gap:14px}.login-card label{gap:6px}.login-card input{min-height:50px;background:#fefdfb}.login-card input::placeholder{color:#b2a99f}.login-card form .primary{min-height:52px;margin-top:2px;font-size:16px}.login-card .primary,.google-button{transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.login-card .primary:hover:not(:disabled),.google-button:hover{transform:translateY(-1px)}.divider{margin:22px 0}.divider span{background:#fff;color:#9b9186;font-size:13px}.google-button{position:relative;width:100%;min-height:52px;border:1px solid #d8d1c8;border-radius:12px;background:#fff;color:#302c28;font-weight:700;box-shadow:0 2px 7px #342c230d}.google-button:hover{border-color:#bcb3a9;box-shadow:0 7px 18px #342c231a}.google-button:focus-visible{outline:3px solid rgba(66,133,244,.2);outline-offset:2px}.google-logo{position:absolute;right:18px;top:50%;width:22px;height:22px;transform:translateY(-50%)}.login-card>.login-security{display:flex;align-items:center;justify-content:center;gap:6px;margin:18px 0 0;color:#92887e;font-size:12px}.login-security span{display:grid;place-items:center;width:17px;height:17px;border-radius:50%;background:#eef4ed;color:#547359;font-size:11px}@media(max-width:540px){.login-shell{padding:14px;align-items:center}.login-card{padding:27px 22px 23px;border-radius:23px}.login-intro{margin:23px 0 20px}.login-card h1{font-size:30px}.login-intro>p{font-size:15px}}
