:root{--tc-black:#0b0b0d;--tc-gold:#c6a664;--tc-gold-light:#e7d8aa;--tc-ivory:#f7f4ec;--tc-white:#fff;--tc-gray:#6e6a61;--tc-line:#ded8ca;--tc-red:#8f1d2c;--tc-red-2:#b23443;--tc-red-soft:#f4e6e8;--tc-green:#2f6b4f;--tc-navy:#102134;--tc-radius:12px;--tc-shadow:0 18px 45px rgba(11,11,13,.08)}
.tc-portal-shell,.tc-auth-card{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--tc-black)}
.tc-portal-shell{max-width:1240px;margin:36px auto 80px;padding:0 22px}.tc-portal-header{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding:28px 30px;background:var(--tc-black);color:#fff;border-radius:var(--tc-radius) var(--tc-radius) 0 0;border-bottom:3px solid var(--tc-red)}.tc-portal-header h1{font-family:Georgia,serif;font-size:34px;line-height:1.1;margin:5px 0 6px;color:#fff}.tc-portal-header .tc-muted{color:#cbc4b3}.tc-eyebrow{display:block;text-transform:uppercase;letter-spacing:.16em;font-size:11px;font-weight:800;color:var(--tc-gold)}.tc-tabs{display:flex;gap:4px;overflow-x:auto;background:#171719;padding:0 18px}.tc-tabs a{white-space:nowrap;color:#d8d2c4;text-decoration:none;padding:15px 14px;border-bottom:3px solid transparent;font-size:13px;font-weight:700}.tc-tabs a:hover,.tc-tabs a.is-active{color:#fff;border-color:var(--tc-red)}.tc-portal-content{background:var(--tc-ivory);padding:30px;border-radius:0 0 var(--tc-radius) var(--tc-radius);min-height:460px}.tc-section-heading{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:24px}.tc-section-heading h2{font-family:Georgia,serif;font-size:30px;margin:4px 0 6px}.tc-section-heading p{margin:0;color:var(--tc-gray);max-width:760px}.tc-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:22px}.tc-stat{background:#fff;border:1px solid var(--tc-line);border-top:3px solid var(--tc-red);border-radius:8px;padding:20px;min-height:128px}.tc-stat span{display:block;font-size:12px;color:var(--tc-gray);text-transform:uppercase;letter-spacing:.08em}.tc-stat strong{display:block;font-family:Georgia,serif;font-size:24px;margin:13px 0 8px;overflow-wrap:anywhere}.tc-stat small{color:var(--tc-gray)}.tc-panel-grid{display:grid;grid-template-columns:minmax(280px,.85fr) minmax(0,1.5fr);gap:20px;margin-bottom:22px}.tc-panel{background:#fff;border:1px solid var(--tc-line);border-radius:10px;padding:24px;box-shadow:0 4px 16px rgba(11,11,13,.025)}.tc-panel h3{font-family:Georgia,serif;font-size:22px;margin:0 0 18px}.tc-panel-wide{grid-column:auto}.tc-panel-medium{max-width:720px}.tc-checklist{list-style:none;margin:0;padding:0}.tc-checklist li{display:flex;gap:10px;padding:10px 0;border-bottom:1px solid #eee9dd;color:#777168}.tc-checklist li span{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border:1px solid #cfc7b6;border-radius:50%;font-weight:800}.tc-checklist li.is-done{color:var(--tc-black)}.tc-checklist li.is-done span{background:var(--tc-green);border-color:var(--tc-green);color:#fff}.tc-form{display:flex;flex-direction:column;gap:15px}.tc-form label{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:750;min-width:0}.tc-form input,.tc-form select,.tc-form textarea{width:100%;min-width:0;box-sizing:border-box;border:1px solid #cfc8b9;background:#fff;border-radius:6px;padding:11px 12px;font:inherit;color:var(--tc-black)}.tc-form input:focus,.tc-form select:focus,.tc-form textarea:focus{outline:3px solid rgba(198,166,100,.22);border-color:var(--tc-gold)}.tc-form small,.tc-muted{color:var(--tc-gray);font-size:12px}.tc-grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:15px}.tc-span-2{grid-column:1/-1}.tc-checkbox{flex-direction:row!important;align-items:flex-start!important;font-weight:600!important}.tc-checkbox input{width:auto;margin-top:3px}.tc-button,.tc-link-button{display:inline-flex;align-items:center;justify-content:center;min-height:42px;border:1px solid var(--tc-red);border-radius:5px;background:var(--tc-red);color:#fff;font-weight:800;text-decoration:none;padding:10px 17px;cursor:pointer}.tc-button:hover,.tc-link-button:hover{background:var(--tc-red-2);border-color:var(--tc-red-2);color:#fff}.tc-link-button{background:transparent;color:inherit;border-color:var(--tc-gold)}.tc-portal-header .tc-link-button{color:#fff}.tc-text-button{border:0;background:none;color:var(--tc-navy);font-weight:700;cursor:pointer;padding:4px}.tc-text-button.is-danger{color:var(--tc-red)}.tc-actions{display:flex;gap:8px;align-items:center}.tc-table-wrap{overflow:auto}.tc-table{width:100%;border-collapse:collapse;font-size:13px}.tc-table th{text-align:left;text-transform:uppercase;letter-spacing:.06em;font-size:10px;color:var(--tc-gray);padding:10px;border-bottom:2px solid var(--tc-line)}.tc-table td{padding:12px 10px;border-bottom:1px solid #ece7db;vertical-align:top}.tc-table td strong,.tc-table td small{display:block}.tc-table td small{color:var(--tc-gray);margin-top:3px;max-width:360px;overflow-wrap:anywhere}.tc-badge{display:inline-flex;border-radius:999px;background:#eee9dd;padding:5px 9px;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.tc-badge.is-good{background:#e2f1e9;color:#24563f}.tc-badge.is-muted{background:#ecebea;color:#6b6863}.tc-definition{display:grid;grid-template-columns:140px 1fr;margin:0}.tc-definition dt,.tc-definition dd{padding:10px 0;border-bottom:1px solid #eee9dd}.tc-definition dt{color:var(--tc-gray);font-size:12px}.tc-definition dd{margin:0;font-weight:700;overflow-wrap:anywhere}.tc-copy-value{padding:16px;background:var(--tc-black);color:var(--tc-gold);border-radius:6px;overflow:auto}.tc-copy-value code{color:inherit}.tc-plan-name{font-family:Georgia,serif;font-size:30px;color:var(--tc-gold);margin:0 0 15px}.tc-secret-reveal{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:12px;background:var(--tc-black);color:#fff;padding:18px 20px;border-left:5px solid var(--tc-red);margin-bottom:22px;border-radius:6px}.tc-secret-reveal span,.tc-secret-reveal small{grid-column:1/-1}.tc-secret-reveal strong{font-size:34px;letter-spacing:.16em;color:var(--tc-gold)}.tc-notice{max-width:1240px;margin:16px auto;padding:13px 16px;border-radius:6px;border:1px solid}.tc-notice-success{background:#eaf5ef;border-color:#a9d2bc;color:#22523c}.tc-notice-error{background:#fff0f1;border-color:#e1b4b8;color:#7a222a}.tc-auth-card{max-width:660px;margin:55px auto;padding:38px;background:#fff;border:1px solid var(--tc-line);border-top:5px solid var(--tc-red);box-shadow:var(--tc-shadow);border-radius:8px}.tc-auth-card h1{font-family:Georgia,serif;font-size:36px;line-height:1.15;margin:8px 0 24px}.tc-auth-card #loginform{display:flex;flex-direction:column;gap:15px}.tc-auth-card #loginform p{margin:0}.tc-auth-card #loginform label{display:flex;flex-direction:column;gap:7px;font-weight:700}.tc-auth-card #loginform input[type=text],.tc-auth-card #loginform input[type=password]{width:100%;box-sizing:border-box;padding:12px;border:1px solid #cfc8b9;border-radius:5px}.tc-auth-card #wp-submit{background:var(--tc-red);color:#fff;border:0;padding:12px 18px;font-weight:800;border-radius:5px;cursor:pointer}.tc-message-card{max-width:760px}
@media(max-width:920px){.tc-stat-grid{grid-template-columns:repeat(2,1fr)}.tc-panel-grid{grid-template-columns:1fr}.tc-panel-wide{grid-column:auto}.tc-portal-header{align-items:flex-start}.tc-definition{grid-template-columns:1fr}.tc-definition dt{padding-bottom:2px;border-bottom:0}.tc-definition dd{padding-top:2px}}
@media(max-width:620px){.tc-portal-shell{padding:0 10px;margin-top:18px}.tc-portal-content{padding:20px 14px}.tc-portal-header{padding:22px 18px;display:block}.tc-portal-header .tc-link-button{margin-top:15px}.tc-stat-grid,.tc-grid-2{grid-template-columns:1fr}.tc-span-2{grid-column:auto}.tc-secret-reveal{grid-template-columns:1fr}.tc-secret-reveal strong{font-size:28px}.tc-auth-card{margin:25px 12px;padding:26px 20px}}
.tc-message-view{max-width:900px;margin:0 auto}.tc-message-view>p:first-child{margin-top:0}.tc-message-view h3{font-size:30px;margin:8px 0 18px}.tc-message-body{margin-top:22px;padding:22px;background:#faf8f2;border:1px solid var(--tc-line);border-left:4px solid var(--tc-red);border-radius:7px;line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere}.tc-attachments{margin-top:24px;padding-top:18px;border-top:1px solid var(--tc-line)}.tc-attachments h4{margin:0 0 10px;font-family:Georgia,serif;font-size:18px}.tc-attachments ul{margin:0;padding-left:20px}.tc-attachments li{margin:7px 0}.tc-attachments a{font-weight:750;color:var(--tc-navy)}

/* ==========================================================================
   Private Number tab. Uses the existing Trusted Communications tokens and
   component conventions -- this extends the portal, it does not restyle it.
   ========================================================================== */

.tc-pn-hero {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 22px;
	padding: 30px 32px;
	background: var(--tc-black);
	border-radius: var(--tc-radius);
	box-shadow: var(--tc-shadow);
}

.tc-pn-hero > div:first-child { min-width: 0; }

.tc-pn-hero span.tc-pn-label {
	display: block;
	font-size: 12px;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--tc-gold);
	margin-bottom: 10px;
}

.tc-pn-value {
	display: block;
	font-family: Georgia, serif;
	font-size: clamp(40px, 9vw, 64px);
	line-height: 1;
	letter-spacing: .14em;
	color: #fff;
	font-weight: 700;
}

.tc-pn-hero-actions {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 10px;
}

.tc-pn-instructions {
	background: var(--tc-ivory);
	border: 1px solid var(--tc-line);
	border-radius: var(--tc-radius);
	padding: 18px 20px;
	margin: 14px 0 0;
	font-size: 15px;
	line-height: 1.6;
}

.tc-pn-pair {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 14px;
	align-items: baseline;
	padding: 10px 0;
	border-bottom: 1px solid var(--tc-line);
}

.tc-pn-pair:last-child { border-bottom: 0; }

.tc-pn-pair dt {
	flex: 0 0 auto;
	font-size: 12px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--tc-gray);
}

