/* TLS Connect look, shared by the home site, Criticals & Rejections and the Send-Out Tracker.
   Tokens, fonts, the evergreen rail and the glossy panels are lifted from TLS Connect's own stylesheet
   (Evergreen theme) so every program reads as one product. */
@font-face{font-family:'Source Sans 3';font-weight:400;font-style:normal;src:url(SourceSans3-Regular.ttf) format('truetype')}
@font-face{font-family:'Source Sans 3';font-weight:600;font-style:normal;src:url(SourceSans3-Semibold.ttf) format('truetype')}
@font-face{font-family:'Source Sans 3';font-weight:700;font-style:normal;src:url(SourceSans3-Bold.ttf) format('truetype')}
@font-face{font-family:'Source Sans 3';font-weight:400;font-style:italic;src:url(SourceSans3-It.ttf) format('truetype')}

:root{
  --evergreen:#152D2B; --evergreen-deep:#122726; --mint:#62C3AC; --amber:#F3B148; --green:#6DD170; --coral:#EC5E50; --sage:#63978D; --mist:#DFF1ED; --paper:#F4F7F6;
  --bg:#1C3834; --surface:#244540; --surface-2:#2A4F49; --sunk:#2E554F; --ink:#F1FAF7; --muted:#AFCFC8; --muted-2:#8FB5AD; --line:#3A625B; --line-soft:#30564F;
  --accent:#62C3AC; --accent-ink:#0F2422; --link:#8FE3CE; --warn:#F7CD80; --focus:#8FE3CE; --glass:#2A4F49;
  --good-bg:#D5F4D6; --good-ink:#1C5A2B; --bad-bg:#FFDAD4; --bad-ink:#8A2419; --amber-bg:#FDF0D3; --amber-ink:#6B4400;
  --field:#1B3531; --field-line:#3E665F;
  --panel-bg:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,0) 120px),var(--surface); --panel-line:rgba(223,241,237,.12);
  --shadow-1:inset 0 1px 0 rgba(255,255,255,.06),0 12px 30px -20px rgba(0,0,0,.7),0 1px 2px rgba(0,0,0,.18);
  --shadow-2:inset 0 1px 0 rgba(255,255,255,.08),0 24px 50px -24px rgba(0,0,0,.75),0 2px 6px rgba(0,0,0,.2);
  --r-s:4px; --r-m:8px; --r-l:14px;
  --font:"Source Sans 3","Segoe UI",system-ui,-apple-system,Roboto,Arial,sans-serif;
  --mono:ui-monospace,Menlo,Consolas,"Cascadia Mono",monospace;
  color-scheme:dark;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
