:root{--bg:#f4f6f1;--panel:#fff;--soft:#fafbf8;--hover:#f2f5ec;--line:#e3e7dc;--line-2:#cfd5c4;--ink:#191d13;--ink-2:#5b6350;--ink-3:#8d947f;--btn:#20281a;--btn-ink:#f6f8f2;--lime:#c4ee2b;--lime-dp:#7d9c14;--teal:#0f9877;--amber:#a9700a;--red:#c33a2e;--shadow:0 1px 2px #191d130d, 0 1px 8px #191d130a;--shadow-lg:0 8px 30px #191d1321;--mono:ui-monospace,"SF Mono","JetBrains Mono",Menlo,Consolas,monospace;--ui:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--bg);color:var(--ink);font:14px/1.55 var(--ui);-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:none}:focus-visible{outline:2px solid var(--lime-dp);outline-offset:2px;border-radius:4px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--line-2);border:2px solid var(--bg);border-radius:6px}::-webkit-scrollbar-track{background:0 0}.app{grid-template-columns:228px 1fr;height:100vh;display:grid}aside.side{background:var(--panel);border-right:1px solid var(--line);flex-direction:column;display:flex;overflow-y:auto}.logo{align-items:baseline;gap:8px;padding:18px 18px 14px;display:flex}.logo b{letter-spacing:-.015em;font-size:15px;font-weight:650}.logo em{font:600 9.5px/1 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--ink);background:var(--lime);border-radius:3px;padding:3px 5px;font-style:normal}.side-lbl{font:600 10px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);padding:16px 18px 7px}.side nav{flex-direction:column;gap:2px;padding:0 10px;display:flex}.side nav button{color:var(--ink-2);text-align:left;border-left:3px solid #0000;border-radius:8px;align-items:center;gap:10px;width:100%;padding:9px 11px;display:flex}.side nav button:hover{background:var(--hover);color:var(--ink)}.side nav button.on{background:var(--soft);color:var(--ink);border-left-color:var(--lime-dp);box-shadow:var(--shadow);font-weight:550}.ic{text-align:center;width:16px;color:var(--ink-3);font-size:13px}.side nav button.on .ic{color:var(--lime-dp)}.side nav .badge{font:600 11px/1 var(--mono);color:var(--ink-3);margin-left:auto}.side nav .badge.hot{color:var(--red)}.side-foot{border-top:1px solid var(--line);margin-top:auto;padding:14px}.actor{gap:6px;display:flex}.actor button{border:1px solid var(--line-2);color:var(--ink-2);border-radius:8px;flex:1;padding:7px 8px;font-size:12.5px}.actor button.on{background:var(--btn);border-color:var(--btn);color:var(--btn-ink);font-weight:500}main{flex-direction:column;display:flex;overflow:hidden}.top{background:var(--panel);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:12px;padding:14px 22px;display:flex}.top h1{letter-spacing:-.015em;margin:0;font-size:17px;font-weight:650}.top .sub{font:12px/1 var(--mono);color:var(--ink-3)}.search{background:var(--soft);border:1px solid var(--line);border-radius:9px;align-items:center;gap:8px;min-width:230px;margin-left:auto;padding:8px 12px;display:flex}.search:focus-within{border-color:var(--line-2);background:var(--panel)}.search input{background:0 0;border:none;outline:none;width:100%;font-size:13.5px}.search input::placeholder{color:var(--ink-3)}.search kbd{font:10px/1 var(--mono);color:var(--ink-3);border:1px solid var(--line-2);border-radius:4px;padding:3px 5px}.chips{background:var(--panel);border-bottom:1px solid var(--line);align-items:center;gap:7px;padding:12px 22px;display:flex;overflow-x:auto}.chip{border:1px solid var(--line-2);color:var(--ink-2);white-space:nowrap;background:var(--panel);border-radius:999px;padding:6px 12px;font-size:12.5px}.chip:hover{border-color:var(--ink-3);color:var(--ink)}.chip.on{background:var(--btn);border-color:var(--btn);color:var(--btn-ink);font-weight:500}.chips .sep{background:var(--line);flex-shrink:0;width:1px;height:20px;margin:0 5px}.chips .lbl{font:600 10px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);flex-shrink:0}.scroll{flex:1;padding-bottom:56px;overflow:auto}.wrap{padding:20px 22px}.note{color:var(--ink-2);max-width:700px;margin:0 0 18px;font-size:13.5px}.note b{color:var(--ink);font-weight:600}.tblbox{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:12px;margin:18px 22px;overflow:hidden}table{border-collapse:separate;border-spacing:0;width:100%;font-size:13.5px}thead th{z-index:5;background:var(--soft);text-align:left;border-bottom:1px solid var(--line);white-space:nowrap;cursor:pointer;font:600 10px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);-webkit-user-select:none;user-select:none;padding:11px 14px;position:sticky;top:0}thead th:hover{color:var(--ink-2)}thead th .dir{color:var(--lime-dp)}tbody td{border-bottom:1px solid var(--line);vertical-align:middle;padding:12px 14px}tbody tr:last-child td{border-bottom:none}tbody tr{cursor:pointer}tbody tr:hover{background:var(--hover)}tbody tr.sel{background:#f7fbe8}.who{align-items:center;gap:11px;display:flex}.av{width:32px;height:32px;font:600 11px/1 var(--ui);color:#fff;border-radius:9px;flex-shrink:0;place-items:center;display:grid}.nm{font-weight:550}.un{font:11.5px/1.4 var(--mono);color:var(--ink-3)}.m{font-family:var(--mono)}.life{font:600 9.5px/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;vertical-align:2px;border-radius:4px;margin-left:8px;padding:3px 6px}.pill{background:var(--soft);border:1px solid var(--line);color:var(--ink-2);white-space:nowrap;border-radius:7px;padding:4px 10px;font-size:12px;display:inline-block}.pill.auto{color:var(--teal);background:#eafaf4;border-color:#c3ece0}.tag{font:11px/1 var(--mono);background:var(--soft);border:1px solid var(--line);color:var(--ink-2);white-space:nowrap;border-radius:5px;padding:4px 7px}.age.warn{color:var(--amber);font-weight:600}.age.bad{color:var(--red);font-weight:600}.exp.soon{color:var(--amber);font-weight:600}.exp.dead{color:var(--red);font-weight:600}.rowbtn{opacity:0;color:var(--ink-3);border:1px solid #0000;border-radius:6px;padding:5px 9px}tbody tr:hover .rowbtn{opacity:1}.rowbtn:hover{color:var(--ink);background:var(--panel);border-color:var(--line-2)}.cardio{display:block}input[type=checkbox]{width:16px;height:16px;accent-color:var(--lime-dp);cursor:pointer}.bulk{background:var(--btn);color:var(--btn-ink);flex-wrap:wrap;align-items:center;gap:10px;padding:12px 22px;display:flex;position:sticky;bottom:0}.bulk b{font-family:var(--mono)}.bulk button{border:1px solid #f6f8f247;border-radius:7px;padding:7px 12px;font-size:12.5px}.bulk button:hover{background:#f6f8f21f}.zones{align-items:flex-start;gap:22px;padding:20px 22px;display:flex;overflow-x:auto}.zone-hd{font:600 10px/1 var(--mono);letter-spacing:.13em;text-transform:uppercase;color:var(--ink-3);align-items:center;gap:8px;margin-bottom:11px;display:flex}.zone-hd i{border-radius:3px;width:9px;height:9px}.cols{gap:11px;display:flex}.col{flex-shrink:0;width:214px}.col-hd{color:var(--ink-2);justify-content:space-between;padding:0 4px 8px;font-size:12.5px;font-weight:550;display:flex}.col-hd .n{font-family:var(--mono);color:var(--ink-3);font-weight:400}.col-body{background:#ecefe5;border-radius:11px;flex-direction:column;gap:8px;min-height:74px;padding:8px;display:flex}.col-body.drop{outline:2px dashed var(--lime-dp);outline-offset:-3px;background:#e6f4c9}.kc{background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--line-2);cursor:grab;box-shadow:var(--shadow);border-radius:4px 9px 9px 4px;padding:11px}.kc:hover{border-color:var(--line-2)}.kc.warn{border-left-color:var(--amber)}.kc.bad{border-left-color:var(--red)}.kc .r{justify-content:space-between;align-items:center;gap:6px;margin-top:8px;display:flex}.empty{text-align:center;color:var(--ink-3);padding:16px;font-size:12px}.kpis{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:24px;display:grid}.kpi{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:12px;padding:16px 18px}.kpi .l{font:600 10px/1 var(--mono);letter-spacing:.11em;text-transform:uppercase;color:var(--ink-3)}.kpi .v{font:600 27px/1.15 var(--mono);letter-spacing:-.03em;margin-top:9px;display:inline-block}.kpi .v.mark{background:linear-gradient(transparent 62%, var(--lime) 62%);margin-left:-3px;padding:0 3px}.kpi .v.bad{color:var(--red)}.kpi .v.warn{color:var(--amber)}.kpi .s{color:var(--ink-3);margin-top:4px;font-size:12px}h3.sec{font:600 10px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin:28px 0 13px}.card{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:12px;overflow:hidden}.fn{max-width:700px}.fnr{grid-template-columns:140px 1fr 96px;align-items:center;gap:14px;padding:5px 0;display:grid}.fnr .n{color:var(--ink-2);text-align:right;font-size:13px}.bar{background:#e9ece1;border-radius:7px;height:30px;position:relative;overflow:hidden}.bar i{background:var(--lime);border-radius:7px;height:100%;display:block}.bar i.auto{background:#8fdcc4}.bar span{line-height:30px;font:600 12.5px/30px var(--mono);color:var(--ink);position:absolute;top:0;left:11px}.cv{font:12.5px/1 var(--mono);color:var(--ink-3)}.cv.drop{color:var(--red);font-weight:600}.imp{max-width:960px;padding:20px 22px}textarea.paste{background:var(--panel);border:1px solid var(--line-2);width:100%;min-height:158px;font:12.5px/1.65 var(--mono);resize:vertical;box-shadow:var(--shadow);border-radius:11px;outline:none;padding:14px}textarea.paste:focus{border-color:var(--ink-3)}.btn{border:1px solid var(--line-2);color:var(--ink);background:var(--panel);box-shadow:var(--shadow);border-radius:9px;padding:9px 16px;font-size:13.5px}.btn:hover{border-color:var(--ink-3)}.btn.pri{background:var(--btn);border-color:var(--btn);color:var(--btn-ink);font-weight:550}.btn.pri:hover{background:#2c3624}.row-btns{flex-wrap:wrap;gap:10px;margin:14px 0 4px;display:flex}.map{grid-template-columns:repeat(auto-fill,minmax(216px,1fr));gap:10px;margin:14px 0;display:grid}.map .f{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:11px 13px}.map .f .h{font:11.5px/1.3 var(--mono);color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;margin-bottom:7px;overflow:hidden}select,input[type=text],input[type=email],input[type=number],input[type=date],input[type=password]{background:var(--panel);border:1px solid var(--line-2);border-radius:7px;outline:none;width:100%;padding:7px 9px;font-size:13px}select:focus,input:focus{border-color:var(--ink-3)}.msg{border-radius:10px;margin:14px 0;padding:12px 14px;font-size:13.5px}.msg.ok{color:#3d5410;background:#f2fadf;border:1px solid #d3e9a0}.msg.err{color:#8f2a20;background:#fdf0ee;border:1px solid #f0cdc8}.scrim{opacity:0;pointer-events:none;z-index:30;background:#191d13;transition:opacity .2s;position:fixed;inset:0}.scrim.on{opacity:.26;pointer-events:auto}.det{z-index:40;background:var(--panel);width:430px;max-width:96vw;box-shadow:var(--shadow-lg);flex-direction:column;transition:transform .22s;display:flex;position:fixed;top:0;bottom:0;right:0;transform:translate(101%)}.det.open{transform:none}.det-hd{padding:18px 20px 0}.det-hd .x{color:var(--ink-3);border-radius:8px;width:32px;height:32px;font-size:22px;line-height:1;position:absolute;top:15px;right:16px}.det-hd .x:hover{background:var(--hover);color:var(--ink)}.quick{gap:8px;margin:14px 0 0;display:flex}.quick a,.quick button{text-align:center;border:1px solid var(--line-2);color:var(--ink-2);border-radius:8px;flex:1;padding:8px;font-size:12.5px;text-decoration:none}.quick a:hover,.quick button:hover{border-color:var(--ink-3);color:var(--ink)}.dtabs{border-bottom:1px solid var(--line);gap:2px;padding:14px 20px 0;display:flex}.dtabs button{color:var(--ink-3);border-bottom:2px solid #0000;padding:10px 13px;font-size:13px}.dtabs button:hover{color:var(--ink-2)}.dtabs button.on{color:var(--ink);border-bottom-color:var(--lime-dp);font-weight:550}.det-body{flex:1;padding:18px 20px;overflow-y:auto}dl.facts{grid-template-columns:auto 1fr;gap:8px 16px;margin:0;font-size:13px;display:grid}dl.facts dt{color:var(--ink-3)}dl.facts dd{font-family:var(--mono);margin:0}.fld{grid-template-columns:112px 1fr;align-items:center;gap:10px;margin-bottom:9px;display:grid}.fld label{color:var(--ink-2);font-size:12.5px}.hint{color:var(--ink-3);margin:-3px 0 12px 122px;font-size:11.5px}.hint.warn{color:var(--amber)}textarea.note-in{border:1px solid var(--line-2);width:100%;min-height:78px;font:13px/1.5 var(--ui);resize:vertical;border-radius:9px;outline:none;padding:10px}.pay{border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:10px;padding:11px 0;font-size:13px;display:flex}.pay .d{font:11.5px/1.4 var(--mono);color:var(--ink-3);margin-top:2px;display:block}.pay .a{font:600 14px/1 var(--mono)}.paybox{background:var(--soft);border:1px solid var(--line);border-radius:11px;margin-top:14px;padding:13px}.row2{grid-template-columns:1fr 1fr;gap:9px;margin-bottom:9px;display:grid}.totals{font:13px/1.4 var(--mono);color:var(--ink-2);flex-wrap:wrap;gap:14px;margin-bottom:12px;display:flex}.totals b{color:var(--ink);font-weight:600}.tl{padding-left:20px;position:relative}.tl:before{content:"";background:var(--line-2);width:1px;position:absolute;top:6px;bottom:6px;left:4px}.ev{margin-bottom:15px;position:relative}.ev:before{content:"";background:var(--line-2);border:2px solid var(--panel);border-radius:50%;width:9px;height:9px;position:absolute;top:5px;left:-20px}.ev.in:before{background:var(--teal)}.ev.out:before{background:var(--lime-dp)}.ev.sys:before{background:var(--amber)}.ev .t{font:11px/1.4 var(--mono);color:var(--ink-3)}.ev .b{margin-top:2px;font-size:13px}.det-acts{border-top:1px solid var(--line);background:var(--soft);flex-wrap:wrap;gap:8px;padding:14px 20px;display:flex}.det-acts button{border:1px solid var(--line-2);background:var(--panel);border-radius:8px;padding:8px 13px;font-size:13px}.det-acts button:hover{border-color:var(--ink-3)}.det-acts button.pri{background:var(--btn);border-color:var(--btn);color:var(--btn-ink);font-weight:550}.det-acts button.dng:hover{border-color:var(--red);color:var(--red)}.modal{z-index:60;place-items:center;padding:20px;display:none;position:fixed;inset:0}.modal.on{display:grid}.modal .bg{background:#191d134d;position:absolute;inset:0}.modal .box{background:var(--panel);box-shadow:var(--shadow-lg);border-radius:14px;width:100%;max-width:400px;padding:22px;position:relative}.modal h4{margin:0 0 16px;font-size:16px;font-weight:650}.modal .f{margin-bottom:13px}.modal .f label{color:var(--ink-2);margin-bottom:5px;font-size:12.5px;display:block}.modal textarea{border:1px solid var(--line-2);width:100%;min-height:76px;font:13px/1.5 var(--ui);resize:vertical;border-radius:8px;outline:none;padding:9px}.modal .acts{justify-content:flex-end;gap:9px;margin-top:18px;display:flex}.toast{z-index:70;background:var(--btn);color:var(--btn-ink);box-shadow:var(--shadow-lg);opacity:0;pointer-events:none;border-radius:10px;padding:11px 18px;font-size:13.5px;transition:all .22s;position:fixed;bottom:22px;left:50%;transform:translate(-50%,80px)}.toast.on{opacity:1;transform:translate(-50%)}.tgbar{color:#7a4f06;background:#fdf2dd;border-bottom:1px solid #f0d9a8;flex-wrap:wrap;align-items:center;gap:12px;padding:11px 22px;font-size:13px;display:flex}.tgbar .btn{padding:6px 13px;font-size:12.5px}.lf{text-align:left;flex-direction:column;gap:12px;margin-bottom:16px;display:flex}.lf label{display:block}.lf label span{color:var(--ink-2);margin-bottom:5px;font-size:12.5px;display:block}.linky{width:100%;color:var(--ink-3);border-radius:7px;margin-top:14px;padding:6px;font-size:13px;display:block}.linky:hover{color:var(--ink);background:var(--hover)}.burger{color:var(--ink-2);border-radius:7px;padding:4px 8px;font-size:18px;display:none}.side-scrim{opacity:.26;z-index:45;background:#191d13;display:none;position:fixed;inset:0}@media (hover:none),(pointer:coarse){.rowbtn{opacity:1;color:var(--ink-2);border-color:var(--line)}tbody tr:hover{background:0 0}}@media (width<=900px){.app{grid-template-columns:1fr}aside.side{z-index:50;width:250px;box-shadow:var(--shadow-lg);transition:transform .2s;position:fixed;top:0;bottom:0;left:0;transform:translate(-101%)}aside.side.open{transform:none}.side-scrim,.burger{display:block}.search{flex:100%;order:3;min-width:0;margin-left:0}.tblbox{margin:14px}.hide-sm{display:none}.fld{grid-template-columns:96px 1fr}.hint{margin-left:106px}.tblbox,.card{-webkit-overflow-scrolling:touch;overflow-x:auto}thead th{position:static}.det{width:100%;max-width:none}.imp{padding:16px 14px}.fnr{grid-template-columns:104px 1fr 54px;gap:9px}.fnr .n{font-size:12px}}@media (width<=560px){.app{height:100dvh}.top{gap:9px;padding:11px 14px}.top h1{font-size:16px}.top .sub{display:none}.chips{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;gap:7px;padding:9px 14px;overflow-x:auto}.chips::-webkit-scrollbar{display:none}.chips .chip{flex-shrink:0}.wrap{padding:16px 14px}.kpis{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:9px}.kpi{padding:13px 14px}.kpi .v{font-size:23px}.zones{gap:14px;padding:14px}.bulk{padding:11px 14px}.modal .box{border-radius:12px;padding:20px 16px}.login{padding:14px}.login .box{padding:24px 20px}tbody td,thead th{padding:10px 11px}input,select,textarea{font-size:16px}.toast{width:auto;left:14px;right:14px;transform:translateY(80px)}.toast.on{transform:none}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}.login{place-items:center;min-height:100vh;padding:24px;display:grid}.login .box{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow-lg);text-align:center;border-radius:14px;width:100%;max-width:380px;padding:32px}.login .logo{justify-content:center;padding:0 0 18px}.login p{color:var(--ink-2);margin:0 0 22px;font-size:13.5px}.login .err{color:#8f2a20;background:#fdf0ee;border:1px solid #f0cdc8;border-radius:10px;margin-bottom:16px;padding:12px 14px;font-size:13px}@keyframes crm-pulse{0%,to{opacity:1}50%{opacity:.45}}.skel{background:var(--line);border-radius:6px;height:12px;animation:1.4s ease-in-out infinite crm-pulse}.skel-row{border-bottom:1px solid var(--line);align-items:center;gap:11px;padding:12px 14px;display:flex}.skel-av{background:var(--line);border-radius:9px;flex-shrink:0;width:32px;height:32px;animation:1.4s ease-in-out infinite crm-pulse}.stale{color:var(--amber)}.money-net{font:600 13px/1 var(--mono)}
