:root{--navy: #1b2a4a;--navy-soft: #2c3f68;--bg: #f4f1ea;--card: #fffdf8;--sand: #ede7da;--line: #d9d2c0;--text: #1d2433;--muted: #6b6f7b;--danger: #b3261e;--danger-bg: #fbe9e7;--ok: #1f7a4d;--ok-bg: #e4f3ea;--warn: #8a5a00;--warn-bg: #fdf1d6;--radius: 8px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}h1{font-size:1.5rem;margin:0 0 .25rem}h2{font-size:1.15rem;margin:0 0 .75rem}h3{font-size:1rem;margin:1.25rem 0 .5rem}a{color:var(--navy)}.muted{color:var(--muted)}.right{text-align:right}.nowrap{white-space:nowrap}.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.row{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}.row.spread{justify-content:space-between}.stack>*+*{margin-top:.75rem}.grow{flex:1}.topbar{background:var(--navy);color:#fff;padding:.6rem 1rem;display:flex;gap:1rem;align-items:center;flex-wrap:wrap}.topbar .brand{font-weight:700;letter-spacing:.2px;color:#fff;text-decoration:none}.topbar .spacer{flex:1}.topbar a,.topbar button.link{color:#dfe6f5;background:none;border:0;cursor:pointer;font:inherit;text-decoration:none;padding:0}.topbar a:hover,.topbar button.link:hover{color:#fff;text-decoration:underline}.install-tip{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;background:var(--sand);border-bottom:1px solid var(--line);padding:.5rem 1rem;font-size:.9rem}.install-tip button.link{background:none;border:0;padding:0;color:var(--muted);cursor:pointer;text-decoration:underline;font:inherit;margin-left:auto}.page{max-width:1100px;margin:0 auto;padding:1.25rem 1rem 3rem}.footer{text-align:center;color:var(--muted);font-size:.8rem;padding:1rem}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1rem}.card+.card{margin-top:1rem}.grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}table{width:100%;border-collapse:collapse;background:var(--card)}th,td{padding:.45rem .6rem;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}th{font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:var(--sand)}tr.clickable{cursor:pointer}tr.clickable:hover td{background:#f7f2e6}tr.total td{font-weight:700;border-top:2px solid var(--navy);background:var(--sand)}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius)}.table-wrap table{border:0}.table-wrap tr:last-child td{border-bottom:0}.page:has(.wide-page){max-width:none}.scroll-box{overflow:auto;height:calc(100vh - 11rem);min-height:18rem;min-width:0}.scroll-box.fit{height:auto;min-height:0;max-height:calc(100vh - 16rem)}.scroll-box thead{position:sticky;top:0;z-index:2}.scroll-box table{width:100%}.scroll-box table{font-size:.9rem}.scroll-box th,.scroll-box td{padding:.35rem .4rem}.scroll-box th{font-size:.72rem;letter-spacing:.02em}.scroll-box th.col-status{min-width:9rem}.scroll-box th.col-relation{min-width:13rem}.scroll-box tr.filters input,.scroll-box tr.filters select{min-width:0}.scroll-box th.grow,.scroll-box td.grow{width:100%}.scroll-box td.ellipsis{width:100%;max-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tabs{display:flex;gap:.25rem;border-bottom:2px solid var(--line);margin:1rem 0;flex-wrap:wrap}.tabs a{padding:.5rem .9rem;text-decoration:none;color:var(--muted);border-bottom:3px solid transparent;margin-bottom:-2px;font-weight:600}.tabs a:hover{color:var(--navy)}.tabs a.active{color:var(--navy);border-bottom-color:var(--navy)}label{display:block;font-size:.85rem;font-weight:600;margin-bottom:.2rem}input,select,textarea{font:inherit;padding:.4rem .55rem;border:1px solid #bdb59f;border-radius:6px;background:#fff;color:var(--text);max-width:100%}input:focus,select:focus,textarea:focus{outline:2px solid var(--navy-soft);outline-offset:0}input[type=checkbox]{width:auto}textarea{width:100%;min-height:4rem}.field{min-width:0}.field input,.field select{width:100%}.form-grid{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.hint{font-size:.8rem;color:var(--muted);margin-top:.15rem}button,.button{font:inherit;font-weight:600;padding:.45rem .9rem;border-radius:6px;cursor:pointer;border:1px solid var(--navy);background:var(--navy);color:#fff;text-decoration:none;display:inline-block}button:hover:not(:disabled),.button:hover{background:var(--navy-soft)}button:disabled{opacity:.45;cursor:not-allowed}button.secondary,.button.secondary{background:transparent;color:var(--navy)}button.secondary:hover:not(:disabled){background:var(--sand)}button.danger{background:var(--danger);border-color:var(--danger)}button.small{padding:.2rem .55rem;font-size:.85rem}.notice{padding:.6rem .8rem;border-radius:6px;margin:.75rem 0;white-space:pre-line}.notice.error{background:var(--danger-bg);color:var(--danger);border:1px solid #f0b8b2}.notice.ok{background:var(--ok-bg);color:var(--ok);border:1px solid #b6dcc4}.notice.info{background:var(--sand);color:var(--text);border:1px solid var(--line)}.badge{display:inline-block;font-size:.72rem;font-weight:700;padding:.1rem .5rem;border-radius:999px;background:var(--sand);color:var(--navy)}.badge.warn{background:var(--warn-bg);color:var(--warn)}.badge.ok{background:var(--ok-bg);color:var(--ok)}.badge.off{background:#e6e6e6;color:#555}.company .two-col>.card{margin-top:0}.company h3{margin:0 0 .6rem;font-size:1rem}.company details.more{margin-top:.5rem;font-size:.85rem;color:var(--muted)}.company details.more summary{cursor:pointer}.save-bar{display:flex;justify-content:flex-end;align-items:center;gap:.75rem;position:sticky;bottom:0;background:var(--bg);padding:.75rem 0;border-top:1px solid var(--line)}.amount-link{background:none;border:0;padding:0;font:inherit;color:var(--navy);cursor:pointer;text-decoration:underline dotted}.amount-link:hover{text-decoration:underline}@media print{.amount-link{text-decoration:none;color:inherit}}.sort{background:none;border:0;padding:0;font:inherit;font-weight:700;color:inherit;cursor:pointer;text-align:inherit}.sort:hover{text-decoration:underline}tr.filters th{background:var(--sand);padding:.3rem .4rem;font-weight:400}tr.filters input,tr.filters select{width:100%;min-width:6rem;font-size:.85rem;padding:.25rem .35rem}.group-head td{background:var(--sand);font-weight:700}.subtotal td{font-weight:600;border-top:1px solid var(--line)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#141c308c;display:flex;align-items:flex-start;justify-content:center;padding:3vh .75rem;overflow-y:auto;z-index:50}.modal{background:var(--card);border-radius:10px;width:100%;max-width:860px;padding:1.1rem 1.25rem 1.25rem;box-shadow:0 12px 40px #0000004d}.modal.narrow{max-width:480px}.overlay.fullscreen{padding:0}.modal.fullscreen{max-width:none;width:100vw;height:100vh;border-radius:0;display:flex;flex-direction:column;padding:.7rem 1rem .9rem}.modal.fullscreen .modal-head{margin-bottom:.5rem}.form-grid.invoice-head{grid-template-columns:minmax(14rem,2.4fr) minmax(8.5rem,1fr) minmax(8.5rem,1fr) minmax(8rem,1fr)}@media (max-width: 800px){.form-grid.invoice-head{grid-template-columns:1fr 1fr}}table.invoice-lines .amount{min-width:0}table.invoice-lines th:nth-child(1),table.invoice-lines td:nth-child(1){width:100%}table.invoice-lines th:nth-child(3),table.invoice-lines td:nth-child(3){min-width:5.5rem}.split{--split: 42%;flex:1;min-height:0;display:grid;grid-template-columns:var(--split) 10px minmax(0,1fr);gap:0;align-items:stretch}.split-preview{height:100%;min-height:0;border:1px solid var(--line);border-radius:var(--radius);background:var(--sand);overflow:hidden}.split-preview iframe,.split-preview img{display:block;width:100%;height:100%;border:0;object-fit:contain}.split>form{height:100%;min-height:0;overflow-y:auto;padding:0 .25rem .5rem .75rem}.split-handle{cursor:col-resize;display:flex;align-items:center;justify-content:center;touch-action:none;border-radius:4px}.split-handle:before{content:"";width:4px;height:3.5rem;border-radius:2px;background:var(--line)}.split-handle:hover:before,.split-handle:focus-visible:before,.split.dragging .split-handle:before{background:var(--navy-soft)}.split.dragging{-webkit-user-select:none;user-select:none;cursor:col-resize}.split.dragging iframe{pointer-events:none}.split table.lines td:nth-child(1){min-width:8rem!important}.split table.lines td:nth-child(4){min-width:6.5rem!important}.split table.lines td:nth-child(5){min-width:8rem!important}@media (max-width: 1000px){.modal.fullscreen{height:auto;min-height:100vh}.split{display:block}.split-preview{height:60vh;margin-bottom:1rem}.split>form{height:auto;overflow:visible;padding:0}.split-handle{display:none}}.floating-window{position:fixed;z-index:60;max-height:92vh;display:flex;flex-direction:column;background:var(--card);border:1px solid var(--navy-soft);border-radius:10px;box-shadow:0 10px 34px #00000059;outline:none}.floating-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.5rem .75rem;background:var(--navy);color:#fff;border-radius:9px 9px 0 0;cursor:move;-webkit-user-select:none;user-select:none;touch-action:none}.floating-head .close{background:none;border:0;color:#fff;font-size:1.3rem;line-height:1;cursor:pointer}.floating-body{padding:.75rem .9rem .9rem;overflow-y:auto}.floating-body form>.row:last-child{position:sticky;bottom:-.9rem;background:var(--card);padding:.5rem 0 .9rem;margin-top:.25rem}.modal-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.75rem}.modal-head h2{margin:0}.close{background:none;border:0;color:var(--muted);font-size:1.5rem;line-height:1;padding:0 .25rem}.close:hover:not(:disabled){background:none;color:var(--text)}.lines td{padding:.25rem}.lines input,.lines select{width:100%}.lines .amount{text-align:right;min-width:7rem}.totals{display:flex;gap:1.5rem;justify-content:flex-end;flex-wrap:wrap;padding:.6rem .25rem;font-variant-numeric:tabular-nums}.totals .bad{color:var(--danger);font-weight:700}.totals .good{color:var(--ok);font-weight:700}.login{max-width:380px;margin:8vh auto}.login h1{text-align:center}.two-col{display:grid;gap:1.25rem;grid-template-columns:1fr 1fr}@media (max-width: 760px){.two-col{grid-template-columns:1fr}}.app-layout{display:flex;min-height:100vh;align-items:flex-start}.app-main{flex:1;min-width:0}.sidebar{width:230px;flex-shrink:0;background:var(--navy);color:#fff;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;overflow:hidden}.side-head{padding:1.2rem 1.2rem 1rem;border-bottom:1px solid rgba(255,255,255,.15);flex-shrink:0}.side-brand{display:block;color:#fff;text-decoration:none;font-weight:700;font-size:1.1rem;line-height:1.2}.side-brand small{display:block;font-weight:400;font-size:.75rem;color:#ffffffa6;margin-top:2px}.side-logo{display:block;background:#fff;border-radius:6px;padding:6px 8px}.side-logo img{display:block;max-width:100%;max-height:64px;margin:0 auto}.side-toggle{display:none}.side-nav{flex:1;overflow-y:auto;padding:.5rem 0}.side-nav a{display:block;padding:.6rem 1.2rem;color:#ffffffbf;text-decoration:none;font-size:.93rem;border-left:3px solid transparent}.side-nav a:hover{color:#fff;background:#ffffff0f}.side-nav a.active{color:#fff;background:#ffffff1f;border-left-color:#c9a24a;font-weight:600}.side-group-head{display:flex;justify-content:space-between;align-items:center;width:100%;background:none;border:0;border-left:3px solid transparent;padding:.6rem 1.2rem;font:inherit;font-size:.93rem;color:#ffffffbf;cursor:pointer;text-align:left}.side-group-head:hover{color:#fff;background:#ffffff0f}.side-group-head.has-active{color:#fff}.side-nav a.sub{padding-left:2.2rem;font-size:.88rem}.side-section{margin:.9rem 1.2rem .3rem;padding-top:.8rem;border-top:1px solid rgba(255,255,255,.15);font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:#ffffff8c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.side-foot{padding:.9rem 1.2rem 1rem;border-top:1px solid rgba(255,255,255,.15);flex-shrink:0;font-size:.85rem}.side-user{color:#ffffffbf;margin-bottom:.4rem}.side-foot button.link{background:none;border:0;padding:0;color:#dfe6f5;cursor:pointer;font:inherit}.side-foot button.link:hover{color:#fff;text-decoration:underline}.side-version{margin-top:.8rem;font-size:.7rem;color:#fff6}@media (max-width: 800px){.app-layout{display:block}.sidebar{width:100%;height:auto;position:static;overflow:visible}.side-head{display:flex;justify-content:space-between;align-items:center;padding:.7rem 1rem;border-bottom:0}.side-toggle{display:inline-block;background:#ffffff1f;color:#fff;border:0;border-radius:6px;padding:.4rem .9rem;font:inherit;cursor:pointer}.side-nav,.side-foot{display:none}.sidebar.open .side-nav{display:block;border-top:1px solid rgba(255,255,255,.15);max-height:70vh}.sidebar.open .side-foot{display:block}}.print-only{display:none}@page{margin:0}@media print{.topbar,.tabs,.no-print,.footer,.sidebar{display:none!important}.print-only{display:block!important}.app-layout{display:block}body{background:#fff;padding:14mm 16mm}.page{max-width:none;padding:0}.scroll-box,.scroll-box.fit{height:auto;max-height:none!important;overflow:visible}.page-break{break-before:page;page-break-before:always;margin-top:0!important;padding-top:6em}}.install-help{max-width:420px;margin:1.25rem auto 0;padding:.9rem 1.1rem;font-size:1.05rem;line-height:1.45;background:var(--sand);border:2px solid var(--navy);border-radius:var(--radius)}.install-help summary{cursor:pointer;font-weight:700;font-size:1.15rem;color:var(--navy)}.install-help strong{display:block;margin-top:.6rem;font-size:1.05rem}.install-help ol{margin:.5rem 0 .8rem 1.3rem;padding:0}.install-help li{margin-bottom:.4rem}.install-icon{vertical-align:middle;border:1px solid var(--line);border-radius:4px;padding:3px;background:#fff;width:28px;height:28px}
