:root { --red:#e82f36; --red-dark:#b71820; --ink:#12161b; --muted:#68717c; --line:#dfe3e7; --paper:#f4f5f6; --white:#fff; }
* { box-sizing:border-box; }
html, body { margin:0; min-height:100%; background:var(--paper); color:var(--ink); font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif; }
body { min-width:320px; } a { color:inherit; text-decoration:none; } button,input { font:inherit; }
.portal-shell { min-height:100vh; display:flex; }
.sidebar { width:278px; position:fixed; inset:0 auto 0 0; background:#0b0e12; color:#d8dde3; display:flex; flex-direction:column; z-index:40; box-shadow:16px 0 45px rgba(18,22,27,.08); }
.brand { height:112px; padding:22px 22px 18px; display:flex; align-items:center; border-bottom:1px solid rgba(255,255,255,.08); }
.brand-home { display:block; width:100%; padding:0; border:0; background:transparent; cursor:pointer; text-align:left; } .brand img { width:100%; max-width:218px; height:68px; object-fit:contain; object-position:left center; }
.brand .close-menu { display:none; border:0; background:transparent; color:white; padding:8px; }
.sidebar nav { flex:1; overflow:auto; padding:15px 13px; } .nav-group { margin-bottom:17px; }
.nav-group p { margin:0 12px 7px; font-size:10px; font-weight:800; letter-spacing:.17em; text-transform:uppercase; color:#6f7883; }
.nav-group button { width:100%; border:0; color:inherit; background:transparent; text-align:left; display:flex; align-items:center; gap:11px; min-height:40px; padding:9px 12px; margin:2px 0; border-radius:9px; font-size:13px; font-weight:650; transition:.18s ease; cursor:pointer; }
.nav-group button:hover { background:rgba(255,255,255,.07); color:white; }
.nav-group button.active { color:white; background:linear-gradient(135deg,var(--red-dark),var(--red)); box-shadow:0 7px 20px rgba(232,47,54,.25); }
.sidebar-foot { margin:10px 18px 19px; padding:14px; display:flex; align-items:center; gap:11px; background:#13181e; border:1px solid rgba(255,255,255,.07); border-radius:11px; }
.sidebar-foot div { display:flex; flex-direction:column; gap:2px; } .sidebar-foot strong { color:#f1f3f5; font-size:11px; } .sidebar-foot small { color:#7f8994; font-size:9px; }
.status-dot { width:9px; height:9px; border-radius:50%; background:#47c784; box-shadow:0 0 0 4px rgba(71,199,132,.12); }
.workspace { margin-left:278px; width:calc(100% - 278px); min-height:100vh; display:flex; flex-direction:column; }
.topbar { height:82px; display:flex; align-items:center; justify-content:space-between; padding:0 38px; background:rgba(255,255,255,.94); border-bottom:1px solid var(--line); position:sticky; top:0; z-index:20; backdrop-filter:blur(10px); }
.topbar-title { display:flex; flex-direction:column; gap:3px; } .topbar-title span { color:#8a929b; font-size:10px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; } .topbar-title strong { font-size:17px; letter-spacing:-.02em; }
.menu-button { display:none; border:0; background:transparent; padding:8px; }
.user-chip { display:flex; align-items:center; gap:10px; } .user-chip>span { display:grid; place-items:center; width:38px; height:38px; border-radius:10px; color:white; background:var(--red); font-size:12px; font-weight:900; letter-spacing:.06em; }
.user-chip div { display:flex; flex-direction:column; gap:1px; } .user-chip strong { font-size:11px; } .user-chip small { color:#8a929b; font-size:9px; }
.content { width:min(1320px,100%); margin:0 auto; padding:34px 38px 55px; flex:1; }
.eyebrow { display:block; margin-bottom:9px; color:var(--red); font-size:10px; font-weight:900; letter-spacing:.17em; text-transform:uppercase; }
.hero-panel { min-height:325px; display:grid; grid-template-columns:1.02fr .98fr; background:#101419; border-radius:17px; overflow:hidden; box-shadow:0 18px 45px rgba(19,23,28,.14); }
.hero-copy { padding:49px 50px; display:flex; flex-direction:column; justify-content:center; color:white; position:relative; }
.hero-copy:before { content:""; position:absolute; width:4px; height:66px; left:0; top:52px; background:var(--red); }
.hero-copy h2 { max-width:580px; margin:0; font-size:clamp(34px,4vw,58px); line-height:1.01; letter-spacing:-.052em; }
.hero-copy p { max-width:520px; margin:21px 0 0; color:#bac1c9; font-size:15px; line-height:1.7; }
.hero-art { position:relative; min-height:300px; } .hero-art:after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,#101419 0%,transparent 40%),linear-gradient(0deg,rgba(232,47,54,.15),transparent 55%); }
.hero-art img { width:100%; height:100%; object-fit:cover; filter:saturate(.72) contrast(1.08); }
.section-heading { margin:34px 0 17px; display:flex; align-items:end; justify-content:space-between; } .section-heading h3,.action-panel h3 { margin:0; font-size:25px; letter-spacing:-.035em; }
.quick-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:13px; }
.quick-card { width:100%; min-height:126px; padding:19px; color:inherit; text-align:left; cursor:pointer; background:white; border:1px solid var(--line); border-radius:13px; display:grid; grid-template-columns:auto 1fr auto; align-items:start; gap:13px; transition:.18s ease; }
.quick-card:hover,.resource-card:hover { transform:translateY(-2px); border-color:#c9ced4; box-shadow:0 12px 24px rgba(20,25,31,.08); }
.quick-card>span { display:grid; place-items:center; width:39px; height:39px; border-radius:9px; background:#fff0f0; color:var(--red); }
.quick-card div { display:flex; flex-direction:column; gap:6px; } .quick-card strong { font-size:14px; } .quick-card small { color:var(--muted); line-height:1.45; font-size:10px; }
.arrow { color:#a5acb3; margin-top:6px; font-size:22px; line-height:1; }
.home-lower { margin-top:31px; display:grid; grid-template-columns:1.65fr .7fr; gap:17px; }
.action-panel,.info-panel { background:white; border:1px solid var(--line); border-radius:14px; padding:24px; }
.action-panel .resource-grid { margin-top:18px; grid-template-columns:repeat(2,1fr); }
.info-panel { background:linear-gradient(150deg,#ca2229,#ed343c); color:white; display:flex; flex-direction:column; justify-content:flex-end; min-height:245px; position:relative; overflow:hidden; }
.info-panel:before { content:"CTE"; position:absolute; right:-8px; top:-24px; font-size:100px; font-weight:950; color:rgba(255,255,255,.08); letter-spacing:-.1em; }
.info-panel h3 { font-size:23px; margin:18px 0 8px; } .info-panel p { margin:0; color:#ffe9e9; font-size:12px; line-height:1.6; }
.page-intro { min-height:167px; padding:32px 37px; color:white; background:linear-gradient(120deg,#11161c,#242b33); border-radius:16px; display:flex; align-items:center; justify-content:space-between; overflow:hidden; position:relative; }
.page-intro:after { content:""; position:absolute; width:260px; height:260px; right:-85px; top:-110px; border:47px solid rgba(232,47,54,.13); border-radius:50%; }
.page-intro h1 { margin:0; font-size:clamp(34px,4vw,52px); line-height:1; letter-spacing:-.05em; } .page-intro p { max-width:680px; margin:14px 0 0; color:#b9c0c8; font-size:14px; line-height:1.6; }
.page-mark { width:71px; height:71px; flex:none; display:grid; place-items:center; border-radius:15px; background:var(--red); box-shadow:0 12px 32px rgba(232,47,54,.28); z-index:1; }
.resource-toolbar { margin:27px 0 15px; display:flex; align-items:end; justify-content:space-between; gap:20px; }
.resource-toolbar>div { display:flex; flex-direction:column; gap:3px; } .resource-toolbar strong { font-size:14px; } .resource-toolbar span { color:#8a929b; font-size:10px; }
.resource-toolbar label { width:min(350px,100%); height:41px; padding:0 12px; background:white; border:1px solid var(--line); border-radius:9px; display:flex; align-items:center; gap:7px; color:#8b929a; }
.resource-toolbar input { height:100%; border:0; box-shadow:none; background:transparent; padding:0; font-size:12px; }
.resource-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.resource-card { min-height:76px; display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:12px; background:white; border:1px solid var(--line); border-radius:11px; padding:13px; transition:.18s ease; }
.resource-icon { width:39px; height:39px; display:grid; place-items:center; border-radius:9px; background:#f0f2f4; color:#414a54; font-size:10px; font-weight:900; letter-spacing:.03em; }
.resource-copy { min-width:0; display:flex; flex-direction:column; gap:4px; } .resource-copy strong { font-size:12px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; } .resource-copy small { color:#9299a1; font-size:9px; }
.empty-state { min-height:210px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; text-align:center; color:#8a929b; background:white; border:1px dashed #cfd4d9; border-radius:13px; }
.empty-state strong { color:#3d4650; font-size:14px; } .empty-state span { font-size:11px; }
.notice { margin:23px 0 14px; padding:14px 16px; display:flex; gap:11px; align-items:flex-start; background:#fff9e8; color:#665525; border:1px solid #eadcae; border-radius:10px; font-size:11px; line-height:1.55; }
.notice svg { flex:none; color:#a58219; }
.location-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; } .location-card { min-height:205px; padding:22px; background:white; border:1px solid var(--line); border-radius:13px; }
.location-top { display:flex; align-items:center; justify-content:space-between; gap:12px; } .location-top>span { display:grid; place-items:center; width:39px; height:39px; color:var(--red); background:#fff0f0; border-radius:9px; } .location-top small { color:#8a929b; font-size:10px; }
.location-card h3 { margin:18px 0 12px; font-size:19px; } .location-card p,.location-card a { display:flex; align-items:flex-start; gap:8px; margin:8px 0; color:#626c76; font-size:11px; line-height:1.4; }
.location-card a:hover { color:var(--red); }
.legacy { margin-top:13px; padding:15px 18px; display:flex; flex-direction:column; gap:5px; border-radius:10px; background:#e9ecef; color:#656e77; } .legacy strong { color:#303841; font-size:11px; } .legacy span { font-size:10px; }
footer { display:flex; justify-content:space-between; gap:15px; padding:22px 38px; border-top:1px solid var(--line); color:#9299a1; font-size:9px; }
.scrim { display:none; }
.nav-icon { width:18px; text-align:center; font-weight:900; }
.page-mark { font-size:28px; font-weight:900; }
.big-icon { font-size:26px; }
.empty-icon { font-size:26px; }
.notice-icon { flex:none; color:#a58219; font-size:18px; font-weight:900; }
.menu-button,.close-menu { cursor:pointer; color:inherit; font-size:22px; line-height:1; }
.load-error { min-height:100vh; display:grid; place-content:center; justify-items:center; gap:10px; padding:30px; text-align:center; }
.load-error img { width:min(430px,85vw); } .load-error h1 { margin:20px 0 0; } .load-error p { color:var(--muted); }
@media (max-width:1080px) { .quick-grid,.resource-grid { grid-template-columns:repeat(2,1fr); } .hero-panel { grid-template-columns:1.2fr .8fr; } }
@media (max-width:820px) { .sidebar { transform:translateX(-100%); transition:.22s ease; } .sidebar.open { transform:translateX(0); } .brand .close-menu { display:block; } .scrim { display:block; position:fixed; inset:0; z-index:35; border:0; background:rgba(8,11,14,.58); } .workspace { margin-left:0; width:100%; } .menu-button { display:block; } .topbar { padding:0 20px; justify-content:flex-start; gap:14px; } .user-chip { margin-left:auto; } .content { padding:25px 20px 42px; } .hero-panel { grid-template-columns:1fr; } .hero-copy { padding:38px 32px; min-height:300px; } .hero-art { min-height:190px; } .hero-art:after { background:linear-gradient(180deg,#101419,transparent 45%); } .home-lower { grid-template-columns:1fr; } }
@media (max-width:590px) { .topbar-title span,.user-chip div { display:none; } .topbar { height:66px; } .quick-grid,.resource-grid,.action-panel .resource-grid,.location-grid { grid-template-columns:1fr; } .page-intro { padding:27px 23px; } .page-mark { width:55px; height:55px; } .resource-toolbar { align-items:stretch; flex-direction:column; } .resource-toolbar label { width:100%; } footer { padding:19px 20px; flex-direction:column; } }
@media (prefers-reduced-motion:reduce) { * { scroll-behavior:auto!important; transition:none!important; } }

/* Company directory contacts */
.directory-contacts { list-style:none; padding:0; margin:18px 0 0; border-top:1px solid var(--line); }
.directory-contacts li { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:4px 16px; padding:12px 0; border-bottom:1px solid var(--line); }
.directory-contacts li:last-child { border-bottom:0; padding-bottom:0; }
.directory-contacts strong { font-size:13px; color:var(--ink, #202830); }
.directory-contacts a { margin:0; padding:6px 0; font-size:13px; font-weight:600; color:var(--red); white-space:nowrap; }

.contact-details { display:flex; flex-wrap:wrap; align-items:center; gap:4px 12px; }
.contact-extension { font-size:12px; font-weight:600; color:#626c76; white-space:nowrap; }

.directory-section { margin-top:26px; }
.directory-section h2 { font-size:20px; margin:0 0 12px; }
.directory-description { font-size:13px; line-height:1.6; color:#626c76; margin:0 0 18px; }
