/* TripChow Communications Hub UI (build task T8), part 1 of 3: shell, design tokens, buttons, forms, cards, badges, tables, modal, toasts.
   Same visual language as the Automation Center (90-automations.css): Plus Jakarta Sans, mint / dark green, 12 to 16 px radii.
   Every rule is scoped under body.tcv2 .tcc and uses its own short class names, so Bootstrap / AdminLTE / the theme's .card .btn .badge rules cannot
   leak in. Colours are the theme's --tc2-* tokens with the board values as fallbacks. The theme loads assets/admin/css/tcv2/*.css itself; when the
   theme is off the page view links the same files. Parts 2 and 3: 93-comms-compose.css, 94-comms-pages.css. Plan: docs/design-canvas/comms-hub/PLAN.md */
@media screen{
body.tcv2 .tcc{--g:#1B4332;--g2:#2D6A4F;--mint:var(--tc2-mint,#D9F3E6);--ink:var(--tc2-ink,#1A1A1A);--mut:var(--tc2-mut,#5B6472);--mut2:var(--tc2-mut2,#9CA3AF);--line:var(--tc2-line,#E5E7EB);--amber:#F59E0B;--amberfg:var(--tc2-warn,#92400E);--amberbg:var(--tc2-warn-bg,#FEF3C7);--red:var(--tc2-danger,#B91C1C);--redbg:var(--tc2-danger-bg,#FEF2F2);--adm:var(--tc2-brand,#0D523F);--bg:var(--tc2-bg,#F3F4F6);--ok:var(--tc2-ok,#15803D);--okbg:var(--tc2-ok-bg,#DCFCE7);--sky:var(--tc2-info,#0369A1);--skybg:var(--tc2-info-bg,#E0F2FE);--focus:var(--tc2-focus,#2563EB);font-family:'Plus Jakarta Sans',system-ui,-apple-system,'Segoe UI',sans-serif;color:var(--ink);line-height:normal;font-size:16px;font-weight:400;text-align:left;-webkit-font-smoothing:antialiased;letter-spacing:normal;background:var(--bg);min-height:calc(100vh - 58px)}
body.tcv2 .tcc,body.tcv2 .tcc *,body.tcv2 .tcc *::before,body.tcv2 .tcc *::after{box-sizing:border-box}
body.tcv2 .tcc h1,body.tcv2 .tcc h2,body.tcv2 .tcc h3,body.tcv2 .tcc h4,body.tcv2 .tcc h5,body.tcv2 .tcc h6,body.tcv2 .tcc p,body.tcv2 .tcc ul,body.tcv2 .tcc ol,body.tcv2 .tcc dl,body.tcv2 .tcc dd{margin:0;padding:0;font-family:inherit;color:inherit;text-transform:none;letter-spacing:normal}
body.tcv2 .tcc ul,body.tcv2 .tcc ol{list-style:none}
body.tcv2 .tcc b,body.tcv2 .tcc strong{font-weight:800}
body.tcv2 .tcc button,body.tcv2 .tcc input,body.tcv2 .tcc select,body.tcv2 .tcc textarea{font-family:inherit;line-height:normal;text-transform:none;letter-spacing:normal;margin:0}
body.tcv2 .tcc a{text-decoration:none}
body.tcv2 .tcc a:hover{text-decoration:none}
body.tcv2 .tcc table{border-collapse:collapse;border-spacing:0;margin:0;width:100%}
body.tcv2 .tcc :focus-visible{outline:3px solid var(--focus);outline-offset:2px}
body.tcv2 .tcc .ic{display:inline-block;flex:none;vertical-align:middle;width:16px;height:16px}
body.tcv2 .tcc .ic svg{width:100%;height:100%;display:block}
body.tcv2 .tcc .sr{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
body.tcv2 .tcc .hide{display:none!important}
body.tcv2 .tcc .pg{padding:16px 20px 40px;max-width:1560px}
body.tcv2 .tcc .loading{padding:40px 20px;font-size:13px;font-weight:700;color:var(--mut)}
body.tcv2 .tcc .pghead{display:flex;align-items:center;gap:6px 12px;margin-bottom:12px;flex-wrap:wrap}
body.tcv2 .tcc .pghead h2{font-size:21px;font-weight:800;line-height:1.2}
body.tcv2 .tcc .pghead .sub{font-size:12px;font-weight:600;color:var(--mut)}
body.tcv2 .tcc .pghead .right{margin-left:auto;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
body.tcv2 .tcc .pghead .titlerow{display:flex;align-items:center;gap:10px;flex-wrap:wrap;width:100%}
body.tcv2 .tcc .pghead .titlerow .right{margin-left:auto}
body.tcv2 .tcc .btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1.5px solid var(--line);background:#F8FAFC;color:#334155;border-radius:11px;padding:9px 15px;font-size:13px;font-weight:800;white-space:nowrap;cursor:pointer;line-height:normal;font-family:inherit}
body.tcv2 .tcc a.btn:hover,body.tcv2 .tcc .btn:hover{background:#EEF2F7;color:#334155}
body.tcv2 .tcc .btn .ic{width:15px;height:15px}
body.tcv2 .tcc .btn.pri{background:var(--adm);border-color:var(--adm);color:#fff}
body.tcv2 .tcc a.btn.pri:hover,body.tcv2 .tcc .btn.pri:hover{background:#0A4232;border-color:#0A4232;color:#fff}
body.tcv2 .tcc .btn.out{background:#fff;border:2px solid var(--adm);color:var(--adm)}
body.tcv2 .tcc .btn.out:hover{background:#F0FDF4;color:var(--adm)}
body.tcv2 .tcc .btn.dng{background:var(--red);border-color:#7F1D1D;color:#fff}
body.tcv2 .tcc .btn.dng:hover{background:#991B1B;color:#fff}
body.tcv2 .tcc .btn.dngout{background:#fff;border:2px solid var(--red);color:var(--red)}
body.tcv2 .tcc .btn.dngout:hover{background:var(--redbg);color:var(--red)}
body.tcv2 .tcc .btn.ghost{background:transparent;border-color:transparent;color:var(--mut)}
body.tcv2 .tcc .btn.ghost:hover{background:#F3F4F6;color:var(--ink)}
body.tcv2 .tcc .btn.dis,body.tcv2 .tcc .btn[disabled]{opacity:.45;cursor:not-allowed}
body.tcv2 .tcc .btn.sm{padding:6px 11px;font-size:12px;border-radius:9px}
body.tcv2 .tcc .btn.sm .ic{width:13px;height:13px}
body.tcv2 .tcc .btn.ico{padding:8px;width:34px;height:34px}
body.tcv2 .tcc .btn.ico.sm{padding:6px;width:30px;height:30px}
body.tcv2 .tcc .btn.busy{opacity:.8;pointer-events:none}
body.tcv2 .tcc .btn .spin{width:13px;height:13px;border-radius:50%;border:2px solid rgba(255,255,255,.45);border-top-color:#fff;display:block}
body.tcv2 .tcc .btn:not(.pri):not(.dng) .spin{border-color:rgba(0,0,0,.2);border-top-color:#334155}
body.tcv2 .tcc .card{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:none;margin:0}
body.tcv2 .tcc .card>h5{padding:12px 18px;font-size:14px;font-weight:800;color:#fff;background:linear-gradient(135deg,var(--adm),#1A7A5A);display:flex;align-items:center;gap:8px;line-height:normal}
body.tcv2 .tcc .card>h5 .ic{width:16px;height:16px}
body.tcv2 .tcc .card>h5 .r{margin-left:auto;font-size:11.5px;font-weight:700;opacity:.85}
body.tcv2 .tcc .card>h5.plain{background:#fff;color:var(--ink);border-bottom:1px solid var(--line)}
body.tcv2 .tcc .card>h5.danger{background:linear-gradient(135deg,#7F1D1D,var(--red))}
body.tcv2 .tcc .card>h5.blue{background:linear-gradient(135deg,#075985,#0369A1)}
body.tcv2 .tcc .card>h5.purple{background:linear-gradient(135deg,#6D28D9,#7C3AED)}
body.tcv2 .tcc .card>h5.dark{background:linear-gradient(135deg,#0A4232,#0D523F)}
body.tcv2 .tcc .card>.cb,body.tcv2 .tcc .card .cb{padding:16px 18px}
body.tcv2 .tcc .card .sub{font-size:12px;font-weight:600;color:var(--mut);line-height:1.45}
body.tcv2 .tcc .stack>*+*{margin-top:14px}
body.tcv2 .tcc .badge{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:4px 10px;font-size:11.5px;font-weight:800;white-space:nowrap;line-height:normal}
body.tcv2 .tcc .badge i.dot{width:8px;height:8px;border-radius:50%;background:currentColor;display:block}
body.tcv2 .tcc .badge .ic{width:12px;height:12px}
body.tcv2 .tcc .b-open{background:var(--okbg);color:var(--ok)}
body.tcv2 .tcc .b-pause{background:var(--amberbg);color:var(--amberfg);box-shadow:inset 0 0 0 1.5px #FDE68A}
body.tcv2 .tcc .b-hours{background:#E2E8F0;color:#334155}
body.tcv2 .tcc .b-owner{background:#F3F4F6;color:#6B7280}
body.tcv2 .tcc .b-bad{background:var(--redbg);color:var(--red);box-shadow:inset 0 0 0 1.5px #FECACA}
body.tcv2 .tcc .b-sky{background:var(--skybg);color:var(--sky)}
body.tcv2 .tcc .b-dark{background:var(--ink);color:#fff}
body.tcv2 .tcc .b-mint{background:var(--mint);color:var(--adm)}
body.tcv2 .tcc .chip{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:5px 11px;font-size:11.5px;font-weight:700;background:#fff;border:1px solid var(--line);color:#334155;white-space:nowrap;line-height:normal;cursor:pointer;font-family:inherit}
body.tcv2 .tcc .chip .ic{width:12px;height:12px;color:var(--mut)}
body.tcv2 .tcc .chip:hover{border-color:#CBD5E1}
body.tcv2 .tcc .chip.on{background:var(--adm);border-color:var(--adm);color:#fff}
body.tcv2 .tcc .chip.on .ic{color:#fff}
body.tcv2 .tcc .chip.ok{background:#F0FDF4;border-color:#BBF7D0;color:var(--ok)}
body.tcv2 .tcc .chip.warn{background:#FFFBEB;border-color:#FDE68A;color:var(--amberfg)}
body.tcv2 .tcc .chip.bad{background:var(--redbg);border-color:#FECACA;color:var(--red)}
body.tcv2 .tcc .chip.sky{background:var(--skybg);border-color:#BAE6FD;color:var(--sky)}
body.tcv2 .tcc .chip.static{cursor:default}
body.tcv2 .tcc .chip.val{border:1.5px solid var(--ink);color:var(--ink);font-weight:800}
body.tcv2 .tcc .chip .n{opacity:.75;font-weight:800}
body.tcv2 .tcc .note{border-radius:12px;padding:10px 14px;font-size:12.5px;font-weight:700;line-height:1.4;display:flex;gap:10px;align-items:flex-start}
body.tcv2 .tcc .note .ic{width:16px;height:16px;margin-top:1px}
body.tcv2 .tcc .note.warn{background:var(--amberbg);color:var(--amberfg);border:1.5px solid #FDE68A}
body.tcv2 .tcc .note.info{background:var(--skybg);color:var(--sky);border:1.5px solid #BAE6FD}
body.tcv2 .tcc .note.bad{background:var(--redbg);color:var(--red);border:1.5px solid #FECACA}
body.tcv2 .tcc .note.ok{background:#F0FDF4;color:var(--ok);border:1.5px solid #BBF7D0}
body.tcv2 .tcc .note small{display:block;font-weight:600;margin-top:2px;opacity:.9;font-size:12px}
body.tcv2 .tcc .note .grow{flex:1;min-width:0}
body.tcv2 .tcc .note code,body.tcv2 .tcc .sub code,body.tcv2 .tcc .help code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.92em;background:rgba(0,0,0,.06);padding:0 4px;border-radius:4px}
body.tcv2 .tcc .banners>*+*{margin-top:10px}
body.tcv2 .tcc .banners{margin-bottom:12px}
body.tcv2 .tcc .fl{font-size:12px;font-weight:800;margin-bottom:6px;display:flex;justify-content:flex-start;gap:4px;align-items:baseline}
body.tcv2 .tcc .fl em{font-style:normal;font-weight:700;color:var(--mut2);margin-left:auto}
body.tcv2 .tcc .fl .req{color:var(--red);margin-left:2px}
body.tcv2 .tcc .help{font-size:12px;font-weight:600;color:var(--mut);line-height:1.5;margin-top:5px}
body.tcv2 .tcc .errtx{color:var(--red);font-size:12px;font-weight:700;margin-top:5px;display:flex;gap:5px;align-items:flex-start}
body.tcv2 .tcc .errtx .ic{width:13px;height:13px;margin-top:1px}
body.tcv2 .tcc .warntx{color:var(--amberfg);font-size:12px;font-weight:700;margin-top:5px;display:flex;gap:5px;align-items:flex-start}
body.tcv2 .tcc .warntx .ic{width:13px;height:13px;margin-top:1px}
body.tcv2 .tcc .oktx{color:var(--ok);font-size:12px;font-weight:700;margin-top:5px;display:flex;gap:5px;align-items:center}
body.tcv2 .tcc .inp,body.tcv2 .tcc .sel{display:block;width:100%;border:2px solid var(--ink);border-radius:12px;padding:9px 12px;font-size:13px;font-weight:700;background:#fff;min-height:40px;line-height:1.4;color:var(--ink);font-family:inherit;box-shadow:none;height:auto}
body.tcv2 .tcc .inp::placeholder{color:var(--mut2);font-weight:600}
body.tcv2 .tcc textarea.inp{min-height:76px;resize:vertical}
body.tcv2 .tcc .inp.sm,body.tcv2 .tcc .sel.sm{min-height:34px;padding:6px 10px;font-size:12.5px;border-radius:10px;border-width:1.5px}
body.tcv2 .tcc .inp:focus,body.tcv2 .tcc .sel:focus{border-color:var(--adm);outline:3px solid var(--focus);outline-offset:1px}
body.tcv2 .tcc .inp.err,body.tcv2 .tcc .sel.err,body.tcv2 .tcc .tags.err{border-color:var(--red);background:#FFFBFB}
body.tcv2 .tcc .inp[disabled],body.tcv2 .tcc .sel[disabled],body.tcv2 .tcc .inp.dis{background:#F3F4F6;border-color:#D1D5DB;color:#9CA3AF;cursor:not-allowed}
body.tcv2 .tcc .inp.ro{background:#F9FAFB;border-color:#D1D5DB;color:#475569}
body.tcv2 .tcc .sel{appearance:none;-webkit-appearance:none;padding-right:34px;font-weight:800;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231A1A1A' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 11px center/14px 14px}
body.tcv2 .tcc .sel.sm{background-position:right 9px center}
body.tcv2 .tcc .inpu{display:flex;align-items:stretch;border:2px solid var(--ink);border-radius:12px;overflow:hidden;background:#fff;min-height:40px}
body.tcv2 .tcc .inpu .inp{border:0;border-radius:0;min-height:36px;flex:1;min-width:0}
body.tcv2 .tcc .inpu .inp:focus{outline-offset:-3px}
body.tcv2 .tcc .inpu .u{padding:0 13px;background:#F3F4F6;border-left:2px solid var(--ink);font-size:12.5px;font-weight:800;display:flex;align-items:center;color:#475569;white-space:nowrap}
body.tcv2 .tcc .inpu .u.pre{border-left:0;border-right:2px solid var(--ink)}
body.tcv2 .tcc .inpu.err{border-color:var(--red)}
body.tcv2 .tcc .inpi{position:relative}
body.tcv2 .tcc .inpi .ic{position:absolute;left:12px;top:50%;margin-top:-8px;width:16px;height:16px;color:var(--mut);pointer-events:none}
body.tcv2 .tcc .inpi .inp{padding-left:36px}
body.tcv2 .tcc .sw{width:46px;height:26px;border-radius:13px;background:#D1D5DB;position:relative;flex:none;display:block;border:0;padding:0;cursor:pointer;transition:background .12s}
body.tcv2 .tcc .sw:after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:left .12s}
body.tcv2 .tcc .sw.on{background:var(--adm)}
body.tcv2 .tcc .sw.on:after{left:23px}
body.tcv2 .tcc .sw.lk{background:#9CA3AF;cursor:not-allowed}
body.tcv2 .tcc .sw.lk:after{left:3px}
body.tcv2 .tcc .sw.lk.on:after{left:23px}
body.tcv2 .tcc .sw[disabled]{opacity:.55;cursor:not-allowed}
body.tcv2 .tcc .swrow{display:flex;gap:12px;align-items:center;border:2px solid var(--line);border-radius:12px;padding:10px 12px}
body.tcv2 .tcc .swrow .t{font-size:12.5px;font-weight:800;line-height:1.35;flex:1}
body.tcv2 .tcc .swrow .t span{display:block;font-weight:600;color:var(--mut)}
body.tcv2 .tcc .swrow.on{border-color:var(--ink);background:#F9FAFB}
body.tcv2 .tcc .cb2{width:20px;height:20px;border:2px solid var(--ink);border-radius:6px;display:flex;align-items:center;justify-content:center;flex:none;background:#fff;color:#fff}
body.tcv2 .tcc .cb2.on{background:var(--adm);border-color:var(--adm)}
body.tcv2 .tcc .cb2 .ic{width:13px;height:13px}
body.tcv2 .tcc .cb2:not(.on) .ic{display:none}
body.tcv2 .tcc .cbl{display:flex;gap:9px;align-items:center;font-size:13px;font-weight:700;cursor:pointer;background:none;border:0;padding:0;text-align:left;color:inherit}
body.tcv2 .tcc .rad{display:flex;gap:10px;flex-wrap:wrap}
body.tcv2 .tcc .rad .o{flex:1;min-width:200px;border:2px solid var(--line);border-radius:12px;padding:10px 12px;font-size:13px;font-weight:800;display:flex;gap:10px;align-items:flex-start;background:#fff;cursor:pointer;text-align:left;color:inherit;font-family:inherit}
body.tcv2 .tcc .rad .o small{display:block;font-size:11.5px;font-weight:600;color:var(--mut);margin-top:2px;line-height:1.4}
body.tcv2 .tcc .rad .o.on{border-color:var(--ink);background:#F9FAFB}
body.tcv2 .tcc .rad .o .r{width:18px;height:18px;border-radius:50%;border:2px solid var(--ink);flex:none;margin-top:1px;display:flex;align-items:center;justify-content:center;background:#fff}
body.tcv2 .tcc .rad .o.on .r:after{content:"";width:8px;height:8px;border-radius:50%;background:var(--ink)}
body.tcv2 .tcc .rad .o[disabled]{opacity:.5;cursor:not-allowed}
body.tcv2 .tcc .frow{display:grid;gap:14px 16px}
body.tcv2 .tcc .frow.c2{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
body.tcv2 .tcc .frow.c3{grid-template-columns:repeat(3,minmax(0,1fr))}
body.tcv2 .tcc .frow .s2{grid-column:span 2}
body.tcv2 .tcc .frow .s3{grid-column:span 3}
body.tcv2 .tcc .tags{display:flex;flex-wrap:wrap;gap:6px;border:2px solid var(--ink);border-radius:12px;padding:5px 8px;min-height:40px;align-items:center;background:#fff;cursor:text}
body.tcv2 .tcc .tags .t{display:inline-flex;align-items:center;gap:5px;background:var(--mint);color:var(--adm);border-radius:8px;padding:3px 8px;font-size:12px;font-weight:800}
body.tcv2 .tcc .tags .t button{border:0;background:none;color:inherit;padding:0;cursor:pointer;display:flex}
body.tcv2 .tcc .tags .t .ic{width:11px;height:11px}
body.tcv2 .tcc .tags input{flex:1;min-width:80px;border:0;outline:0;background:transparent;font-size:12.5px;font-weight:700;padding:3px 2px;color:var(--ink)}
body.tcv2 .tcc .segc{display:inline-flex;border:2px solid var(--ink);border-radius:12px;overflow:hidden;background:#fff;max-width:100%}
body.tcv2 .tcc .segc button{white-space:nowrap;padding:7px 14px;font-size:12.5px;font-weight:800;color:#475569;border:0;border-right:1.5px solid var(--line);background:#fff;cursor:pointer}
body.tcv2 .tcc .segc button:last-child{border-right:0}
body.tcv2 .tcc .segc button.on{background:var(--ink);color:#fff}
body.tcv2 .tcc .days{display:flex;gap:6px;flex-wrap:wrap}
body.tcv2 .tcc .days button{border:0;border-radius:999px;background:#F3F4F6;color:#475569;font-size:12px;font-weight:800;padding:6px 13px;cursor:pointer}
body.tcv2 .tcc .days button.on{background:var(--adm);color:#fff}
body.tcv2 .tcc .tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);background:#fff;padding:0 20px;overflow-x:auto;border-radius:16px 16px 0 0;border:1px solid var(--line);border-bottom:1px solid var(--line)}
body.tcv2 .tcc .tabs a{padding:12px 14px;font-size:13px;font-weight:800;color:var(--mut);border-bottom:3px solid transparent;white-space:nowrap;display:flex;gap:7px;align-items:center;cursor:pointer}
body.tcv2 .tcc .tabs a:hover{color:var(--ink)}
body.tcv2 .tcc .tabs a.on{color:var(--adm);border-bottom-color:var(--adm)}
body.tcv2 .tcc .tabs .cnt{font-size:10.5px;background:#F3F4F6;border:1.5px solid var(--ink);border-radius:999px;padding:0 7px;color:var(--ink);font-weight:800}
body.tcv2 .tcc .tabs a.on .cnt{background:var(--mint);color:var(--adm);border-color:var(--adm)}
body.tcv2 .tcc .tabs .cnt.red{background:var(--red);color:#fff;border-color:var(--red)}
body.tcv2 .tcc .kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:14px}
body.tcv2 .tcc .kpi{border:1px solid var(--line);border-radius:14px;padding:12px 16px;background:#fff}
body.tcv2 .tcc .kpi.warn{background:#FFFBEB;border-color:#FDE68A}
body.tcv2 .tcc .kpi.bad{background:var(--redbg);border-color:#FECACA}
body.tcv2 .tcc .kpi .l{font-size:10.5px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--mut)}
body.tcv2 .tcc .kpi b{display:block;font-size:26px;font-weight:800;line-height:1.15;margin-top:2px}
body.tcv2 .tcc .kpi.warn b{color:#B45309}
body.tcv2 .tcc .kpi.bad b{color:var(--red)}
body.tcv2 .tcc .kpi .s{font-size:11.5px;font-weight:600;color:var(--mut);margin-top:2px}
body.tcv2 .tcc .dotc{width:9px;height:9px;border-radius:50%;display:inline-block;flex:none;background:#9CA3AF}
body.tcv2 .tcc .dotc.ok{background:#16A34A}
body.tcv2 .tcc .dotc.warn{background:var(--amber)}
body.tcv2 .tcc .dotc.bad{background:#DC2626}
body.tcv2 .tcc .dotc.sim{background:#6B7280}
body.tcv2 .tcc .lnk{color:var(--adm);font-weight:800;font-size:12px;cursor:pointer;background:none;border:0;padding:0;font-family:inherit}
body.tcv2 .tcc .chs{display:flex;gap:5px}
body.tcv2 .tcc .chs .cc{width:22px;height:22px;border:1.5px solid var(--line);border-radius:6px;display:flex;align-items:center;justify-content:center;color:#9CA3AF;background:#fff}
body.tcv2 .tcc .chs .cc .ic{width:13px;height:13px}
body.tcv2 .tcc .chs .cc.on{background:#D1FAE5;border-color:#6EE7B7;color:#065F46}
body.tcv2 .tcc .pill{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:3px 9px;font-size:11px;font-weight:800;white-space:nowrap;border:1.5px solid var(--line);background:#fff;color:#475569}
body.tcv2 .tcc .pill .ic{width:11px;height:11px}
body.tcv2 .tcc .pill.legacy{background:#fff;color:#475569}
body.tcv2 .tcc .pill.center{background:#F0FDF4;border-color:#BBF7D0;color:var(--ok)}
body.tcv2 .tcc .pill.custom{background:var(--skybg);border-color:#BAE6FD;color:var(--sky)}
body.tcv2 .tcc .pill.sim{background:var(--amberbg);border-color:#FDE68A;color:var(--amberfg)}
body.tcv2 .tcc .pill.money{background:var(--redbg);border-color:#FECACA;color:var(--red)}
body.tcv2 .tcc .pill.flag{background:#FFF7ED;border-color:#FED7AA;color:#C2410C}
body.tcv2 .tcc .pill.mute{background:#F3F4F6;color:#6B7280}
body.tcv2 .tcc .pill.dark{background:var(--ink);border-color:var(--ink);color:#fff}
body.tcv2 .tcc .menu{position:relative}
body.tcv2 .tcc .menu .pop{position:absolute;right:0;top:34px;z-index:30;min-width:178px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 8px 30px rgba(0,0,0,.12);padding:6px}
body.tcv2 .tcc .menu .pop button,body.tcv2 .tcc .menu .pop a{display:flex;gap:9px;align-items:center;width:100%;border:0;background:none;padding:8px 10px;border-radius:8px;font-size:12.5px;font-weight:700;color:#334155;cursor:pointer;text-align:left}
body.tcv2 .tcc .menu .pop button:hover,body.tcv2 .tcc .menu .pop a:hover{background:#F3F4F6;color:var(--ink)}
body.tcv2 .tcc .menu .pop .ic{width:14px;height:14px;color:var(--mut)}
body.tcv2 .tcc .menu .pop .red{color:var(--red)}
body.tcv2 .tcc .menu .pop .red .ic{color:var(--red)}
body.tcv2 .tcc .empty{padding:34px 20px;text-align:center;color:var(--mut);font-size:13px;font-weight:700}
body.tcv2 .tcc .empty .em-ic{width:48px;height:48px;border-radius:14px;background:var(--mint);color:var(--adm);display:flex;align-items:center;justify-content:center;margin:0 auto 12px}
body.tcv2 .tcc .empty .em-ic .ic{width:24px;height:24px}
body.tcv2 .tcc .empty h4{font-size:15px;font-weight:800;color:var(--ink);margin-bottom:4px}
body.tcv2 .tcc .empty p{font-size:12.5px;font-weight:600;max-width:420px;margin:0 auto 14px}
body.tcv2 .tcc .tbl{width:100%;border-collapse:collapse;font-size:12.5px}
body.tcv2 .tcc .tbl th{text-align:left;font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--mut);font-weight:800;padding:9px 12px;background:#F9FAFB;border-bottom:1px solid var(--line);white-space:nowrap}
body.tcv2 .tcc .tbl td{padding:10px 12px;border-bottom:1px solid #F1F5F9;font-weight:600;vertical-align:middle;color:var(--ink)}
body.tcv2 .tcc .tbl td b{font-weight:800}
body.tcv2 .tcc .tbl td small{display:block;color:var(--mut);font-weight:600;font-size:11.5px;margin-top:2px}
body.tcv2 .tcc .tbl tr.rsel td{background:#F0FDF4}
body.tcv2 .tcc .tbl tr.click{cursor:pointer}
body.tcv2 .tcc .tbl tr.click:hover td{background:#F9FAFB}
body.tcv2 .tcc .tbl .num{text-align:right;white-space:nowrap}
body.tcv2 .tcc .tbl.nw td,body.tcv2 .tcc .tbl.nw th{white-space:nowrap}
body.tcv2 .tcc .tbl.fx{table-layout:auto}
body.tcv2 .tcc .tscroll{overflow-x:auto}
body.tcv2 .tcc .mo{position:fixed;inset:0;background:rgba(17,24,39,.52);display:flex;align-items:center;justify-content:center;z-index:2000;padding:16px}
body.tcv2 .tcc .mo .dlg{background:#fff;border-radius:18px;width:100%;max-width:480px;box-shadow:0 24px 60px rgba(0,0,0,.35);overflow:hidden;max-height:calc(100vh - 32px);display:flex;flex-direction:column}
body.tcv2 .tcc .mo .dlg.wide{max-width:760px}
body.tcv2 .tcc .mo .dlg>h5{padding:14px 18px;font-size:15px;font-weight:800;border-bottom:1px solid var(--line)}
body.tcv2 .tcc .mo .dlg .mb{padding:16px 18px;font-size:13px;font-weight:600;line-height:1.55;overflow:auto}
body.tcv2 .tcc .mo .dlg .mb p+p{margin-top:8px}
body.tcv2 .tcc .mo .dlg .mf{padding:12px 18px;border-top:1px solid var(--line);display:flex;gap:10px;justify-content:flex-end;background:#F9FAFB;flex-wrap:wrap}
body.tcv2 .tcc .toasts{position:fixed;right:18px;bottom:18px;z-index:2100;display:flex;flex-direction:column;gap:8px;max-width:360px}
body.tcv2 .tcc .toast{background:#111827;color:#fff;border-radius:12px;padding:11px 14px;font-size:12.5px;font-weight:700;box-shadow:0 8px 30px rgba(0,0,0,.3);display:flex;gap:9px;align-items:flex-start}
body.tcv2 .tcc .toast.ok{background:#14532D}
body.tcv2 .tcc .toast.bad{background:#7F1D1D}
body.tcv2 .tcc .toast .ic{width:15px;height:15px;margin-top:1px}
body.tcv2 .tcc .crumb{font-size:11.5px;font-weight:700;color:var(--mut);display:flex;gap:6px;align-items:center;margin-bottom:6px;flex-wrap:wrap}
body.tcv2 .tcc .crumb a{color:var(--mut)}
body.tcv2 .tcc .crumb a:hover{color:var(--adm)}
body.tcv2 .tcc .crumb b{color:var(--ink)}
body.tcv2 .tcc .sn{display:flex;gap:4px;overflow-x:auto;margin:-2px 0 14px;padding-bottom:2px;-webkit-overflow-scrolling:touch;scrollbar-width:none}
body.tcv2 .tcc .sn::-webkit-scrollbar{display:none}
body.tcv2 .tcc .sn a{display:flex;gap:7px;align-items:center;white-space:nowrap;padding:8px 13px;border-radius:999px;font-size:12.5px;font-weight:800;color:var(--mut);background:transparent;border:1.5px solid transparent;min-height:36px}
body.tcv2 .tcc .sn a:hover{background:#fff;color:var(--ink)}
body.tcv2 .tcc .sn a.on{background:#fff;border-color:var(--adm);color:var(--adm)}
body.tcv2 .tcc .sn a .ic{width:14px;height:14px}
body.tcv2 .tcc .sn .cnt{font-size:10.5px;background:var(--red);color:#fff;border-radius:999px;padding:0 6px;font-weight:800}
body.tcv2 .tcc .fbar{background:#fff;border:1px solid var(--line);border-radius:16px;padding:12px 14px;display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:0 0 12px}
body.tcv2 .tcc .fbar .grow{flex:1;min-width:180px}
body.tcv2 .tcc .fbar .inp,body.tcv2 .tcc .fbar .sel{width:auto;min-width:120px}
body.tcv2 .tcc .fbar .grow .inp{width:100%}
body.tcv2 .tcc .kv{display:grid;grid-template-columns:120px minmax(0,1fr);gap:8px 12px;font-size:12.5px;font-weight:600;padding:2px 0}
body.tcv2 .tcc .kv dt{color:var(--mut);font-weight:700}
body.tcv2 .tcc .kv dd{text-align:right;font-weight:700;word-break:break-word}
body.tcv2 .tcc .menu{position:relative;display:inline-block}
body.tcv2 .tcc .menu .pop{position:absolute;right:0;top:100%;margin-top:4px;z-index:30;min-width:190px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 8px 30px rgba(0,0,0,.12);padding:6px}
body.tcv2 .tcc .menu .pop button,body.tcv2 .tcc .menu .pop a{display:flex;gap:9px;align-items:center;width:100%;border:0;background:none;padding:9px 10px;border-radius:8px;font-size:12.5px;font-weight:700;color:#334155;cursor:pointer;text-align:left;min-height:38px}
body.tcv2 .tcc .menu .pop button:hover,body.tcv2 .tcc .menu .pop a:hover{background:#F3F4F6;color:var(--ink)}
body.tcv2 .tcc .menu .pop .red{color:var(--red)}
body.tcv2 .tcc .bar{height:10px;border-radius:999px;background:#E5E7EB;overflow:hidden;position:relative}
body.tcv2 .tcc .bar>i{display:block;height:100%;border-radius:999px;background:var(--g2);min-width:0;transition:width .4s}
body.tcv2 .tcc .bar.thin{height:7px}
body.tcv2 .tcc .bar.sky>i{background:#0369A1}
body.tcv2 .tcc .bar.amb>i{background:var(--amber)}
body.tcv2 .tcc .bar.red>i{background:#DC2626}
body.tcv2 .tcc .bar.gry>i{background:#94A3B8}
body.tcv2 .tcc .st{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:3px 10px;font-size:11.5px;font-weight:800;white-space:nowrap;background:#F3F4F6;color:#475569}
body.tcv2 .tcc .st i{width:7px;height:7px;border-radius:50%;background:currentColor;display:block}
body.tcv2 .tcc .st.sending,body.tcv2 .tcc .st.materialising,body.tcv2 .tcc .st.running{background:var(--skybg);color:var(--sky)}
body.tcv2 .tcc .st.completed,body.tcv2 .tcc .st.approved,body.tcv2 .tcc .st.sent,body.tcv2 .tcc .st.delivered,body.tcv2 .tcc .st.ok{background:var(--okbg);color:var(--ok)}
body.tcv2 .tcc .st.scheduled,body.tcv2 .tcc .st.paused,body.tcv2 .tcc .st.queued,body.tcv2 .tcc .st.warn{background:var(--amberbg);color:var(--amberfg)}
body.tcv2 .tcc .st.failed,body.tcv2 .tcc .st.rejected,body.tcv2 .tcc .st.bad{background:var(--redbg);color:var(--red)}
body.tcv2 .tcc .st.pending_approval{background:#F5F3FF;color:#6D28D9}
body.tcv2 .tcc .st.draft,body.tcv2 .tcc .st.cancelled,body.tcv2 .tcc .st.archived,body.tcv2 .tcc .st.skipped{background:#F3F4F6;color:#475569}
body.tcv2 .tcc .chi{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:9px;flex:none;background:#E0F2FE;color:#0369A1}
body.tcv2 .tcc .chi .ic{width:15px;height:15px}
body.tcv2 .tcc .chi.sms{background:#FEF3C7;color:#B45309}
body.tcv2 .tcc .chi.email{background:#EDE9FE;color:#6D28D9}
body.tcv2 .tcc .chi.whatsapp{background:#DCFCE7;color:#15803D}
body.tcv2 .tcc .chi.inapp{background:#FCE7F3;color:#BE185D}
body.tcv2 .tcc .chs{display:inline-flex;gap:4px}
body.tcv2 .tcc .chs .chi{width:24px;height:24px;border-radius:7px}
body.tcv2 .tcc .chs .chi .ic{width:13px;height:13px}
body.tcv2 .tcc .mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
body.tcv2 .tcc .muted{color:var(--mut)}
body.tcv2 .tcc .grow{flex:1;min-width:0}
body.tcv2 .tcc .row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-left:0;margin-right:0}
body.tcv2 .tcc.ovl{min-height:0;background:transparent}
body.tcv2 .tcc .sp{flex:1}
body.tcv2 .tcc .pager{display:flex;align-items:center;gap:8px;padding:12px 16px;border-top:1px solid var(--line);font-size:12px;font-weight:700;color:var(--mut);flex-wrap:wrap}
body.tcv2 .tcc .pager .btn[disabled]{opacity:.4;cursor:default}
body.tcv2 .tcc .skel{border-radius:10px;background:#EEF0F3;min-height:14px;animation:none}
body.tcv2 .tcc .live{display:inline-flex;gap:6px;align-items:center;font-size:11.5px;font-weight:700;color:var(--mut)}
body.tcv2 .tcc .live i{width:8px;height:8px;border-radius:50%;background:#16A34A;display:block}
body.tcv2 .tcc .live.off i{background:#9CA3AF}
body.tcv2 .tcc .live.warn i{background:var(--amber)}
body.tcv2 .tcc .live.bad i{background:#DC2626}
body.tcv2 .tcc .errs ul{list-style:disc;padding-left:18px;font-size:12.5px;font-weight:700;margin-top:4px}
body.tcv2 .tcc .errs li{margin-top:2px}
body.tcv2 .tcc .dval{white-space:normal;word-break:break-all;max-width:460px}
body.tcv2 .tcc .xs{font-size:11px;font-weight:700;color:var(--mut)}
body.tcv2 .tcc .nowrap{white-space:nowrap}
body.tcv2 .tcc .two{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:14px;align-items:start}
body.tcv2 .tcc .three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:start}
body.tcv2 .tcc .tscroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
@media (min-width:761px){
body.tcv2 .tcc .sn{flex-wrap:wrap;overflow:visible;row-gap:6px}
}
@media (max-width:1100px){
body.tcv2 .tcc .two,body.tcv2 .tcc .three{grid-template-columns:minmax(0,1fr)}
body.tcv2 .tcc .kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:760px){
body.tcv2 .tcc .pg{padding:12px 16px 90px}
body.tcv2 .tcc .kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
body.tcv2 .tcc .kpi b{font-size:22px}
body.tcv2 .tcc .pghead h2{font-size:19px}
body.tcv2 .tcc .pghead .right{width:100%;margin-left:0}
body.tcv2 .tcc .frow.c2,body.tcv2 .tcc .frow.c3{grid-template-columns:minmax(0,1fr)}
body.tcv2 .tcc .frow .s2,body.tcv2 .tcc .frow .s3{grid-column:auto}
body.tcv2 .tcc .mo .dlg{max-width:none}
body.tcv2 .tcc .toasts{left:12px;right:12px;max-width:none}
body.tcv2 .tcc .fbar .inp,body.tcv2 .tcc .fbar .sel{width:100%}
body.tcv2 .tcc .btn{min-height:40px}
body.tcv2 .tcc .kv{grid-template-columns:100px minmax(0,1fr)}
}
}
