:root{--bg: #f4f6fa;--card: #fff;--ink: #0f172a;--muted: #64748b;--line: #e6e9ef;--soft: #f8fafc;--accent: #2563eb;--accent-soft: #eff4ff;--good: #059669;--bad: #dc2626;--warn: #d97706;--side: #0f172a;--radius: 14px}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.45 Inter,system-ui,-apple-system,Segoe UI,sans-serif}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1{font-size:24px;margin:2px 0;letter-spacing:-.02em}h3{font-size:15px;margin:0 0 12px;font-weight:600}h4.sub{margin:18px 0 8px;font-size:13px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.muted{color:var(--muted)}.small{font-size:12.5px}.tiny{font-size:11px}p{margin:0}.neg{color:var(--bad)!important}.pos{color:var(--good)}.warn{color:var(--warn)}.r{text-align:right}td.r{white-space:nowrap}.c{text-align:center}.big{font-weight:700}.pad{padding:12px 18px}.layout{display:flex;min-height:100vh}aside{width:236px;flex:none;background:var(--side);color:#cbd5e1;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{display:flex;gap:10px;align-items:center;padding:20px 18px}.brand span{width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,#3b82f6,#10b981);color:#fff;display:grid;place-items:center;font-weight:700;font-size:18px}.brand b{display:block;color:#fff;font-size:14px}.brand small{color:#94a3b8;font-size:12px}.brand.big{margin-bottom:18px;padding:0}.brand.big b{color:var(--ink);font-size:18px}nav{flex:1;padding:6px 10px;display:flex;flex-direction:column;gap:2px}nav a{color:#cbd5e1;padding:9px 12px;border-radius:9px;display:flex;gap:10px;align-items:center;font-weight:500}nav a i{font-style:normal;width:18px;text-align:center;opacity:.8}nav a:hover{background:#1e293b;text-decoration:none;color:#fff}nav a.active{background:#1e3a8a;color:#fff}.me{padding:16px 18px;border-top:1px solid #1e293b}.me b{display:block;color:#fff;font-size:13px}.me small{color:#94a3b8;font-size:12px}.me div{display:flex;gap:12px;margin-top:6px}.me .link{color:#93c5fd}main{flex:1;min-width:0}.page{padding:26px 30px 60px;max-width:1500px}.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:20px;flex-wrap:wrap}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}input,select,textarea{font:inherit;border:1px solid #d5dae3;border-radius:9px;padding:7px 10px;background:#fff;color:var(--ink);outline:none}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #2563eb22}input:disabled,select:disabled{background:var(--soft);color:var(--muted)}input.search{width:280px}input.inline{border-color:transparent;background:transparent;width:100%;padding:4px 6px}input.inline:hover{border-color:#d5dae3}.btn{font:inherit;font-weight:500;border:1px solid #d5dae3;background:#fff;border-radius:9px;padding:7px 14px;cursor:pointer;color:var(--ink)}.btn:hover{background:var(--soft)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{background:#1d4ed8}.btn:disabled{opacity:.5;cursor:default}.btn.sm{padding:5px 11px;font-size:13px}.btn.full{width:100%;padding:10px;margin-top:6px}.icon-btn{border:0;background:transparent;cursor:pointer;padding:4px 6px;border-radius:6px;color:var(--muted)}.icon-btn:hover{background:#f1f5f9;color:var(--ink)}.link{border:0;background:none;padding:0;color:var(--accent);cursor:pointer;font:inherit}.field{display:flex;flex-direction:column;gap:5px;margin-bottom:12px}.field>span{font-size:12.5px;color:var(--muted);font-weight:500}.field small{color:var(--muted);font-size:11.5px}.check{display:flex;gap:8px;align-items:center;margin:6px 0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.error{background:#fef2f2;color:var(--bad);padding:9px 12px;border-radius:9px;margin-top:8px}.ok-box{background:#ecfdf5;padding:10px 12px;border-radius:9px;margin-top:10px}.month-pick{display:flex;flex-direction:column;gap:2px}.month-pick span{font-size:11px;color:var(--muted)}.tabs{display:flex;gap:4px;margin-bottom:16px;border-bottom:1px solid var(--line)}.tabs button{border:0;background:none;padding:9px 14px;font:inherit;font-weight:500;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px}.tabs button.on{color:var(--accent);border-color:var(--accent)}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;margin-bottom:18px;box-shadow:0 1px 2px #0f172a08}.card.flush{padding:0;overflow:hidden}.card-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid var(--line);flex-wrap:wrap}.card-head h3{margin:0}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px}.grid2>.card{margin-bottom:18px;min-width:0}.kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;margin-bottom:18px}.kpi{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;display:flex;flex-direction:column;gap:3px;min-width:0}.kpi span{font-size:12.5px;color:var(--muted);font-weight:500}.kpi strong{font-size:21px;letter-spacing:-.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kpi small{font-size:12px;color:var(--muted)}.kpi.click{cursor:pointer}.kpi.click:hover{border-color:var(--accent);box-shadow:0 0 0 3px #2563eb14}.kpi.good strong{color:var(--good)}.kpi.bad strong{color:var(--bad)}.badge{background:#fee2e2;color:var(--bad);border-radius:20px;padding:1px 8px;font-size:12px;margin-left:6px}.pill{padding:2px 9px;border-radius:20px;font-size:12px;background:#e2e8f0}.pill.active{background:#dbeafe;color:#1d4ed8}.pill.done{background:#d1fae5;color:#047857}.empty{padding:40px;text-align:center;color:var(--muted)}.tbl{width:100%;border-collapse:collapse}.tbl th{text-align:left;font-size:12px;font-weight:600;color:var(--muted);padding:9px 12px;border-bottom:1px solid var(--line);background:var(--soft);white-space:nowrap}.tbl th.r{text-align:right}.tbl th.c{text-align:center}.tbl td{padding:9px 12px;border-bottom:1px solid #f0f2f6;vertical-align:middle}.tbl tfoot td{font-weight:600;background:var(--soft);border-top:1px solid var(--line)}.tbl.hover tbody tr{cursor:pointer}.tbl.hover tbody tr:hover td{background:#f8faff}.card:not(.flush) .tbl th{background:none;padding-left:0}.card:not(.flush) .tbl td{padding-left:0}.scroll-x{overflow-x:auto}.tbl.payroll td,.tbl.payroll th{padding:6px}.tbl.payroll .sticky{position:sticky;left:0;background:#fff;z-index:1;min-width:200px;padding-left:14px}.tbl.payroll thead .sticky,.tbl.payroll tfoot .sticky{background:var(--soft)}.tbl.perms td,.tbl.perms th{padding:8px 10px}.tbl.perms th.c{white-space:normal;min-width:100px;font-size:11.5px}.sections .sec-row{cursor:pointer}.sections .sec-row:hover td{background:#f8faff}.sections tbody.open .sec-row td{background:var(--accent-soft);border-bottom-color:transparent}.sections .chev{color:var(--muted)}.sec-detail>td{background:var(--accent-soft);padding:0 12px 14px!important}.team{background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}.tbl.inner th{background:#fbfcfe}.tbl.inner td{padding:7px 12px}.add-row{display:flex;gap:8px;align-items:center;padding:10px 12px;background:var(--soft);flex-wrap:wrap}.numcell{display:inline-flex;align-items:center;gap:3px}.numcell input{text-align:right;padding:5px 7px;border-color:#e2e6ee;background:#fff}.numcell input:hover{border-color:#c3cad6}.numcell i{font-style:normal;color:var(--muted);font-size:12px}.numcell.saving input{border-color:var(--warn)}.numcell.ok input{border-color:var(--good);background:#f0fdf4}.numcell.err input{border-color:var(--bad);background:#fef2f2}.bar{height:8px;background:#edf0f5;border-radius:6px;position:relative;overflow:visible}.bar>div{height:100%;background:var(--accent);border-radius:6px;transition:width .3s}.bar.done>div{background:var(--good)}.bar.late>div{background:var(--warn)}.bar b{position:absolute;top:-3px;width:2px;height:14px;background:#0f172a66}.loadbar{display:flex;align-items:center;gap:8px}.loadbar>div{height:8px;background:var(--accent);border-radius:6px;min-width:2px}.loadbar>div.hi{background:var(--bad)}.loadbar>div.lo{background:#94a3b8}.loadbar span{font-size:12px;color:var(--muted);white-space:nowrap}.contract-grid{display:flex;gap:10px;flex-wrap:wrap;padding:14px 18px}.card.contract{padding:0}.contract-grid>div{border:1px solid var(--line);border-radius:10px;padding:10px 14px;display:flex;flex-direction:column;min-width:160px}.contract-grid span{font-size:12px;color:var(--muted)}.contract-grid b{font-size:16px}.contract-grid .total{background:var(--accent-soft);border-color:#c7d7fe}.rate-card{display:flex;justify-content:space-between;align-items:center}.rate-card h3{margin-bottom:2px}.rate-card .numcell input{font-size:18px;font-weight:600}.danger-zone{text-align:right;margin-top:10px}.risks{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px;max-height:360px;overflow:auto}.risks li{border-left:3px solid #94a3b8;padding:7px 12px;background:var(--soft);border-radius:0 9px 9px 0;cursor:pointer;display:flex;flex-direction:column}.risks li.high{border-color:var(--bad);background:#fef2f2}.risks li.mid{border-color:var(--warn);background:#fffbeb}.risks li b{font-size:13px}.risks li span{font-size:12.5px;color:#475569}.gantt{font-size:12.5px;overflow-x:auto}.g-head,.g-row{display:flex;align-items:center;min-width:760px}.g-label{width:260px;flex:none;padding-right:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.g-track{flex:1;position:relative;height:30px}.g-head .g-track{height:22px;border-bottom:1px solid var(--line)}.g-head .g-track span{position:absolute;top:2px;color:var(--muted);font-size:11px;border-left:1px solid var(--line);padding-left:4px;height:20px}.g-row{cursor:pointer;border-bottom:1px dashed #eef0f4}.g-row:hover{background:#f8faff}.g-bar{position:absolute;top:7px;height:16px;border-radius:6px;background:#dbeafe;overflow:hidden}.g-bar>div{height:100%;background:#3b82f6}.g-bar em{position:absolute;right:6px;top:0;font-style:normal;font-size:10.5px;line-height:16px;color:#0f172a;font-weight:600}.g-bar.late{background:#fef3c7}.g-bar.late>div{background:#f59e0b}.g-bar.over{background:#fee2e2}.g-bar.over>div{background:#ef4444}.g-bar.done{background:#d1fae5}.g-bar.done>div{background:#10b981}.g-bar.paused,.g-bar.draft{background:#e2e8f0}.g-bar.paused>div{background:#94a3b8}.g-today{position:absolute;top:0;bottom:0;width:2px;background:#ef4444;z-index:2;opacity:.6}.g-legend{display:flex;gap:14px;align-items:center;padding-top:10px;color:var(--muted);font-size:12px;flex-wrap:wrap}.lg{display:inline-block;width:12px;height:8px;border-radius:3px;margin-right:-8px}.lg.ok{background:#3b82f6}.lg.late{background:#f59e0b}.lg.over{background:#ef4444}.lg.done{background:#10b981}.lg.today{width:2px;height:12px;background:#ef4444}.modal-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a66;display:grid;place-items:center;z-index:50;padding:16px}.modal{background:#fff;border-radius:16px;width:480px;max-width:100%;max-height:92vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #0f172a40}.modal.wide{width:860px}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--line)}.modal-head h3{margin:0;font-size:17px}.modal-body{padding:18px 20px;overflow:auto}.modal-foot{padding:12px 20px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:8px}.login-wrap{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 20% 20%,#dbeafe,transparent 50%),radial-gradient(circle at 80% 80%,#d1fae5,transparent 50%),var(--bg);padding:16px}.login{background:#fff;padding:32px;border-radius:18px;width:380px;max-width:100%;box-shadow:0 20px 50px #0f172a18}@media (max-width: 1100px){.grid2{grid-template-columns:1fr}}@media (max-width: 760px){.layout{flex-direction:column}aside{width:100%;height:auto;position:static}nav{flex-direction:row;overflow-x:auto}nav a{white-space:nowrap}.page{padding:16px}.form-grid{grid-template-columns:1fr}input.search{width:100%}.card.flush{overflow-x:auto}}.page{max-width:none}.kpis{grid-template-columns:repeat(auto-fit,minmax(175px,1fr))}.dash{display:grid;grid-template-columns:repeat(auto-fit,minmax(520px,1fr));grid-auto-flow:dense;gap:18px;margin-bottom:18px}.dash>.card{margin-bottom:0;min-width:0}.dash>.span-all{grid-column:1 / -1}.grid2{grid-template-columns:repeat(auto-fit,minmax(480px,1fr))}@media (min-width: 1900px){html,body{font-size:15px}.page{padding:30px 40px 60px}aside{width:256px}.kpi strong{font-size:24px}.g-label{width:320px}}@media (min-width: 2600px){html,body{font-size:16px}.page{max-width:3000px;margin:0 auto}.dash{grid-template-columns:repeat(auto-fit,minmax(640px,1fr))}}@media (max-width: 1100px){.dash,.grid2{grid-template-columns:1fr}}@media (max-width: 760px){.kpis{grid-template-columns:1fr 1fr;gap:8px}.kpi{padding:10px 12px}.kpi strong{font-size:17px}.g-label{width:130px;font-size:11.5px}.g-head,.g-row{min-width:640px}.page-head .row{width:100%}.page-head .row>*{flex:1 1 auto}.me{display:flex;justify-content:space-between;align-items:center}}.btn.ok{background:var(--good);border-color:var(--good);color:#fff}.btn.ok:hover{background:#047857}.btn.danger{background:#fff;border-color:#fca5a5;color:var(--bad)}.btn.danger:hover{background:#fef2f2}.modal .btn.danger{background:var(--bad);color:#fff;border-color:var(--bad)}.approval{padding:14px 18px}.approval.st-approved{border-color:#a7f3d0}.approval.st-rejected{border-color:#fecaca}.approval.st-gip,.approval.st-director{border-color:#fde68a}.appr-top{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}.appr-steps{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.step{display:flex;align-items:center;gap:7px;padding:5px 12px 5px 6px;border-radius:20px;background:var(--soft);color:var(--muted);font-weight:500;font-size:13px}.step i{font-style:normal;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:#e2e8f0;font-size:12px}.step.done{color:var(--good);background:#ecfdf5}.step.done i{background:var(--good);color:#fff}.step.cur{color:#92400e;background:#fffbeb}.step.cur i{background:var(--warn);color:#fff}.step.rej{color:var(--bad);background:#fef2f2}.step.rej i{background:var(--bad);color:#fff}.appr-stamp{margin-top:10px;color:var(--good);font-size:13.5px}.appr-reject{margin-top:10px;background:#fef2f2;color:#991b1b;padding:8px 12px;border-radius:9px;font-size:13.5px}.appr-diff{margin-top:10px;background:#fffbeb;color:#78350f;padding:8px 12px;border-radius:9px;font-size:13.5px}.appr-diff ul{margin:4px 0 0;padding-left:18px}.kpi.warnk strong{color:var(--warn)}.apill{padding:1px 7px;border-radius:10px;background:#e2e8f0;font-size:11px;color:#475569}.apill.wait{background:#fef3c7;color:#92400e}.apill.done{background:#d1fae5;color:#047857}.apill.rej{background:#fee2e2;color:#b91c1c}.card.pending{border-color:#fde68a;background:#fffdf5}.pending-list{display:flex;gap:10px;flex-wrap:wrap}.pending-list>div{border:1px solid #fde68a;background:#fff;border-radius:10px;padding:8px 12px;cursor:pointer;display:flex;flex-direction:column;min-width:260px}.pending-list>div:hover{border-color:var(--warn)}.pending-list span{font-size:12.5px;color:var(--muted)}.tbl.report th{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:normal;min-width:70px;vertical-align:bottom}.tbl.report th:hover{color:var(--ink)}.tbl.report td{white-space:nowrap}.tbl.report tr.click{cursor:pointer}.tbl.report tr.click:hover td{background:#f8faff}.kv-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}.kv-grid>div{border:1px solid var(--line);border-radius:10px;padding:10px 14px;display:flex;flex-direction:column;gap:2px}.kv-grid span{font-size:12.5px;color:var(--muted)}.kv-grid b{font-size:18px;letter-spacing:-.01em}.kv-grid .neg-box{background:#fef2f2;border-color:#fecaca}.tbl.audit td{font-size:13px;padding:7px 10px}.nowrap{white-space:nowrap}.tbl.audit tr.after td{background:#fffbeb}.tbl.audit .old{color:var(--muted);text-decoration:line-through;text-decoration-color:#cbd5e1}.tbl.audit .new{font-weight:600}.area{padding:1px 8px;border-radius:10px;font-size:11.5px;background:#e2e8f0;color:#334155;white-space:nowrap}.area.b{background:#dbeafe;color:#1d4ed8}.area.c{background:#ede9fe;color:#6d28d9}.area.t{background:#d1fae5;color:#047857}.area.a{background:#fef3c7;color:#92400e}.area.f{background:#fee2e2;color:#b91c1c}.flag{margin-left:6px;font-size:10.5px;background:#f59e0b;color:#fff;border-radius:8px;padding:1px 6px;white-space:nowrap}.card.filters{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;padding:12px 16px}.appr-who{margin-top:8px;font-size:12.5px;display:flex;flex-direction:column;gap:2px;border-top:1px dashed #fcd34d;padding-top:6px}.chat{display:flex;flex-direction:column;height:calc(100vh - 230px);min-height:420px}.chat.compact{height:100%;min-height:0}.chat-msgs{flex:1;overflow:auto;padding:16px 18px;display:flex;flex-direction:column;gap:10px}.msg{max-width:82%;padding:9px 13px;border-radius:14px;line-height:1.5;font-size:14px}.msg.user{align-self:flex-end;background:var(--accent);color:#fff;border-bottom-right-radius:4px;white-space:pre-wrap}.msg.assistant{align-self:flex-start;background:var(--soft);border:1px solid var(--line);border-bottom-left-radius:4px}.msg.err{background:#fef2f2;color:var(--bad)}.chat-input{display:flex;gap:8px;padding:12px;border-top:1px solid var(--line);align-items:flex-end}.chat-input textarea{flex:1;resize:none;min-height:40px;max-height:140px}.chat-hello{margin:auto;text-align:center;max-width:620px}.chips{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-top:10px}.chips button{border:1px solid #c7d2fe;background:var(--accent-soft);color:#1e40af;border-radius:16px;padding:5px 11px;font:inherit;font-size:12.5px;cursor:pointer}.chips button:hover{background:#dbeafe}.chips.sel{justify-content:flex-start;margin:4px 0 12px}.chips.sel button{background:#fff;color:var(--ink);border-color:#d5dae3}.chips.sel button.on{background:var(--accent);color:#fff;border-color:var(--accent)}.typing{display:inline-flex;gap:4px}.typing i{width:6px;height:6px;border-radius:50%;background:#94a3b8;animation:blink 1.2s infinite}.typing i:nth-child(2){animation-delay:.2s}.typing i:nth-child(3){animation-delay:.4s}@keyframes blink{0%,80%,to{opacity:.2}40%{opacity:1}}.md p{margin:0 0 6px}.md ul{margin:2px 0 8px;padding-left:20px}.md li{margin:2px 0}.md-h{margin:10px 0 4px;font-size:14px}.md code{background:#eef2f7;padding:0 4px;border-radius:4px}.md-tbl{margin:6px 0;font-size:13px}.md-tbl td,.md-tbl th{padding:5px 8px!important;border:1px solid var(--line)}.chat-fab{position:fixed;right:22px;bottom:22px;width:54px;height:54px;border-radius:50%;border:0;z-index:40;cursor:pointer;background:linear-gradient(135deg,#3b82f6,#8b5cf6);color:#fff;font-size:22px;box-shadow:0 8px 24px #3b82f655}.chat-fab:hover{transform:scale(1.05)}.chat-drawer{position:fixed;right:22px;bottom:88px;width:440px;max-width:calc(100vw - 32px);height:min(620px,calc(100vh - 120px));z-index:40;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 20px 60px #0f172a33;display:flex;flex-direction:column;overflow:hidden}.chat-drawer-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border-bottom:1px solid var(--line);background:var(--soft)}.ai-summary{border-color:#ddd6fe;background:linear-gradient(180deg,#faf5ff,#fff 120px)}.card-head-inline{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.card-head-inline h3{margin:0}.risk-groups{display:grid;grid-template-columns:repeat(auto-fill,minmax(460px,1fr));gap:14px}.risk-groups .card{margin:0}.link-h{cursor:pointer;color:var(--accent)}.risk-item{border-left:3px solid #94a3b8;padding:6px 10px;margin-bottom:8px;background:var(--soft);border-radius:0 8px 8px 0}.risk-item.high{border-color:var(--bad);background:#fef2f2}.risk-item.mid{border-color:var(--warn);background:#fffbeb}.risk-item p{margin:3px 0;font-size:13.5px}.risk-item .rec{color:#1e40af;font-size:13px}.lvl{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;margin-right:8px}.lvl.high{color:var(--bad)}.lvl.mid{color:var(--warn)}.lvl.low{color:var(--muted)}.kind{font-size:11px;background:#e2e8f0;padding:1px 7px;border-radius:8px}.prob{display:flex;align-items:center;gap:6px}.prob>div{height:8px;border-radius:6px;background:var(--good);min-width:2px}.prob>div.mid{background:var(--warn)}.prob>div.lo{background:var(--bad)}.prob>div.gray{background:#94a3b8}.prob.load>div{background:var(--accent)}.prob.load>div.lo{background:var(--bad)}.prob span{font-size:12px;white-space:nowrap}.ai-verdict{background:linear-gradient(90deg,#eef2ff,#faf5ff);border:1px solid #ddd6fe;padding:12px 14px;border-radius:10px;margin-bottom:12px;font-weight:600}.btn.ai-btn{border-color:#c4b5fd;color:#6d28d9;background:#faf5ff}@media (max-width: 760px){.risk-groups{grid-template-columns:1fr}.msg{max-width:95%}}.howto{padding-left:18px;margin:0 0 12px;font-size:13.5px}.howto li{margin-bottom:6px}.howto code,.card code{background:#eef2f7;padding:0 4px;border-radius:4px;font-size:12px}.bx-log{max-height:260px;overflow:auto;font-size:12px;display:flex;flex-direction:column;gap:3px}.bx-group{display:flex;gap:8px;align-items:center;margin:4px 0 2px;flex-wrap:wrap}.bx-group select{padding:4px 8px;font-size:13px;max-width:360px}.bx-badge{background:#e0f2fe;color:#0369a1;font-size:11px;font-weight:600;padding:2px 8px;border-radius:8px}.info-box{background:#f0f9ff;border:1px solid #bae6fd;border-radius:9px;padding:9px 12px;margin:10px 0;line-height:1.5}.bx-badge.off{background:#f1f5f9;color:#64748b}.off-row td{opacity:.5}.off-row td:first-child{opacity:1}.switch{position:relative;display:inline-block;width:38px;height:22px;cursor:pointer}.switch input{opacity:0;width:0;height:0}.switch i{position:absolute;top:0;right:0;bottom:0;left:0;background:#cbd5e1;border-radius:22px;transition:.2s}.switch i:before{content:"";position:absolute;width:16px;height:16px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.2s}.switch input:checked+i{background:var(--good)}.switch input:checked+i:before{transform:translate(16px)}.align-block{margin-bottom:12px}.align-block>div{display:flex;flex-wrap:wrap;gap:5px;margin-top:5px}.align-block span{background:#eef2ff;border-radius:7px;padding:2px 8px;font-size:12.5px}.align-block.new span{background:#dcfce7}.align-block.del span{background:#fee2e2;text-decoration:line-through}.align-block.warn span{background:#fef3c7}.align-block.muted span{background:#f1f5f9;color:var(--muted)}.tour{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;pointer-events:none}.tour-dim{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a8c;pointer-events:auto}.tour-spot{position:fixed;border-radius:12px;box-shadow:0 0 0 9999px #0f172a8c,0 0 0 3px #60a5fa;transition:all .3s ease;pointer-events:none}.tour-tip{position:fixed;width:min(380px,calc(100vw - 32px));background:#fff;border-radius:14px;padding:16px 18px;box-shadow:0 20px 50px #0f172a55;pointer-events:auto;animation:tourIn .25s ease}@keyframes tourIn{0%{opacity:0;transform:translateY(6px)}}.tour-tip h4{margin:4px 0 6px;font-size:16px}.tour-tip p{font-size:13.5px;line-height:1.55;color:#334155}.tour-step{font-size:11px;font-weight:600;color:var(--accent);text-transform:uppercase;letter-spacing:.05em}.tour-dots{display:flex;gap:5px;margin:12px 0 10px}.tour-dots i{width:7px;height:7px;border-radius:50%;background:#e2e8f0;cursor:pointer}.tour-dots i.on{background:var(--accent);width:18px;border-radius:4px}.tour-dots i.done{background:#93c5fd}.tour-btns{display:flex;justify-content:space-between;align-items:center}.tour-btns span{display:flex;gap:6px}.tour-fab{position:fixed;right:30px;bottom:88px;width:38px;height:38px;border-radius:50%;border:1px solid #c7d2fe;background:#fff;color:var(--accent);font-weight:700;font-size:17px;cursor:pointer;z-index:39;box-shadow:0 4px 14px #0f172a1f}.tour-fab:hover{background:var(--accent-soft)}.chat-drawer~.tour-fab{display:none}.tour-toggle{display:flex;gap:6px;align-items:center;font-size:12px;color:#94a3b8;margin:6px 0 2px;cursor:pointer}.login-links{display:flex;justify-content:space-between;margin-top:12px;font-size:13px}.code-input{font-size:22px;letter-spacing:.4em;text-align:center}.field input,.field select,.field textarea{width:100%;min-width:0}.form-grid>*{min-width:0}.modal-body{overflow-x:hidden}.modal.wide{width:760px}@media (max-width: 640px){.form-grid{grid-template-columns:1fr}}
