:root { font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color: #17231f; background: #f3f5f1; font-synthesis: none; --green:#113c34; --green2:#1d6654; --lime:#d9ff63; --ink:#17231f; --muted:#66726d; --line:#dce2dc; --surface:#fff; --red:#b73c37; --amber:#9b6412; }
* { box-sizing: border-box; }
body { margin:0; min-width:320px; min-height:100vh; }
button,input,select,textarea { font:inherit; }
button { color:inherit; }
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible { outline:3px solid rgba(29,102,84,.2); outline-offset:2px; }
.boot { min-height:100vh; display:grid; place-content:center; justify-items:center; gap:12px; color:var(--muted); }
.brand-mark { width:42px; height:42px; display:grid; place-items:center; border-radius:8px; background:var(--green); color:var(--lime); font-weight:800; }
.auth-layout { min-height:100vh; display:grid; grid-template-columns:minmax(380px, .9fr) 1.1fr; background:white; }
.auth-form-side { padding:40px clamp(28px,7vw,110px); display:flex; flex-direction:column; justify-content:center; }
.brand { display:flex; align-items:center; gap:10px; font-weight:800; font-size:19px; margin-bottom:52px; }
.brand small { display:block; color:var(--muted); font-weight:500; font-size:11px; }
.auth-form-side h1 { font-size:34px; margin:0 0 9px; letter-spacing:0; }
.auth-form-side > p { color:var(--muted); margin:0 0 28px; line-height:1.5; }
.auth-art { background:var(--green); color:white; position:relative; overflow:hidden; display:grid; align-items:center; padding:clamp(45px,8vw,120px); }
.auth-art:before { content:""; position:absolute; width:420px; height:420px; border:80px solid rgba(217,255,99,.09); border-radius:50%; right:-160px; top:-150px; }
.art-copy { position:relative; max-width:530px; }
.art-copy span { color:var(--lime); text-transform:uppercase; font-size:12px; font-weight:800; letter-spacing:.1em; }
.art-copy h2 { font-size:clamp(34px,5vw,64px); line-height:1.02; margin:18px 0 22px; letter-spacing:0; }
.art-copy p { color:#c3d1cc; line-height:1.65; max-width:460px; }
.login-form,.register-form { display:grid; gap:16px; }
.field { display:grid; gap:7px; color:#54615c; font-size:12px; font-weight:700; }
.field input,.field select,.field textarea { width:100%; border:1px solid #cbd4cf; background:#fff; color:var(--ink); border-radius:6px; min-height:45px; padding:10px 12px; }
.field textarea { resize:vertical; min-height:86px; }
.field input:focus,.field select:focus,.field textarea:focus { border-color:var(--green2); }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:15px; }
.form-grid .wide { grid-column:1/-1; }
.primary,.secondary,.danger { min-height:44px; padding:0 17px; border-radius:6px; display:inline-flex; align-items:center; justify-content:center; gap:8px; border:0; font-weight:750; cursor:pointer; }
.primary { color:white; background:var(--green); box-shadow:0 5px 16px rgba(17,60,52,.14); }
.primary:hover { background:#195347; transform:translateY(-1px); }
.primary:disabled { opacity:.45; transform:none; cursor:not-allowed; }
.secondary { background:white; border:1px solid var(--line); }
.danger { color:var(--red); background:#fff0ef; }
.auth-switch { border:0; background:transparent; color:var(--green2); font-weight:750; cursor:pointer; margin-top:18px; text-align:left; padding:0; }
.demo-box { margin-top:26px; padding:15px; background:#f1f5f2; border-left:3px solid #84a899; font-size:12px; color:var(--muted); line-height:1.55; }
.demo-box strong { color:var(--ink); }
.error { min-height:19px; color:var(--red); font-size:13px; margin:0; }
.app-shell { min-height:100vh; display:grid; grid-template-columns:236px 1fr; }
.sidebar { position:sticky; top:0; height:100vh; background:#fff; border-right:1px solid var(--line); padding:26px 17px 20px; display:flex; flex-direction:column; z-index:10; }
.sidebar .brand { margin:0 8px 43px; }
.nav { display:grid; gap:5px; }
.nav button { min-height:45px; border:0; background:transparent; border-radius:6px; display:flex; align-items:center; gap:12px; padding:0 13px; color:#66716c; font-weight:650; cursor:pointer; }
.nav button:hover { background:#f4f6f3; }
.nav button.active { color:var(--green); background:#e8f0ec; }
.side-account { margin-top:auto; border-top:1px solid var(--line); padding:16px 8px 0; display:grid; grid-template-columns:35px 1fr; gap:10px; align-items:center; }
.avatar { width:35px; height:35px; border-radius:50%; display:grid; place-items:center; background:#dcebe4; color:var(--green); font-weight:800; font-size:12px; }
.side-account div { display:grid; gap:2px; min-width:0; }
.side-account strong,.side-account small { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.side-account strong { font-size:12px; }.side-account small { color:var(--muted); font-size:10px; }
.topbar { height:68px; padding:0 38px; position:sticky; top:0; z-index:8; background:rgba(243,245,241,.9); backdrop-filter:blur(16px); border-bottom:1px solid rgba(220,226,220,.8); display:flex; align-items:center; justify-content:space-between; }
.mobile-brand { display:none; }
.topbar-title { color:var(--muted); font-size:12px; font-weight:700; }
.top-actions { display:flex; align-items:center; gap:8px; }
.icon-button { width:38px; height:38px; border:0; border-radius:50%; background:transparent; display:grid; place-items:center; cursor:pointer; }
.icon-button:hover { background:#e5eae6; }
.workspace { max-width:1180px; margin:0 auto; padding:42px 45px 85px; animation:pageIn .3s ease both; }
@keyframes pageIn { from { opacity:0; transform:translateY(7px); } }
.page-head { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:30px; }
.eyebrow { margin:0 0 7px; text-transform:uppercase; font-size:10px; letter-spacing:.1em; color:#678076; font-weight:800; }
h1,h2,h3,p { margin-top:0; }
h1 { font-size:clamp(28px,3vw,38px); line-height:1.08; letter-spacing:0; margin-bottom:7px; }
h2 { font-size:20px; letter-spacing:0; }
.page-head p:last-child,.section-title p { color:var(--muted); margin:0; }
.summary-band { min-height:206px; background:var(--green); color:white; border-radius:8px; padding:31px 35px; display:grid; grid-template-columns:1.2fr repeat(3,1fr); align-items:center; gap:28px; position:relative; overflow:hidden; }
.summary-band:after { content:""; position:absolute; width:250px; height:250px; border-radius:50%; border:45px solid rgba(217,255,99,.08); right:-105px; top:-160px; }
.summary-intro span { color:var(--lime); font-size:11px; text-transform:uppercase; font-weight:800; letter-spacing:.08em; }
.summary-intro h2 { font-size:25px; margin:10px 0 9px; }.summary-intro p { color:#bfcec8; font-size:13px; line-height:1.5; margin:0; }
.metric { border-left:1px solid rgba(255,255,255,.16); padding-left:24px; display:grid; gap:5px; position:relative; z-index:1; }
.metric strong { color:var(--lime); font-size:27px; }.metric span { color:#bfd0c9; font-size:11px; text-transform:uppercase; font-weight:700; }
.section { margin-top:38px; }
.section-title { display:flex; justify-content:space-between; align-items:end; margin-bottom:14px; }
.section-title h2 { margin-bottom:3px; }.section-title p { font-size:12px; }
.table { background:#fff; border-top:1px solid var(--line); }
.table-head,.table-row { display:grid; grid-template-columns:1fr 1.3fr 110px 130px 42px; gap:15px; align-items:center; padding:0 17px; }
.table-head { min-height:40px; color:var(--muted); font-size:10px; text-transform:uppercase; letter-spacing:.06em; font-weight:800; }
.table-row { min-height:69px; border-top:1px solid var(--line); }
.table-row strong,.table-row span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.table-row strong { font-size:13px; }.table-row span { color:var(--muted); font-size:12px; }
.amount { text-align:right; color:var(--ink)!important; font-weight:750; }
.status { color:#267056!important; display:inline-flex; align-items:center; gap:6px; font-weight:700; }
.status:before { content:""; width:7px; height:7px; border-radius:50%; background:#52a883; }
.empty { padding:65px 20px; text-align:center; color:var(--muted); }
.quick-actions { display:grid; grid-template-columns:repeat(3,1fr); background:#fff; border-top:1px solid var(--line); }
.quick-actions button { min-height:95px; border:0; border-right:1px solid var(--line); background:#fff; padding:17px; display:flex; align-items:center; gap:13px; text-align:left; cursor:pointer; }
.quick-actions button:last-child { border-right:0; }.quick-actions button:hover { background:#fafbf9; }
.quick-icon { width:39px; height:39px; border-radius:7px; background:#e4eee9; color:var(--green); display:grid; place-items:center; font-weight:800; }
.quick-actions span:last-child { display:grid; gap:3px; }.quick-actions small { color:var(--muted); }
.form-panel { background:#fff; border-top:1px solid var(--line); padding:28px; }
.invoice-form { display:grid; gap:20px; }
.tax-note { display:flex; gap:10px; padding:13px 15px; color:#655224; background:#fff8e6; border-left:3px solid #d9a72f; font-size:12px; line-height:1.5; }
.check-line { display:flex; align-items:flex-start; gap:9px; color:#4f5c57; font-size:13px; font-weight:600; }
.check-line input { width:18px; height:18px; accent-color:var(--green); margin:0; flex:none; }
.totals { margin-left:auto; width:min(100%,340px); border-top:1px solid var(--line); padding-top:12px; display:grid; gap:9px; }
.total-line { display:flex; justify-content:space-between; color:var(--muted); font-size:13px; }.total-line strong { color:var(--ink); }
.total-line.grand { border-top:1px solid var(--line); padding-top:11px; color:var(--ink); font-size:17px; font-weight:800; }
.form-actions { display:flex; justify-content:flex-end; gap:10px; }
.client-list { background:#fff; border-top:1px solid var(--line); }
.client-row { min-height:74px; padding:12px 17px; border-bottom:1px solid var(--line); display:grid; grid-template-columns:42px 1fr 1fr; gap:13px; align-items:center; }
.client-logo { width:40px; height:40px; border-radius:7px; background:#e4eee9; color:var(--green); display:grid; place-items:center; font-weight:800; }
.client-row div { display:grid; gap:3px; }.client-row span { color:var(--muted); font-size:12px; }
.profile-panel { background:#fff; border-top:1px solid var(--line); padding:28px; }
.profile-header { display:flex; align-items:center; gap:15px; padding-bottom:22px; border-bottom:1px solid var(--line); }
.profile-header .avatar { width:54px; height:54px; font-size:16px; }
.profile-header div { display:grid; gap:4px; }.profile-header span { color:var(--muted); font-size:13px; }
.detail-grid { display:grid; grid-template-columns:1fr 1fr; gap:0 35px; }
.detail-grid div { padding:17px 0; border-bottom:1px solid var(--line); display:grid; gap:5px; }
.detail-grid span { color:var(--muted); font-size:11px; }.detail-grid strong { font-size:13px; }
.admin-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.admin-stat { background:#fff; padding:22px; display:grid; gap:7px; }.admin-stat strong { font-size:25px; }.admin-stat span { color:var(--muted); font-size:11px; text-transform:uppercase; font-weight:750; }
.user-table .table-head,.user-table .table-row { grid-template-columns:1.3fr 1fr 1.5fr 90px 120px; }
.sheet-backdrop { position:fixed; inset:0; z-index:30; background:rgba(10,28,22,.46); display:grid; place-items:end center; animation:fade .18s ease; }
.sheet { width:min(650px,100%); max-height:94vh; overflow:auto; background:#fff; border-radius:10px 10px 0 0; padding:26px 30px 30px; animation:sheetUp .28s ease; }
@keyframes fade { from { opacity:0; } } @keyframes sheetUp { from { transform:translateY(30px); opacity:.6; } }
.sheet header { display:flex; align-items:start; justify-content:space-between; margin-bottom:23px; }.sheet h2 { margin-bottom:3px; }.sheet header p { color:var(--muted); margin:0; font-size:12px; }
.toast { position:fixed; left:50%; bottom:28px; transform:translateX(-50%); z-index:50; background:#14332c; color:#fff; padding:13px 18px; border-radius:6px; box-shadow:0 12px 30px rgba(0,0,0,.2); animation:toastIn .25s ease; }
@keyframes toastIn { from { transform:translate(-50%,12px); opacity:0; } }
.invoice-page { min-height:100vh; background:#e9ece8; padding:30px; }
.invoice-toolbar { max-width:800px; margin:0 auto 15px; display:flex; align-items:center; justify-content:space-between; }
.invoice-paper { width:800px; max-width:100%; min-height:1080px; margin:0 auto; padding:58px; background:#fff; box-shadow:0 8px 30px rgba(23,35,31,.12); }
.invoice-brand { display:flex; align-items:center; justify-content:space-between; padding-bottom:28px; border-bottom:2px solid var(--green); }
.invoice-brand h1 { font-size:38px; margin:0; color:var(--green); }.invoice-number { text-align:right; display:grid; gap:5px; }.invoice-number strong { font-size:17px; }.invoice-number span { color:var(--muted); font-size:12px; }
.invoice-parties { display:grid; grid-template-columns:1fr 1fr; gap:55px; padding:35px 0; }
.party { display:grid; align-content:start; gap:5px; }.party small { color:var(--muted); text-transform:uppercase; font-weight:750; margin-bottom:7px; }.party strong { font-size:15px; }.party span { font-size:13px; color:#4f5a56; }
.invoice-lines { width:100%; border-collapse:collapse; }.invoice-lines th { padding:11px 8px; border-bottom:1px solid var(--ink); text-align:left; font-size:10px; text-transform:uppercase; color:var(--muted); }.invoice-lines td { padding:18px 8px; border-bottom:1px solid var(--line); font-size:13px; vertical-align:top; }.invoice-lines th:last-child,.invoice-lines td:last-child { text-align:right; }
.invoice-totals { margin:30px 0 0 auto; width:300px; display:grid; gap:10px; }.invoice-totals div { display:flex; justify-content:space-between; font-size:13px; }.invoice-totals .grand { border-top:2px solid var(--green); padding-top:13px; font-size:18px; font-weight:800; }
.invoice-footer { margin-top:110px; padding-top:18px; border-top:1px solid var(--line); color:var(--muted); font-size:11px; line-height:1.5; }
.bottom-nav,.mobile-fab { display:none; }
@media(min-width:720px){ .sheet { align-self:center; border-radius:10px; } }
@media(max-width:900px){ .auth-layout{grid-template-columns:1fr}.auth-art{display:none}.auth-form-side{padding:35px max(24px,8vw)}.app-shell{display:block}.sidebar{display:none}.topbar{height:62px;padding:0 18px}.mobile-brand{display:block}.mobile-brand .brand{margin:0}.topbar-title{display:none}.workspace{padding:27px 18px 100px}.summary-band{grid-template-columns:1fr 1fr}.summary-intro{grid-column:1/-1}.metric{padding-left:18px}.admin-grid{grid-template-columns:1fr 1fr}.bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:20;background:rgba(255,255,255,.96);backdrop-filter:blur(15px);border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(4,1fr);padding:6px 8px calc(6px + env(safe-area-inset-bottom))}.bottom-nav button{border:0;background:transparent;min-height:49px;display:grid;place-items:center;gap:2px;color:#77817c;font-size:10px}.bottom-nav button.active{color:var(--green);font-weight:750}.table-head{display:none}.table-row{grid-template-columns:1fr auto;padding:13px 2px;gap:6px 12px}.table-row>*:nth-child(2){text-align:right}.table-row>*:nth-child(3){grid-column:1}.table-row>*:nth-child(4){grid-column:2;grid-row:2}.table-row>*:nth-child(5){grid-column:2;grid-row:1}.user-table .table-row{grid-template-columns:1fr auto}.user-table .table-row>*:nth-child(3){grid-column:1/-1}.invoice-page{padding:15px}.invoice-paper{padding:35px;min-height:auto}.invoice-toolbar{position:sticky;top:0;background:#e9ece8;padding:8px 0;z-index:2}}
@media(max-width:600px){.auth-form-side h1{font-size:29px}.brand{margin-bottom:38px}.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}.page-head{align-items:flex-start}.page-head .primary{font-size:0;width:46px;padding:0}.page-head .primary svg{width:20px}.summary-band{padding:24px 20px;gap:20px}.summary-intro h2{font-size:20px}.metric strong{font-size:23px}.quick-actions{grid-template-columns:1fr}.quick-actions button{min-height:70px;border-right:0;border-bottom:1px solid var(--line)}.form-panel{padding:20px 16px;margin:0 -18px}.client-row{grid-template-columns:42px 1fr}.client-row>div:last-child{grid-column:2}.detail-grid{grid-template-columns:1fr}.sheet{padding:18px 19px calc(25px + env(safe-area-inset-bottom))}.admin-grid{grid-template-columns:1fr 1fr}.admin-stat{padding:17px}.invoice-toolbar span{display:none}.invoice-paper{padding:24px 18px}.invoice-brand{align-items:flex-start}.invoice-brand h1{font-size:27px}.invoice-parties{grid-template-columns:1fr;gap:24px}.invoice-totals{width:100%}.invoice-footer{margin-top:60px}}
@media print{body{background:#fff}.invoice-page{padding:0;background:#fff}.invoice-toolbar{display:none}.invoice-paper{width:100%;min-height:0;box-shadow:none;margin:0;padding:35px}@page{size:A4;margin:0}}
@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}
