:root{--ink:#1f3a93;--ink-dark:#172c70;--ink-soft:#e8ecf8;--paper:#fbfbf8;--surface:#fff;--line:#e3e3dc;--line-strong:#cfcfc6;--text:#23272e;--muted:#626873;--ok:#2e6b4f;--ok-soft:#e4f0ea;--bad:#b3261e;--bad-soft:#f8e6e4;--warn:#8a5a00;--warn-soft:#f7eedb;--radius:6px;--font:-apple-system , BlinkMacSystemFont , "Segoe UI" , system-ui , Roboto , "Helvetica Neue" , Arial , sans-serif;--mono:ui-monospace , SFMono-Regular , Menlo , Consolas , "Liberation Mono" , monospace}*,*::before,*::after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--paper);color:var(--text);font: 14px/1.45 var(--font)}a{color:var(--ink);text-decoration:none}a:hover{text-decoration:underline}h1{font-size:22px;line-height:1.25;margin:0;font-weight:650;letter-spacing:-.01em;display:flex;align-items:center;gap:10px;flex-wrap:wrap}h2{font-size:15px;margin:0 0 12px;font-weight:650}h3{font-size:13px;margin:18px 0 8px;font-weight:650;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}p{margin:0 0 10px}:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.num{font-variant-numeric:tabular-nums;white-space:nowrap}.mono{font-family: var(--mono);font-size:12.5px}.r{text-align:right}.sub{color:var(--muted);font-size:12.5px}.strong{font-weight:600}.hint{color:var(--muted);font-size:12.5px}.t-ok{color:var(--ok)}.t-bad{color:var(--bad);font-weight:600}.shell{display:grid;grid-template-columns:216px minmax(0,1fr);min-height:100vh}.sidebar{background:var(--ink);color:#fff;padding:18px 12px;display:flex;flex-direction:column;gap:22px;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:10px;color:inherit;font-weight:650;line-height:1.15;padding:0 6px}.brand:hover{text-decoration:none}.brand small{display:block;font-weight:400;opacity:.75;font-size:12px}.brand-mark{width:32px;height:32px;border-radius:7px;background:#fff;color:var(--ink);display:grid;place-items:center;font-size:13px;font-weight:800;letter-spacing:-.02em;flex:none}.sidebar nav{display:flex;flex-direction:column;gap:2px}.sidebar nav a{color:#dfe5f7;padding:8px 10px;border-radius:var(--radius);display:flex;align-items:center;justify-content:space-between}.sidebar nav a:hover{background:rgba(255,255,255,.08);text-decoration:none;color:#fff}.sidebar nav a.active{background:rgba(255,255,255,.16);color:#fff;font-weight:600}.sidebar .badge{background:#fff;color:var(--ink)}.who{margin-top:auto;padding:10px;border-top:1px solid rgba(255,255,255,.15);display:flex;justify-content:space-between;align-items:center;font-size:13px;color:#dfe5f7;gap:8px}.who form{margin:0}.who .link{color:#fff}.main{padding:24px 32px 48px;min-width:0;max-width:1280px}.page-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;flex-wrap:wrap}.head-actions{display:flex;gap:8px}.head-actions form{margin:0}.crumbs{margin:0 0 4px;font-size:13px;color:var(--muted)}.section-title{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:0 0 8px}section{margin-bottom:20px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;margin-bottom:20px}.card.narrow{max-width:560px}.card>:last-child{margin-bottom:0}.card-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;flex-wrap:wrap}.card-head h2{margin:0}.two-col{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.two-col>.card,.two-col>section{margin-bottom:0}.two-col{margin-bottom:20px}.empty{color:var(--muted);margin:0}p.empty.card{padding:22px 18px}.foot-note{color:var(--muted);font-size:12.5px}.stats-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.stat{background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--line-strong);border-radius:var(--radius);padding:12px 14px;color:var(--text);display:flex;flex-direction:column}.stat:hover{text-decoration:none;border-color:var(--line-strong)}.stat .n{font-size:26px;font-weight:650;font-variant-numeric:tabular-nums;line-height:1.1}.stat .l{color:var(--muted);font-size:12.5px}.stat.ok{border-left-color:var(--ok)}.stat.ok .n{color:var(--ok)}.stat.bad{border-left-color:var(--bad)}.stat.bad .n{color:var(--bad)}.stat.warn{border-left-color:var(--warn)}.stat.warn .n{color:var(--warn)}.rows{list-style:none;margin:0;padding:0}.rows li+li{border-top:1px solid var(--line)}.rows a{display:flex;justify-content:space-between;gap:12px;padding:8px 2px;color:var(--text)}.rows a:hover{background:var(--ink-soft);text-decoration:none}.row-main{font-weight:550;min-width:0;overflow-wrap:anywhere}.row-sub{color:var(--muted);font-size:12.5px;text-align:right;flex:none}.table-wrap{overflow-x:auto}.table-wrap.card{padding:0}table.data{width:100%;border-collapse:collapse}.data th,.data td{padding:8px 12px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line)}.data th.r,.data td.r{text-align:right}.data thead th{font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.03em;background:#f6f6f1;white-space:nowrap}.data tbody tr:hover{background:#f8f9fd}.data tbody tr:last-child td{border-bottom:0}.data tfoot th,.data tfoot td{border-top:1px solid var(--line-strong);border-bottom:0;font-weight:650}.data.compact th,.data.compact td{padding:5px 10px}.data tr.dim td{color:var(--muted)}.data tr.unread td:first-child{box-shadow:inset 3px 0 0 var(--ink)}.card .data th:first-child,.card .data td:first-child{padding-left:0}.card .data th:last-child,.card .data td:last-child{padding-right:0}.table-wrap.card .data th:first-child,.table-wrap.card .data td:first-child{padding-left:16px}.table-wrap.card .data th:last-child,.table-wrap.card .data td:last-child{padding-right:16px}.data td form{margin:0}.pill{display:inline-block;padding:1px 8px;border-radius:999px;font-size:12px;font-weight:600;line-height:1.6;white-space:nowrap;background:#eeeee8;color:var(--muted);vertical-align:middle}.pill.ok{background:var(--ok-soft);color:var(--ok)}.pill.bad{background:var(--bad-soft);color:var(--bad)}.pill.warn{background:var(--warn-soft);color:var(--warn)}.pill.gift{background:var(--ink-soft);color:var(--ink)}h1 .pill{font-size:12.5px}.badge{display:inline-block;min-width:20px;padding:0 6px;border-radius:999px;background:var(--ink);color:#fff;font-size:11.5px;font-weight:700;text-align:center;line-height:18px;font-variant-numeric:tabular-nums;vertical-align:middle}.flash{padding:10px 14px;border-radius:var(--radius);margin-bottom:14px;border:1px solid}.flash.ok{background:var(--ok-soft);border-color:#b9d6c7;color:#1f4d38}.flash.bad{background:var(--bad-soft);border-color:#e8bab6;color:#8c1d17}.flash.warn{background:var(--warn-soft);border-color:#e5d0a5;color:#6b4600}label{display:flex;flex-direction:column;gap:4px;font-size:13px;font-weight:550}label small{font-weight:400;color:var(--muted)}input,select,textarea,button,.btn{font:inherit;color:inherit}input:not([type=checkbox]), select, textarea {border:1px solid var(--line-strong);border-radius:var(--radius);padding:7px 10px;background:#fff;width:100%;font-weight:400}input:focus,select:focus,textarea:focus{border-color:var(--ink);outline:2px solid var(--ink-soft);outline-offset:0}textarea{resize:vertical;min-height:60px}button,.btn{border:1px solid var(--line-strong);background:#fff;border-radius:var(--radius);padding:7px 14px;cursor:pointer;font-weight:600;display:inline-block;white-space:nowrap}button:hover,.btn:hover{background:#f4f4ef;text-decoration:none}button.primary,.btn.primary{background:var(--ink);border-color:var(--ink);color:#fff}button.primary:hover,.btn.primary:hover{background:var(--ink-dark)}button.danger{background:#fff;border-color:#e0b1ad;color:var(--bad)}button.danger:hover{background:var(--bad-soft)}button.small{padding:4px 10px;font-size:12.5px}button.wide{width:100%;padding:10px}button.link{border:0;background:none;padding:0;font-weight:500;text-decoration:underline}.form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.card .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.create .form-grid{grid-template-columns:repeat(4,minmax(0,1fr));margin-top:14px}.span-2{grid-column:span 2}.span-all{grid-column: 1 / -1}.actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.stack{display:flex;flex-direction:column;gap:12px}label.check{flex-direction:row;align-items:flex-start;gap:8px;font-weight:500}label.check input{margin-top:3px}.toolbar{display:flex;gap:8px;margin-bottom:10px}.toolbar input{max-width:420px}form.inline{display:flex;gap:8px;align-items:center;margin:0}form.inline select{width:auto}details.create{padding:12px 18px}details.create summary{list-style:none;cursor:pointer;display:inline-block}details.create summary::-webkit-details-marker{display:none}details.create[open] summary .btn{background:var(--ink-dark)}.tabs{display:flex;gap:2px;box-shadow:inset 0 -1px 0 var(--line);margin-bottom:14px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tabs a{padding:8px 12px;color:var(--muted);border-bottom:2px solid transparent;white-space:nowrap;font-weight:550}.tabs a:hover{color:var(--text);text-decoration:none}.tabs a.active{color:var(--ink);border-bottom-color:var(--ink)}.facts{display:grid;grid-template-columns:max-content 1fr;gap:6px 16px;margin:0}.facts dt{color:var(--muted)}.facts dd{margin:0;min-width:0;overflow-wrap:anywhere}.key-box{border:2px solid var(--ink);background:var(--ink-soft)}.key-row{display:flex;gap:8px;margin:10px 0}input.key{font-size:20px;font-weight:700;letter-spacing:.06em;text-align:center;padding:10px;background:#fff;color:var(--ink)}.ticket-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:20px;align-items:start}.conversation{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}.bubble{max-width:82%;border-radius:10px;padding:10px 14px;border:1px solid var(--line);background:var(--surface)}.bubble.customer{align-self:flex-start;border-bottom-left-radius:2px}.bubble.admin{align-self:flex-end;background:var(--ink-soft);border-color:#cdd5ef;border-bottom-right-radius:2px}.bubble header{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap;font-size:12.5px;margin-bottom:4px}.bubble header time{color:var(--muted)}.bubble .body{overflow-wrap:anywhere}pre.diag{font-family: var(--mono);font-size:12px;background:#f4f4ef;border:1px solid var(--line);border-radius:var(--radius);padding:10px;max-height:360px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.legend{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--muted)}.legend .key{width:10px;height:10px;border-radius:2px;display:inline-block;margin-left:8px}.ink{background:var(--ink)}.green{background:var(--ok)}.red{background:var(--bad)}.colchart{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:6px;height:200px;align-items:end;padding:8px 0 0;margin-bottom:14px;border-bottom:1px solid var(--line)}.col-group{display:flex;flex-direction:column;align-items:stretch;height:100%}.cols{flex:1;display:flex;align-items:flex-end;justify-content:center;gap:2px}.vbar{width:28%;max-width:14px;border-radius:2px 2px 0 0;min-height:0}.col-label{text-align:center;font-size:11.5px;line-height:1.25;color:var(--muted);padding:4px 0;overflow:hidden}.col-label .m,.col-label .y{display:block;white-space:nowrap}.col-label .y{font-size:.85em;opacity:.8}.bar-cell{width:45%;vertical-align:middle!important}.hbar{display:block;height:10px;border-radius:2px}.login-page{display:grid;place-items:center;min-height:100vh;padding:16px}.login{width:100%;max-width:380px}.brand-login{color:var(--ink);margin-bottom:18px;justify-content:center}.brand-login .brand-mark{background:var(--ink);color:#fff}.brand-login small{color:var(--muted);opacity:1}.login .card{display:flex;flex-direction:column;gap:14px;padding:22px}.login h1{font-size:18px}.login label small{margin-top:2px}main.bare{max-width:560px;margin:60px auto;padding:0 16px}@media (max-width:1100px){.stats-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.ticket-layout{grid-template-columns:1fr}}@media (max-width:820px){.shell{grid-template-columns:minmax(0,1fr)}.sidebar{position:static;height:auto;flex-direction:row;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px}.sidebar .brand small{display:none}.sidebar nav{flex-direction:row;overflow-x:auto;order:3;width:100%}.sidebar nav a{white-space:nowrap;gap:6px}.who{margin:0 0 0 auto;border:0;padding:0}.main{padding:16px 16px 40px}.two-col,.card .form-grid,.create .form-grid{grid-template-columns:minmax(0,1fr)}.span-2{grid-column: 1 / -1}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.bubble{max-width:94%}.key-row{flex-direction:column}input.key{font-size:16px}.colchart{gap:2px}.col-label{font-size:10px}}@media (max-width:420px){.col-label{font-size:9px;letter-spacing:-.02em}.vbar{width:30%}}@media print{.sidebar,.head-actions,form{display:none!important}.shell{display:block}}.w-0{width:0%}.w-1{width:1%}.w-2{width:2%}.w-3{width:3%}.w-4{width:4%}.w-5{width:5%}.w-6{width:6%}.w-7{width:7%}.w-8{width:8%}.w-9{width:9%}.w-10{width:10%}.w-11{width:11%}.w-12{width:12%}.w-13{width:13%}.w-14{width:14%}.w-15{width:15%}.w-16{width:16%}.w-17{width:17%}.w-18{width:18%}.w-19{width:19%}.w-20{width:20%}.w-21{width:21%}.w-22{width:22%}.w-23{width:23%}.w-24{width:24%}.w-25{width:25%}.w-26{width:26%}.w-27{width:27%}.w-28{width:28%}.w-29{width:29%}.w-30{width:30%}.w-31{width:31%}.w-32{width:32%}.w-33{width:33%}.w-34{width:34%}.w-35{width:35%}.w-36{width:36%}.w-37{width:37%}.w-38{width:38%}.w-39{width:39%}.w-40{width:40%}.w-41{width:41%}.w-42{width:42%}.w-43{width:43%}.w-44{width:44%}.w-45{width:45%}.w-46{width:46%}.w-47{width:47%}.w-48{width:48%}.w-49{width:49%}.w-50{width:50%}.w-51{width:51%}.w-52{width:52%}.w-53{width:53%}.w-54{width:54%}.w-55{width:55%}.w-56{width:56%}.w-57{width:57%}.w-58{width:58%}.w-59{width:59%}.w-60{width:60%}.w-61{width:61%}.w-62{width:62%}.w-63{width:63%}.w-64{width:64%}.w-65{width:65%}.w-66{width:66%}.w-67{width:67%}.w-68{width:68%}.w-69{width:69%}.w-70{width:70%}.w-71{width:71%}.w-72{width:72%}.w-73{width:73%}.w-74{width:74%}.w-75{width:75%}.w-76{width:76%}.w-77{width:77%}.w-78{width:78%}.w-79{width:79%}.w-80{width:80%}.w-81{width:81%}.w-82{width:82%}.w-83{width:83%}.w-84{width:84%}.w-85{width:85%}.w-86{width:86%}.w-87{width:87%}.w-88{width:88%}.w-89{width:89%}.w-90{width:90%}.w-91{width:91%}.w-92{width:92%}.w-93{width:93%}.w-94{width:94%}.w-95{width:95%}.w-96{width:96%}.w-97{width:97%}.w-98{width:98%}.w-99{width:99%}.w-100{width:100%}.h-0{height:0%}.h-1{height:1%}.h-2{height:2%}.h-3{height:3%}.h-4{height:4%}.h-5{height:5%}.h-6{height:6%}.h-7{height:7%}.h-8{height:8%}.h-9{height:9%}.h-10{height:10%}.h-11{height:11%}.h-12{height:12%}.h-13{height:13%}.h-14{height:14%}.h-15{height:15%}.h-16{height:16%}.h-17{height:17%}.h-18{height:18%}.h-19{height:19%}.h-20{height:20%}.h-21{height:21%}.h-22{height:22%}.h-23{height:23%}.h-24{height:24%}.h-25{height:25%}.h-26{height:26%}.h-27{height:27%}.h-28{height:28%}.h-29{height:29%}.h-30{height:30%}.h-31{height:31%}.h-32{height:32%}.h-33{height:33%}.h-34{height:34%}.h-35{height:35%}.h-36{height:36%}.h-37{height:37%}.h-38{height:38%}.h-39{height:39%}.h-40{height:40%}.h-41{height:41%}.h-42{height:42%}.h-43{height:43%}.h-44{height:44%}.h-45{height:45%}.h-46{height:46%}.h-47{height:47%}.h-48{height:48%}.h-49{height:49%}.h-50{height:50%}.h-51{height:51%}.h-52{height:52%}.h-53{height:53%}.h-54{height:54%}.h-55{height:55%}.h-56{height:56%}.h-57{height:57%}.h-58{height:58%}.h-59{height:59%}.h-60{height:60%}.h-61{height:61%}.h-62{height:62%}.h-63{height:63%}.h-64{height:64%}.h-65{height:65%}.h-66{height:66%}.h-67{height:67%}.h-68{height:68%}.h-69{height:69%}.h-70{height:70%}.h-71{height:71%}.h-72{height:72%}.h-73{height:73%}.h-74{height:74%}.h-75{height:75%}.h-76{height:76%}.h-77{height:77%}.h-78{height:78%}.h-79{height:79%}.h-80{height:80%}.h-81{height:81%}.h-82{height:82%}.h-83{height:83%}.h-84{height:84%}.h-85{height:85%}.h-86{height:86%}.h-87{height:87%}.h-88{height:88%}.h-89{height:89%}.h-90{height:90%}.h-91{height:91%}.h-92{height:92%}.h-93{height:93%}.h-94{height:94%}.h-95{height:95%}.h-96{height:96%}.h-97{height:97%}.h-98{height:98%}.h-99{height:99%}.h-100{height:100%}.card-foot{margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}form.extend input[type="number"]{width:72px}