html,body{margin:0;min-height:100%}
body{background:radial-gradient(1100px 620px at 85% -12%,rgba(98,195,172,.20),transparent 60%),radial-gradient(900px 520px at 20% 115%,rgba(109,209,112,.10),transparent 60%),var(--bg);background-attachment:fixed;color:var(--ink);font:16px/1.5 var(--font);font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit;color:inherit}
a{color:var(--link)}
::selection{background:#62C3AC;color:#0F2422}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
h1{margin:0;font-size:28px;line-height:1.15;font-weight:700;letter-spacing:-.01em}
h2{margin:0 0 4px;font-size:19px;font-weight:700}
h3{margin:0 0 10px;font-size:16px;font-weight:700}
.sub,.mut,.muted{color:var(--muted)}
.sub{margin:0 0 14px;font-size:14px}
.strong{font-weight:700}.sm{font-size:13px}
code,.mono{font-family:var(--mono);font-size:.92em}
code{background:rgba(223,241,237,.10);padding:1px 6px;border-radius:4px}

/* ---- frame: evergreen rail + content, as in TLS Connect ---- */
.tls-app{display:grid;grid-template-columns:236px 1fr;min-height:100vh;min-height:100dvh;background:linear-gradient(to right,#132926 236px,transparent 236px)}
.tls-rail{background:linear-gradient(180deg,#152D2B,#10231F);border-right:1px solid rgba(143,227,206,.10);color:#fff;padding:18px 14px;display:flex;flex-direction:column;gap:2px;position:sticky;top:0;height:100vh;height:100dvh;overflow-y:auto}
.tls-brand{padding:6px 6px 4px;margin-bottom:4px;width:190px}
.tls-brand img{display:block;width:100%;height:auto}
.tls-brand-sub{padding:0 6px 10px;color:#8FE3CE;font-size:13px;font-weight:600;letter-spacing:.2px}
.tls-nav{all:unset;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border-radius:var(--r-s);font-size:15px;opacity:.82;color:#fff;text-decoration:none}
.tls-nav:hover{opacity:1;background:rgba(238,241,239,.08)}
.tls-nav.on,.tls-nav[aria-current="page"]{opacity:1;background:rgba(98,195,172,.16);font-weight:700;box-shadow:inset 3px 0 0 #62C3AC}
.tls-nav .n{font-size:13px;background:var(--coral);color:#fff;border-radius:10px;padding:0 7px;min-width:22px;text-align:center}
.tls-navsep{height:1px;background:rgba(223,241,237,.14);margin:8px 4px}
.tls-rail .grow{flex:1}
.tls-me{display:flex;align-items:center;gap:10px;padding:10px 8px;border-top:1px solid rgba(223,241,237,.12);margin-top:8px}
.tls-me .av{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:700;background:linear-gradient(135deg,#EC5E50,#C7452F);color:#fff;flex:none}
.tls-me b{display:block;font-size:13.5px}
.tls-me small{display:block;font-size:11.5px;color:#9FC6BE}
.tls-me .links{margin-left:auto;display:flex;flex-direction:column;gap:2px;text-align:right}
.tls-me .links a{color:#8FE3CE;font-size:12.5px;font-weight:700;text-decoration:underline;white-space:nowrap}
.tls-me small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:110px}
.tls-main{min-width:0;padding:22px 28px 60px}
.tls-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:18px;flex-wrap:wrap}
.tls-head .date{font-size:13px;color:var(--muted);font-weight:700;margin-bottom:2px}
.tls-head p{margin:4px 0 0;color:var(--muted);font-size:15px}
.tls-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.tls-search{background:var(--field);border:1px solid var(--field-line);border-radius:var(--r-s);padding:8px 10px;color:var(--ink);min-width:260px}
.tls-search::placeholder{color:#7FA59D}

/* ---- components ---- */
.tls-panel,.panel,.card{background:var(--panel-bg);border:1px solid var(--panel-line);border-radius:var(--r-m);box-shadow:var(--shadow-1);color:var(--ink)}
.tls-btn,.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;cursor:pointer;border:1px solid rgba(223,241,237,.22);background:rgba(255,255,255,.06);color:var(--ink);border-radius:var(--r-s);padding:8px 14px;font-weight:700;font-size:14px;line-height:1.3;white-space:nowrap;text-decoration:none}
.tls-btn:hover,.btn:hover{border-color:#62C3AC;background:rgba(98,195,172,.12);text-decoration:none}
.tls-btn.primary,.btn.primary{background:linear-gradient(180deg,#7AD3BE,#5BBDA5);border-color:#62C3AC;color:#0F2422;box-shadow:0 6px 16px -8px rgba(98,195,172,.8)}
.tls-btn.primary:hover,.btn.primary:hover{filter:brightness(1.08);background:linear-gradient(180deg,#7AD3BE,#5BBDA5);color:#0F2422}
.btn.amber,.tls-btn.amber{background:linear-gradient(180deg,#F7CD80,#F3B148);border-color:#F3B148;color:#3D2A00;box-shadow:0 6px 16px -8px rgba(243,177,72,.8)}
.btn.amber:hover{filter:brightness(1.06)}
.btn.danger,.tls-btn.danger{color:#FFB3A8;border-color:rgba(236,94,80,.55);background:rgba(236,94,80,.12)}
.btn.danger:hover{background:rgba(236,94,80,.22);border-color:#EC5E50}
.btn.ghost,.tls-btn.ghost{background:transparent;border-color:transparent;text-decoration:underline;padding:4px 6px}
.btn.sm,.btn.small{padding:4px 10px;font-size:13px}
.btn[disabled]{opacity:.5;cursor:not-allowed}
input[type=text],input[type=password],input[type=search],input[type=date],input[type=time],input[type=number],input[type=email],input[type=tel],input[type=url],input[type=datetime-local],select,textarea{background:var(--field);border:1px solid var(--field-line);color:var(--ink);border-radius:var(--r-s);padding:8px 10px;min-width:0;width:100%;font-size:15px}
input::placeholder,textarea::placeholder{color:#7FA59D}
input:focus,select:focus,textarea:focus{border-color:#62C3AC;outline:none;box-shadow:0 0 0 3px rgba(98,195,172,.25)}
select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' fill='none' stroke='%23AFCFC8' stroke-width='2'/></svg>");background-repeat:no-repeat;background-position:right 10px center;padding-right:30px}
select option{background:#1B3531;color:#F1FAF7}
input[type=checkbox],input[type=radio]{accent-color:#62C3AC;width:16px;height:16px}
input[type=file]{color:var(--muted)}
label{color:var(--muted);font-size:13px}
fieldset{border:1px solid var(--panel-line);border-radius:var(--r-m);padding:12px 14px;margin:0 0 12px}
legend{color:var(--muted);font-weight:700;font-size:13px;padding:0 6px}
table{border-collapse:collapse;width:100%;font-size:14px}
th{text-align:left;font-weight:700;background:transparent;color:#9FC6BE;font-size:12px;letter-spacing:.4px;text-transform:uppercase;padding:10px 12px;border-bottom:1px solid var(--line);white-space:nowrap}
td{padding:10px 12px;border-bottom:1px solid rgba(223,241,237,.08);vertical-align:top}
tbody tr:nth-child(even) td{background:rgba(255,255,255,.018)}
tbody tr:hover td{background:rgba(143,227,206,.07)}
tr:last-child td{border-bottom:0}
.tablewrap,.table-wrap{overflow-x:auto;background:var(--panel-bg);border:1px solid var(--panel-line);border-radius:var(--r-m)}
.pill{display:inline-block;font-size:12px;font-weight:700;padding:1px 8px;border-radius:10px;background:rgba(223,241,237,.12);color:#DFF1ED}
.pill.yes,.pill.ok,.pill.good{background:#D5F4D6;color:#1C5A2B}
.pill.no,.pill.bad{background:#FFDAD4;color:#8A2419}
.pill.warn{background:#FDF0D3;color:#6B4400}
.pill.mist{background:rgba(98,195,172,.22);color:#DFF1ED}
.chip{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font-size:12.5px;font-weight:700;white-space:nowrap;line-height:1.35;background:color-mix(in srgb,var(--c,var(--sage)) 34%,#F5FCFA);color:#12302C;border:1px solid color-mix(in srgb,var(--c,var(--sage)) 75%,#fff);box-shadow:inset 0 1px 0 rgba(255,255,255,.6),0 4px 12px -6px color-mix(in srgb,var(--c,var(--sage)) 80%,transparent)}
.flashes{margin-bottom:14px}
.flash{padding:10px 14px;border-radius:var(--r-s);margin-bottom:8px;font-size:14px;border:1px solid;border-left-width:4px;font-weight:500}
.flash.ok{background:rgba(109,209,112,.14);border-color:rgba(109,209,112,.45);color:#C9F2CB}
.flash.error,.flash.bad{background:rgba(236,94,80,.14);border-color:rgba(236,94,80,.5);color:#FFC7BF}
.flash.warn{background:rgba(243,177,72,.12);border-color:rgba(243,177,72,.45);color:#FBE3B4}
.banner{background:var(--glass);border:1px solid var(--line);border-left:4px solid var(--amber);padding:10px 14px;border-radius:var(--r-s);margin-bottom:16px;font-size:14px;display:flex;gap:10px;align-items:center}
.banner.bad{border-left-color:var(--coral)}.banner.ok{border-left-color:var(--green)}.banner.warn{border-left-color:var(--amber)}
.empty{padding:36px;text-align:center;color:var(--muted);border:1px dashed rgba(223,241,237,.18);border-radius:var(--r-m)}
.kpi{background:var(--panel-bg);border:1px solid var(--panel-line);border-radius:var(--r-m);padding:14px 16px;box-shadow:var(--shadow-1);position:relative;overflow:hidden}
.kpi::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--k,var(--mint))}
.kpi b{display:block;font-size:26px;line-height:1.1;color:var(--k,var(--ink))}
.kpi span{font-size:13px;color:var(--muted)}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:16px}
.hero{position:relative;overflow:hidden;padding:24px 28px;border-radius:18px;color:#fff;margin-bottom:18px;border:1px solid rgba(143,227,206,.22);background:radial-gradient(640px 260px at 90% -30%,rgba(98,195,172,.42),transparent 62%),radial-gradient(420px 220px at 65% 140%,rgba(243,177,72,.22),transparent 60%),linear-gradient(135deg,#1A3F3A 0%,#23514A 55%,#18362F 100%);box-shadow:var(--shadow-2)}
.hero::before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(223,241,237,.09) 1px,transparent 1px);background-size:18px 18px;mask-image:linear-gradient(90deg,transparent,#000 60%);pointer-events:none}
.hero .eyebrow{color:#8FE3CE;font-weight:700;font-size:14px;margin:0 0 4px}
.hero h2{font-size:26px;margin:0 0 6px}
.cnt{display:inline-grid;place-items:center;min-width:24px;height:22px;padding:0 7px;border-radius:999px;font-size:12px;font-weight:700;background:color-mix(in srgb,var(--k,var(--sage)) 30%,var(--surface));color:#F1FAF7}
.kv{display:grid;grid-template-columns:190px 1fr;gap:6px 14px;margin:0}.kv dt{color:var(--muted);font-size:13px;font-weight:700}.kv dd{margin:0}
.ok{color:#8BDE8D;font-weight:700}.bad{color:#FF9E91;font-weight:700}
.stack{display:flex;flex-direction:column;gap:16px}
div.row,.tls-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.grid{display:grid;gap:12px}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.f{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--muted)}
.f > input,.f > select,.f > textarea{color:var(--ink);font-size:15px}
.f > span{font-weight:700}
.chk{display:flex;align-items:center;gap:8px;margin:6px 0;font-weight:500;color:var(--ink);font-size:15px}
.subh{margin:16px 0 8px;font-size:14px;font-weight:700}
.toast{position:fixed;left:24px;bottom:24px;background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:var(--r-s);font-size:14px;z-index:50}
@media(max-width:980px){.g3,.g4{grid-template-columns:repeat(2,minmax(0,1fr))}.tls-main{padding:16px}}
@media(max-width:760px){.tls-app{grid-template-columns:1fr;background:none}.tls-rail{position:static;height:auto;flex-direction:row;flex-wrap:wrap;padding:12px}.tls-brand{width:170px}.tls-navsep,.tls-brand-sub,.tls-rail .grow{display:none}.tls-me{border:0;margin:0;width:100%}.g2,.g3,.g4{grid-template-columns:1fr}.kv{grid-template-columns:1fr}}
@media print{body{background:#fff;color:#000}.tls-rail,.no-print{display:none!important}.tls-app{display:block;background:none}.tls-main{padding:0}.panel,.card{box-shadow:none;background:#fff;border-color:#ccc;color:#000}}
