:root{--bg: #f4f4f4;--panel: #fff;--ink: #16181d;--muted: #667085;--line: #e3e6ea;--accent: #C41F2C;--accent-ink: #fff;--green: #067647;--green-bg: #e7f6ee;--amber: #93530d;--amber-bg: #fdf3e2;--red: #b42318;--red-bg: #fdecea;--blue: #1d4ed8;--blue-bg: #e8effd;--purple: #6b21a8;--purple-bg: #f3e8ff;--gray-bg: #eef0f3;--radius: 8px;--shadow: 0 1px 2px rgba(16, 24, 40, .06);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px;color:var(--ink);background:var(--bg)}*{box-sizing:border-box}body{margin:0}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1{font-size:22px;margin:0;display:flex;align-items:center;gap:8px}h2{font-size:15px;margin:0}p{margin:6px 0}.muted{color:var(--muted)}.small{font-size:12px}.late,.due{color:var(--red);font-weight:600}.shell{display:flex;min-height:100vh}.side{width:210px;background:#2b2b2b;color:#d6d6d6;border-top:5px solid #C41F2C;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;flex-shrink:0}.brand{padding:14px 12px 16px}.brand img{display:block;width:100%;background:#fff;border-radius:6px;padding:6px 8px}.brand.big{padding:0 0 14px;text-align:center}.brand.big img{width:260px;max-width:100%;margin:0 auto;padding:0;background:none}.brand.big span{display:block;margin-top:6px;font-size:13px;letter-spacing:3px;text-transform:uppercase;color:#6e6e6e;font-weight:600}.side nav{display:flex;flex-direction:column;padding:0 10px;gap:2px}.side nav a{color:#d6d6d6;padding:9px 12px;border-radius:6px}.side nav a:hover{background:#3a3a3a;text-decoration:none;color:#fff}.side nav a.on{background:#c41f2c;color:#fff;box-shadow:inset 3px 0 #fff}.side-foot{margin-top:auto;padding:16px 20px;border-top:1px solid #3f3f3f;display:flex;justify-content:space-between;align-items:center}.who{display:flex;flex-direction:column;color:#fff}.who small{color:#a3a3a3;text-transform:capitalize}.side .link{color:#a3a3a3}.main{flex:1;min-width:0;display:flex;flex-direction:column}.top{display:flex;gap:10px;align-items:center;padding:10px 24px;background:var(--panel);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}.top .search{flex:1}.top .search input{width:100%;max-width:520px}.top .loc{width:auto}.menu-btn{display:none;background:none;border:0;font-size:20px;cursor:pointer}.content{padding:20px 24px 60px;max-width:1400px;width:100%}.page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;flex-wrap:wrap}.page-header .sub{color:var(--muted);margin-top:4px}.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow);margin-bottom:16px}.card-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;gap:8px}.card.sticky{position:sticky;top:72px}.two-col{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:16px;align-items:start}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.stack>.card:last-child{margin-bottom:0}.filters{display:flex;gap:10px;flex-wrap:wrap;align-items:end;margin-bottom:12px}.filters>input{min-width:260px;flex:1;max-width:420px}.filters select,.filters input[type=date],.filters input[type=month]{width:auto}.filters label{display:flex;gap:6px;align-items:center;color:var(--muted)}.filters .field{margin:0}input,select,textarea{font:inherit;color:inherit;border:1px solid #cfd4dc;border-radius:6px;padding:7px 10px;background:#fff;width:100%}input[type=checkbox]{width:auto}input:focus,select:focus,textarea:focus{outline:2px solid #f3c5c9;border-color:var(--accent)}.btn{font:inherit;border-radius:6px;padding:7px 14px;cursor:pointer;border:1px solid #cfd4dc;background:#fff;color:var(--ink);white-space:nowrap}.btn:hover{background:#f2f4f7}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn.primary:hover{background:#1e40af}.btn.danger{color:var(--red);border-color:#f4b4ae}.btn.ghost{border-color:transparent;background:transparent;color:var(--accent)}.btn:disabled{opacity:.55;cursor:default}.link{background:none;border:0;padding:0;color:var(--accent);cursor:pointer;font:inherit}.form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px 16px}.field{display:flex;flex-direction:column;gap:4px;margin-bottom:4px}.field.wide,.form-grid .wide{grid-column:1 / -1}.field .label{font-size:12px;font-weight:600;color:#344054}.field .hint{font-size:12px;color:var(--muted)}.field .err,.err{font-size:12px;color:var(--red)}.field.has-error input,.field.has-error select{border-color:var(--red)}.check{display:inline-flex;align-items:center;gap:6px;font-weight:400}.checks{display:flex;flex-wrap:wrap;gap:8px 18px}.inline{display:flex;gap:8px;align-items:center}.inline>select{width:80px;flex-shrink:0}.money{display:flex;align-items:center;border:1px solid #cfd4dc;border-radius:6px;background:#fff;padding-left:8px}.money span{color:var(--muted)}.money input{border:0;outline:none}.money:focus-within{outline:2px solid #f3c5c9;border-color:var(--accent)}.picker{display:flex;gap:8px}.results{list-style:none;margin:4px 0 0;padding:0;border:1px solid var(--line);border-radius:6px;max-height:260px;overflow:auto}.results button{width:100%;text-align:left;background:#fff;border:0;border-bottom:1px solid var(--line);padding:8px 10px;cursor:pointer;font:inherit}.results button:hover{background:#f5f8ff}.picked{display:flex;justify-content:space-between;align-items:center;border:1px solid var(--line);background:#f9fafb;border-radius:6px;padding:10px 12px;margin-bottom:14px}.adjustments{display:flex;flex-direction:column;gap:8px}.adjustments .inline input:first-child{flex:1}.adjustments .money{width:140px}.table-wrap{overflow-x:auto}.table{width:100%;border-collapse:collapse}.table th{text-align:left;font-size:12px;font-weight:600;color:var(--muted);padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap}.table td{padding:9px 10px;border-bottom:1px solid #f0f2f5;vertical-align:top}.table tr.clickable{cursor:pointer}.table tr.clickable:hover td{background:#f8faff}.num{text-align:right!important;white-space:nowrap}.row-actions{display:inline-flex;gap:4px}.row-actions .btn{padding:3px 8px;font-size:12px}.badge{display:inline-block;font-size:11px;font-weight:600;padding:2px 8px;border-radius:99px;white-space:nowrap;vertical-align:middle}.badge.green{color:var(--green);background:var(--green-bg)}.badge.amber{color:var(--amber);background:var(--amber-bg)}.badge.red{color:var(--red);background:var(--red-bg)}.badge.blue{color:var(--blue);background:var(--blue-bg)}.badge.purple{color:var(--purple);background:var(--purple-bg)}.badge.gray{color:#475467;background:var(--gray-bg)}.kv{display:grid;grid-template-columns:1fr 1fr;gap:12px 16px;margin:0}.kv dt{font-size:12px;color:var(--muted)}.kv dd{margin:2px 0 0}.note{margin-top:14px;background:#fffbea;border:1px solid #f5e3a1;border-radius:6px;padding:8px 12px}.note p{white-space:pre-line;margin:4px 0 0}.charges{width:100%;border-collapse:collapse}.charges td{padding:6px 0;border-bottom:1px solid #f0f2f5}.charges tr.discount td{color:var(--green)}.charges tr.sum td{border-top:1px solid var(--line)}.charges tr.total td{font-weight:700;font-size:15px}.charges tr.total.due td{color:var(--red)}.avail{padding:8px 10px;border-radius:6px;margin-bottom:8px;font-weight:600}.avail.ok{background:var(--green-bg);color:var(--green)}.avail.no{background:var(--red-bg);color:var(--red)}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:12px;margin-bottom:16px}.tiles.small{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));margin-bottom:8px}.tile{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:14px;display:flex;flex-direction:column;gap:2px;color:var(--muted);box-shadow:var(--shadow)}a.tile:hover{text-decoration:none;border-color:var(--accent)}.tile .n{font-size:24px;font-weight:700;color:var(--ink)}.tile.alert{border-color:#f4b4ae;background:var(--red-bg)}.tile.alert .n{color:var(--red)}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:14px;flex-wrap:wrap}.filters .tabs{border:0;margin:0}.tabs button{background:none;border:0;border-bottom:2px solid transparent;padding:8px 12px;cursor:pointer;font:inherit;color:var(--muted)}.tabs button.on{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.pager{display:flex;gap:12px;justify-content:center;align-items:center;margin-top:12px;color:var(--muted)}.audit{list-style:none;padding:0;margin:0;font-size:13px}.audit li{padding:4px 0;border-bottom:1px solid #f0f2f5}.empty{padding:24px;text-align:center;color:var(--muted)}.loading{padding:40px;text-align:center;color:var(--muted)}.error-box{background:var(--red-bg);color:var(--red);border:1px solid #f4b4ae;border-radius:6px;padding:10px 12px;margin-bottom:12px}.modal-backdrop{position:fixed;inset:0;background:#10182873;display:flex;align-items:flex-start;justify-content:center;padding:6vh 16px;z-index:50;overflow:auto}.modal{background:#fff;border-radius:10px;width:100%;max-width:560px;box-shadow:0 20px 40px #0003}.modal.wide{max-width:860px}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid var(--line)}.modal-head .x{background:none;border:0;font-size:22px;cursor:pointer;color:var(--muted)}.modal-body{padding:18px}.modal-foot{display:flex;justify-content:flex-end;gap:8px;padding:12px 18px;border-top:1px solid var(--line)}.toasts{position:fixed;bottom:20px;right:20px;display:flex;flex-direction:column;gap:8px;z-index:100}.toast{background:#101828;color:#fff;padding:10px 14px;border-radius:6px;max-width:380px;box-shadow:0 8px 20px #0003}.toast.error{background:var(--red)}.sigpad canvas{width:100%;height:140px;border:1px dashed #98a2b3;border-radius:6px;touch-action:none;background:#fff;display:block}.stripe-card{border:1px solid #cfd4dc;border-radius:6px;padding:10px}.login{min-height:100vh;display:flex;align-items:center;justify-content:center}.login form{width:360px;display:flex;flex-direction:column;gap:10px;padding:28px}@media(max-width:1000px){.two-col,.grid-2{grid-template-columns:1fr}.card.sticky{position:static}}@media(max-width:760px){.side{position:fixed;left:-220px;z-index:40;transition:left .2s}.side.open{left:0}.menu-btn{display:block}.top{padding:10px 12px;flex-wrap:wrap}.top .loc{display:none}.content{padding:14px 12px 60px}.kv{grid-template-columns:1fr}}button.tile{text-align:left;cursor:pointer;font:inherit}button.tile:hover{border-color:var(--accent)}.btn.primary:hover{background:#a51a25;border-color:#a51a25}.table tbody tr.clickable:hover td{background:#fbf1f2}.page-header h1{color:#2b2b2b}.content:has(.cal-page){max-width:none}.ac-fab{position:fixed;right:20px;bottom:20px;z-index:900;border:0;border-radius:999px;padding:10px 16px;background:#c15f3c;color:#fff;font-weight:600;box-shadow:0 4px 14px #0003;cursor:pointer}.ac-fab:hover{filter:brightness(1.08)}.ac-panel{position:fixed;right:20px;bottom:20px;z-index:900;width:min(440px,calc(100vw - 24px));height:min(640px,calc(100vh - 40px));background:#fff;border:1px solid #ddd;border-radius:12px;box-shadow:0 10px 40px #00000040;display:flex;flex-direction:column;overflow:hidden}.ac-head{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid #eee;background:#faf7f5}.ac-head-btns{display:flex;gap:12px}.ac-key{padding:10px 14px;border-bottom:1px solid #eee;background:#fffbea;display:grid;gap:6px}.ac-key-row{display:flex;gap:6px}.ac-key-row input{flex:1}.ac-body{flex:1;overflow-y:auto;padding:12px 14px;display:flex;flex-direction:column;gap:10px}.ac-hint div{margin-top:4px}.ac-msg{max-width:92%;padding:8px 11px;border-radius:10px;line-height:1.4;white-space:pre-wrap;word-wrap:break-word;font-size:14px}.ac-msg.user{align-self:flex-end;background:#1f6feb;color:#fff}.ac-msg.assistant{align-self:flex-start;background:#f2f2f2;white-space:normal}.ac-msg.err{background:#fde8e8;color:#9b1c1c}.ac-li{margin:2px 0}.ac-action{margin-top:6px;font-size:13px;color:#1a7f37}.ac-input{display:flex;gap:8px;padding:10px;border-top:1px solid #eee}.ac-input textarea{flex:1;resize:none;font:inherit}@media print{.ac-fab,.ac-panel{display:none}}.back-btn{background:#fff;border:1px solid #d0d5dd;border-radius:6px;padding:7px 12px;font:inherit;font-weight:600;cursor:pointer;white-space:nowrap;color:#1f2937}.back-btn:hover{background:#f3f4f6}.sync-stamp{font-size:11px;color:#6b7280;white-space:nowrap;margin-left:auto;margin-right:6px}@media(max-width:760px){.sync-stamp{display:none}}