.tc-pn-pair dd {
	margin: 0;
	font-family: Georgia, serif;
	font-size: 22px;
	letter-spacing: .06em;
	color: var(--tc-black);
}

.tc-pn-warning {
	border-left: 3px solid var(--tc-red);
	background: var(--tc-red-soft);
	padding: 14px 18px;
	border-radius: 0 var(--tc-radius) var(--tc-radius) 0;
	font-size: 14px;
	line-height: 1.6;
	margin-bottom: 16px;
}

.tc-pn-empty {
	text-align: center;
	padding: 40px 24px;
}

.tc-pn-masked {
	font-family: Georgia, serif;
	font-size: 20px;
	letter-spacing: .08em;
}

@media (max-width: 640px) {
	.tc-pn-hero { padding: 24px 20px; }
	.tc-pn-hero-actions { width: 100%; }
	.tc-pn-value { letter-spacing: .1em; }
}

/* The shared .tc-link-button is designed for light panels: on the dark hero its
   text resolves to the same value as the background (#0b0b0d on #0b0b0d, a 1:1
   contrast ratio -- invisible). Re-colour it for the dark context only, leaving
   the shared component untouched everywhere else. */
.tc-pn-hero-actions .tc-link-button {
	color: var(--tc-gold);
	border-color: var(--tc-gold);
	background: transparent;
}

.tc-pn-hero-actions .tc-link-button:hover,
.tc-pn-hero-actions .tc-link-button:focus-visible {
	color: var(--tc-black);
	background: var(--tc-gold);
	border-color: var(--tc-gold);
}
