:root{--font-display:"Fraunces", Georgia, "Times New Roman", serif;--font-body:"IBM Plex Sans", -apple-system, "Segoe UI", sans-serif;--font-mono:"IBM Plex Mono", "SFMono-Regular", Consolas, monospace;--bg:#f6f3ec;--surface:#fff;--surface-2:#eee9dc;--border:#ddd4c0;--border-soft:#e7e0d0;--ink:#221e17;--ink-soft:#726a5a;--ink-faint:#a69c88;--accent:#2c5f5a;--accent-ink:#163b37;--accent-soft:#dceae6;--accent-strong:#1e4642;--good:#3f7d4b;--good-soft:#e1eee0;--warn:#a8752b;--warn-soft:#f3e7d2;--bad:#b33f3f;--bad-soft:#f5dfdd;--shadow:0 8px 24px -12px #221e1747, 0 2px 6px -2px #221e171f;--radius-s:6px;--radius-m:10px;--radius-l:16px}@media (prefers-color-scheme:dark){:root{--bg:#17181a;--surface:#1f2123;--surface-2:#26282b;--border:#37393c;--border-soft:#2c2e31;--ink:#ece7dc;--ink-soft:#a79e8c;--ink-faint:#6e6759;--accent:#63aba0;--accent-ink:#bfe6dd;--accent-soft:#213a38;--accent-strong:#8ac7bc;--good:#6fbf7c;--good-soft:#213328;--warn:#d9a24d;--warn-soft:#3a2e1b;--bad:#e28080;--bad-soft:#3a2222;--shadow:0 8px 28px -12px #0000008c, 0 2px 8px -2px #00000059}}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--ink);font-family:var(--font-body), -apple-system, "Segoe UI", sans-serif;-webkit-font-smoothing:antialiased;margin:0;font-size:14px;line-height:1.5}h1,h2,h3{font-family:var(--font-display), Georgia, serif;text-wrap:balance;letter-spacing:-.01em;margin:0;font-weight:600}a{color:var(--accent-strong);text-decoration:none}a:hover{text-decoration:underline}button{font-family:inherit}input,select,textarea{color:var(--ink);font-family:inherit;font-size:14px}::selection{background:var(--accent-soft)}.mono{font-family:var(--font-mono), "SFMono-Regular", Consolas, monospace;font-variant-numeric:tabular-nums}:focus-visible{outline:2px solid var(--accent-strong);outline-offset:2px}@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important}}.shell{min-height:100vh;display:flex}.sidebar{background:var(--surface-2);border-right:1px solid var(--border-soft);flex-direction:column;flex:none;width:216px;height:100vh;padding:20px 14px;display:flex;position:sticky;top:0;overflow-y:auto}.brand{align-items:center;gap:9px;padding:2px 8px 20px;display:flex}.brand-name{font-family:var(--font-display), serif;color:var(--ink);font-size:17px;font-weight:650}.nav{flex-direction:column;gap:2px;display:flex}.nav-item{border-radius:var(--radius-s);color:var(--ink-soft);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:10px;width:100%;padding:9px 10px;font-size:13.5px;font-weight:500;text-decoration:none;display:flex}.nav-item:hover{background:var(--border-soft);color:var(--ink);text-decoration:none}.nav-item.active{background:var(--accent-soft);color:var(--accent-ink)}.nav-item .ic{flex:none;width:17px;height:17px;display:flex}.nav-count{font-family:var(--font-mono), monospace;color:var(--ink-faint);margin-left:auto;font-size:11.5px}.nav-item.active .nav-count{color:var(--accent-ink);opacity:.75}.sidebar-foot{color:var(--ink-faint);margin-top:auto;padding:10px 8px 2px;font-size:11.5px}.version-badge{border:1px solid var(--border-soft);font-family:var(--font-mono), monospace;color:var(--ink-faint);cursor:pointer;background:0 0;border-radius:99px;align-items:center;gap:4px;margin-top:8px;padding:3px 8px;font-size:11px;display:inline-flex}.version-badge:hover{color:var(--accent-ink);border-color:var(--accent);background:var(--accent-soft)}.version-overlay{z-index:100;background:#00000059;align-items:flex-end;padding:24px;display:flex;position:fixed;inset:0}.version-modal{background:var(--surface);border-radius:var(--radius-l);width:100%;max-width:380px;max-height:min(70vh,560px);box-shadow:var(--shadow);flex-direction:column;display:flex;overflow:hidden}.version-modal-head{border-bottom:1px solid var(--border-soft);flex:none;justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.version-modal-head h3{font-family:var(--font-display), serif;margin:0;font-size:16px;font-weight:650}.version-modal-body{padding:6px 16px 16px;overflow-y:auto}.version-entry{border-bottom:1px solid var(--border-soft);padding:12px 0}.version-entry:last-child{border-bottom:none}.version-entry-head{align-items:baseline;gap:8px;margin-bottom:5px;display:flex}.version-entry-num{font-family:var(--font-mono), monospace;color:var(--accent-ink);font-size:13px;font-weight:700}.version-entry-date{color:var(--ink-faint);font-size:11.5px}.version-entry ul{flex-direction:column;gap:4px;margin:0;padding-left:18px;display:flex}.version-entry li{color:var(--ink-soft);font-size:13px;line-height:1.45}.main{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{z-index:5;background:var(--bg);border-bottom:1px solid var(--border-soft);align-items:center;gap:12px;padding:12px 14px;display:none;position:sticky;top:0}.content{flex:1;padding:22px 24px 60px}.page-head{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:20px;display:flex}.page-head h1{flex:none;font-size:20px}.topbar-search{flex:1;min-width:160px;max-width:380px}.topbar-search input{border-radius:var(--radius-m);border:1px solid var(--border);background:var(--surface);width:100%;color:var(--ink);padding:8px 12px}.topbar-search input::placeholder{color:var(--ink-faint)}.filter-select{border-radius:var(--radius-m);border:1px solid var(--border);background:var(--surface);color:var(--ink);padding:8px 10px;font-size:13px}.spacer{margin-left:auto}.split{align-items:flex-start;gap:20px;display:flex}.list-col{flex:1;min-width:0}.detail-col{background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius-l);width:420px;box-shadow:var(--shadow);flex:none}.btn{border-radius:var(--radius-m);border:1px solid var(--border);background:var(--surface);color:var(--ink);cursor:pointer;white-space:nowrap;align-items:center;gap:6px;padding:8px 14px;font-size:13.5px;font-weight:500;text-decoration:none;display:inline-flex}.btn:hover{background:var(--surface-2);text-decoration:none}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-strong);border-color:var(--accent-strong)}.btn-danger{color:var(--bad)}.btn-icon{padding:7px}.btn svg{width:15px;height:15px}.btn:disabled{opacity:.6;cursor:default}.tiles{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:22px;display:grid}.tile{background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius-m);padding:14px 16px}.tile-label{color:var(--ink-soft);text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px;font-size:11.5px}.tile-value{font-family:var(--font-display), serif;font-size:28px;font-weight:600}.tile-sub{color:var(--ink-faint);margin-top:3px;font-size:12px}.section-title{font-size:15px;font-weight:600;font-family:var(--font-display), serif;margin:26px 0 12px}.section-title:first-child{margin-top:0}.rowlist{border:1px solid var(--border-soft);border-radius:var(--radius-m);background:var(--surface);overflow:hidden}.row{border-bottom:1px solid var(--border-soft);color:inherit;align-items:center;gap:14px;padding:12px 16px;text-decoration:none;display:flex}.row:last-child{border-bottom:none}.row:hover{background:var(--surface-2);text-decoration:none}.row.selected{background:var(--accent-soft)}.row-main{flex:1;min-width:0}.row-title{white-space:nowrap;text-overflow:ellipsis;color:var(--ink);font-size:14px;font-weight:600;overflow:hidden}.row-sub{color:var(--ink-soft);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:12.5px;overflow:hidden}.row-meta{flex:none;align-items:center;gap:10px;display:flex}.row-col{width:96px;color:var(--ink-soft);text-align:left;flex:none;font-size:12.5px}.pill{white-space:nowrap;border-radius:99px;align-items:center;gap:5px;padding:2px 9px;font-size:11.5px;font-weight:600;display:inline-flex}.pill-dot{background:currentColor;border-radius:99px;width:6px;height:6px}.pill-active{background:var(--good-soft);color:var(--good)}.pill-prospect{background:var(--warn-soft);color:var(--warn)}.pill-inactive{background:var(--border-soft);color:var(--ink-faint)}.pill-offline{background:var(--bad-soft);color:var(--bad)}.pill-draft{background:var(--border-soft);color:var(--ink-faint)}.pill-sent{background:var(--accent-soft);color:var(--accent-ink)}.pill-accepted{background:var(--good-soft);color:var(--good)}.pill-rejected{background:var(--bad-soft);color:var(--bad)}.pill-currency{background:var(--accent-soft);color:var(--accent-ink);font-family:var(--font-mono), "SFMono-Regular", Consolas, monospace}.pill-expired{background:var(--warn-soft);color:var(--warn)}.pill-type-offer{background:var(--accent-soft);color:var(--accent-ink)}.pill-type-order{background:var(--good-soft);color:var(--good)}.pill-type-product{background:var(--accent-soft);color:var(--accent-ink)}.pill-type-service{background:var(--warn-soft);color:var(--warn)}.pill-open{background:var(--accent-soft);color:var(--accent-ink)}.pill-done{background:var(--good-soft);color:var(--good)}.pill-priority-low{background:var(--border-soft);color:var(--ink-faint)}.pill-priority-medium{background:var(--warn-soft);color:var(--warn)}.pill-priority-high{background:var(--bad-soft);color:var(--bad)}.pill-income{background:var(--good-soft);color:var(--good)}.pill-expense{background:var(--bad-soft);color:var(--bad)}.btn-task{flex:none;padding:6px 11px;font-size:12.5px}.btn-task svg{width:13px;height:13px}.btn-task-done{color:var(--good);border-color:var(--good-soft);background:var(--good-soft)}.btn-task-done:hover{background:var(--good);border-color:var(--good);color:#fff}.btn-task-reopen{color:var(--ink-soft)}.btn-task-reopen:hover{color:var(--ink)}.btn-task-reject{color:var(--bad);border-color:var(--bad-soft);background:var(--bad-soft)}.btn-task-reject:hover{background:var(--bad);border-color:var(--bad);color:#fff}.status-actions{flex:none;gap:8px;display:flex}.btn-status-reject{color:var(--bad);border-color:var(--bad-soft);background:var(--bad-soft)}.btn-status-reject:hover{background:var(--bad);border-color:var(--bad);color:#fff}.task-actions{flex:none;gap:6px;display:flex}.task-due{color:var(--ink-soft);font-size:12.5px}.task-due.overdue{color:var(--bad);font-weight:600}.tag{background:var(--surface-2);color:var(--ink-soft);font-size:11px;font-family:var(--font-mono), monospace;border-radius:6px;padding:2px 8px;display:inline-flex}.type-badge{color:var(--ink-soft);border:1px solid var(--border);border-radius:6px;padding:2px 7px;font-size:11.5px;text-decoration:none;display:inline-block}.empty{text-align:center;border:1px dashed var(--border);border-radius:var(--radius-l);color:var(--ink-soft);flex-direction:column;justify-content:center;align-items:center;padding:64px 24px;display:flex}.empty svg{width:34px;height:34px;color:var(--ink-faint);margin-bottom:14px}.empty h3{color:var(--ink);margin-bottom:6px;font-size:16px}.empty p{max-width:320px;margin:0 0 16px;font-size:13px}.detail-head{border-bottom:1px solid var(--border-soft);padding:20px 20px 16px}.detail-head-top{align-items:flex-start;gap:10px;display:flex}.detail-title{flex:1;min-width:0;font-size:19px}.detail-badges{flex-wrap:wrap;gap:6px;margin-top:9px;display:flex}.detail-actions{flex:none;gap:6px;display:flex}.detail-body{padding:16px 20px 24px}.field-grid{grid-template-columns:auto 1fr;gap:9px 14px;font-size:13px;display:grid}.field-label{color:var(--ink-faint);text-transform:uppercase;letter-spacing:.04em;padding-top:2px;font-size:11.5px}.field-value{color:var(--ink);word-break:break-word}.field-value.empty-val{color:var(--ink-faint);font-style:italic}.notes-block{background:var(--surface-2);border-radius:var(--radius-m);white-space:pre-wrap;color:var(--ink);margin-top:16px;padding:12px 14px;font-size:13px}.subhead{align-items:center;gap:8px;margin:22px 0 10px;display:flex}.subhead h3{text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);font-size:13px;font-family:var(--font-body);margin:0;font-weight:600}.subhead .btn{margin-left:auto;padding:5px 10px;font-size:12px}.mini-row{border-bottom:1px solid var(--border-soft);color:inherit;align-items:center;gap:10px;padding:9px 0;text-decoration:none;display:flex}.mini-row:last-child{border-bottom:none}.mini-row:hover{text-decoration:none}.mini-avatar{background:var(--accent-soft);width:28px;height:28px;color:var(--accent-ink);border-radius:99px;flex:none;justify-content:center;align-items:center;font-size:11.5px;font-weight:600;display:flex}.mini-main{flex:1;min-width:0}.mini-title{color:var(--ink);font-size:13px;font-weight:500}.mini-sub{color:var(--ink-soft);font-size:12px}.mini-avatar svg{width:14px;height:14px}.activity-item{border-bottom:1px solid var(--border-soft);gap:10px;padding:10px 0;display:flex}.activity-item:last-child{border-bottom:none}.activity-ic{background:var(--surface-2);width:26px;height:26px;color:var(--ink-soft);border-radius:7px;flex:none;justify-content:center;align-items:center;display:flex}.activity-ic svg{width:13px;height:13px}.activity-main{flex:1;min-width:0}.activity-top{align-items:baseline;gap:8px;display:flex}.activity-type{font-size:12.5px;font-weight:600}.activity-date{color:var(--ink-faint);font-size:11.5px;font-family:var(--font-mono), monospace}.activity-text{color:var(--ink);white-space:pre-wrap;margin-top:2px;font-size:13px}.activity-link{color:var(--ink-soft);margin-top:2px;font-size:11.5px}.quicklog{flex-wrap:wrap;align-items:flex-start;gap:8px;margin-top:8px;display:flex}.quicklog textarea{resize:vertical;border:1px solid var(--border);border-radius:var(--radius-s);background:var(--surface);min-width:180px;min-height:38px;color:var(--ink);flex:1;padding:8px 10px}.quicklog select,.quicklog input[type=date]{border:1px solid var(--border);border-radius:var(--radius-s);background:var(--surface);color:var(--ink);padding:8px}.quicklog input[type=date]{width:142px}.filter-chips{flex-wrap:wrap;gap:6px;margin-bottom:14px;display:flex}.chip{border:1px solid var(--border);background:var(--surface);color:var(--ink-soft);cursor:pointer;border-radius:99px;padding:5px 12px;font-size:12.5px;text-decoration:none}.chip:hover{background:var(--surface-2);text-decoration:none}.chip.active{background:var(--accent);border-color:var(--accent);color:#fff}.form-page{max-width:560px}.form-grid{flex-direction:column;gap:12px;display:flex}.form-row{flex-wrap:wrap;gap:12px;display:flex}.form-field{flex-direction:column;flex:1;gap:5px;min-width:180px;display:flex}.form-field label{color:var(--ink-soft);text-transform:uppercase;letter-spacing:.04em;font-size:11.5px}.form-field input,.form-field select,.form-field textarea{border:1px solid var(--border);border-radius:var(--radius-s);background:var(--surface);color:var(--ink);width:100%;padding:8px 10px}.form-field textarea{resize:vertical;min-height:64px}.form-actions{justify-content:flex-end;gap:8px;margin-top:18px;display:flex}.bank-accounts{flex-direction:column;gap:10px;display:flex}.bank-account-row{border:1px solid var(--border-soft);border-radius:var(--radius-m);background:var(--surface);padding:12px;position:relative}.bank-account-row .form-row:not(:last-child){margin-bottom:8px}.bank-account-remove{position:absolute;top:8px;right:8px}.bank-account-card{border:1px solid var(--border-soft);border-radius:var(--radius-m);background:var(--surface);margin-bottom:8px;padding:10px 12px}.bank-account-card-head{align-items:center;gap:8px;margin-bottom:4px;display:flex}.bank-account-card-lines{color:var(--ink-soft);flex-direction:column;gap:2px;font-size:12.5px;display:flex}.location-row{border:1px solid var(--border-soft);border-radius:var(--radius-m);background:var(--surface);padding:12px;position:relative}.location-row .form-row:not(:last-child){margin-bottom:8px}.location-remove{position:absolute;top:8px;right:8px}.location-card{border:1px solid var(--border-soft);border-radius:var(--radius-m);background:var(--surface);margin-bottom:8px;padding:10px 12px}.location-card-head{align-items:center;gap:8px;margin-bottom:4px;display:flex}.location-card-lines{color:var(--ink-soft);flex-direction:column;gap:2px;font-size:12.5px;display:flex}.form-error{background:var(--bad-soft);color:var(--bad);border-radius:var(--radius-s);padding:9px 12px;font-size:13px}.login-wrap{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-card{background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius-l);width:100%;max-width:360px;box-shadow:var(--shadow);padding:30px 28px}.login-brand{align-items:center;gap:10px;margin-bottom:22px;display:flex}.login-title{color:var(--ink-soft);margin-bottom:20px;font-size:15px}.unavailable-screen{min-height:100vh;color:var(--ink-soft);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:24px;display:flex}.unavailable-screen h1{color:var(--ink);font-size:20px}.unavailable-screen p{max-width:420px;font-size:13.5px}.unavailable-screen code{background:var(--surface-2);font-family:var(--font-mono), monospace;border-radius:4px;padding:2px 6px;font-size:12.5px}.menu-btn,.scrim{display:none}@media (max-width:880px){.sidebar{z-index:40;height:100vh;box-shadow:var(--shadow);transition:transform .2s;position:fixed;top:0;left:0;transform:translate(-100%)}.sidebar.open{transform:translate(0)}.menu-btn{display:inline-flex}.topbar{display:flex}.split{flex-direction:column}.detail-col{width:100%}.row-col{display:none}.content{padding:16px 14px 48px}.scrim.open{z-index:39;background:#00000059;display:block;position:fixed;inset:0}}.address-link{cursor:pointer;font:inherit;color:var(--accent-strong);text-align:left;background:0 0;border:none;margin:0;padding:0}.address-link:hover{text-decoration:underline}.map-scrim{display:none}.map-scrim.open{z-index:49;background:#00000059;display:block;position:fixed;inset:0}.map-drawer{background:var(--surface);border-left:1px solid var(--border-soft);width:420px;max-width:92vw;box-shadow:var(--shadow);z-index:50;flex-direction:column;transition:transform .22s;display:flex;position:fixed;top:0;bottom:0;right:0;transform:translate(100%)}.map-drawer.open{transform:translate(0)}.map-drawer-head{border-bottom:1px solid var(--border-soft);justify-content:space-between;align-items:center;gap:10px;padding:14px 16px;display:flex}.map-drawer-title{color:var(--ink);overflow-wrap:anywhere;font-size:13px;font-weight:600}.map-drawer-frame{border:none;flex:1;width:100%}.offer-items{border:1px solid var(--border-soft);border-radius:var(--radius-m);background:var(--surface);padding:10px}.offer-items-scroll{overflow-x:auto}.offer-items-head,.offer-item-row{grid-template-columns:1fr 90px 70px 100px 100px 28px;align-items:center;gap:8px;min-width:560px;display:grid}.offer-items-head{text-transform:uppercase;letter-spacing:.04em;color:var(--ink-faint);padding:0 2px 6px;font-size:11px}.offer-items-head span:not(:first-child),.offer-item-row span:not(:first-child){text-align:right}.offer-item-row{border-top:1px solid var(--border-soft);padding:5px 0;font-size:13px}.offer-item-row input,.offer-item-row select{border-radius:var(--radius-s);border:1px solid var(--border);background:var(--surface);width:100%;color:var(--ink);text-align:left;padding:6px 8px;font-size:13px}.offer-item-row input[type=number]{text-align:right}.offer-item-total{color:var(--ink-soft)}.offer-item-hs{color:var(--ink-faint);font-size:12px;text-align:left!important}.offer-total-row{border-top:1px solid var(--border);justify-content:flex-end;align-items:baseline;gap:16px;margin-top:4px;padding:10px 2px 2px;font-size:14.5px;font-weight:600;display:flex}.offer-totals{border-top:1px solid var(--border);flex-direction:column;gap:4px;margin-top:4px;padding:10px 2px 2px;display:flex}.offer-totals-row{color:var(--ink-soft);justify-content:flex-end;align-items:baseline;gap:16px;font-size:13px;display:flex}.offer-totals-grand{color:var(--ink);border-top:1px solid var(--border-soft);margin-top:2px;padding-top:6px;font-size:14.5px;font-weight:700}.ledger-head,.ledger-row{grid-template-columns:96px 74px 1fr 100px 60px 28px;align-items:center;gap:8px;min-width:560px;display:grid}.ledger-head{text-transform:uppercase;letter-spacing:.04em;color:var(--ink-faint);padding:0 2px 6px;font-size:11px}.ledger-head span:nth-child(4),.ledger-row span:nth-child(4){text-align:right}.ledger-row{border-top:1px solid var(--border-soft);padding:6px 0;font-size:13px}.ledger-amount{font-family:var(--font-mono), "SFMono-Regular", Consolas, monospace}.ledger-amount.income{color:var(--good)}.ledger-amount.expense{color:var(--bad)}.ledger-form{border-top:1px solid var(--border);flex-wrap:wrap;align-items:flex-end;gap:8px;margin-top:6px;padding:10px 2px 2px;display:flex}.ledger-form .form-field{flex:1;min-width:0}.ledger-form input,.ledger-form select{border-radius:var(--radius-s);border:1px solid var(--border);background:var(--surface);color:var(--ink);width:100%;padding:6px 8px;font-size:13px}.ledger-totals{border-top:1px solid var(--border);flex-direction:column;gap:4px;margin-top:4px;padding:10px 2px 2px;display:flex}.ledger-totals-row{color:var(--ink-soft);justify-content:flex-end;align-items:baseline;gap:16px;font-size:13px;display:flex}.ledger-totals-grand{border-top:1px solid var(--border-soft);margin-top:2px;padding-top:6px;font-size:14.5px;font-weight:700}.ledger-totals-grand.positive{color:var(--good)}.ledger-totals-grand.negative{color:var(--bad)}.avatar-circle{background:var(--accent-soft);color:var(--accent-ink);border-radius:99px;flex:none;justify-content:center;align-items:center;font-weight:600;display:flex;overflow:hidden}.avatar-circle img{object-fit:cover;width:100%;height:100%}.avatar-lg{width:56px;height:56px;font-size:20px}.avatar-upload{align-items:center;gap:14px;display:flex}.avatar-upload .avatar-circle{width:64px;height:64px;font-size:22px}.avatar-hint{color:var(--ink-faint);margin-top:4px;font-size:11.5px}.item-photo{border-radius:var(--radius-m);background:var(--accent-soft);color:var(--accent-ink);flex:none;justify-content:center;align-items:center;font-weight:600;display:flex;overflow:hidden}.item-photo img{object-fit:cover;width:100%;height:100%}.item-photo-lg{width:88px;height:88px}.company-logo{padding:8px}.company-logo img{object-fit:contain}.item-photo-upload{align-items:center;gap:14px;display:flex}.item-photo-upload .item-photo{width:72px;height:72px}.item-thumb{border-radius:var(--radius-s);width:34px;height:34px}
