:root{
  --font-sans:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --bg:#f4f7fb;--surface:#fff;--surface-soft:#f8fafc;--surface-tint:#f3f7fb;
  --text:#162236;--muted:#6d7b8c;--muted-2:#8e9aaa;--line:#e4eaf1;
  --navy:#102235;--navy-2:#172f47;--red:#c92c36;--red-dark:#a61f2a;--blue:#245f8f;
  --green:#18845b;--amber:#bd7412;--danger:#be3340;
  --shadow-sm:0 1px 2px rgba(16,34,53,.05),0 8px 24px rgba(16,34,53,.05);
  --shadow-lg:0 28px 70px rgba(7,20,35,.22);
  --radius:16px;--radius-sm:11px;
  font-family:var(--font-sans);color:var(--text);background:var(--bg)
}
*{box-sizing:border-box}html{min-height:100%}body{margin:0;min-height:100vh;background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:14px;line-height:1.55;-webkit-font-smoothing:antialiased}
a{color:var(--blue);text-decoration:none}a:hover{color:#154b76}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.eyebrow{display:block;color:var(--muted-2);font-size:11px;font-weight:800;letter-spacing:.11em;text-transform:uppercase}.eyebrow.accent{color:var(--red)}h1,h2,h3{color:var(--text);line-height:1.16;letter-spacing:-.025em}h1{font-size:clamp(28px,3vw,38px);margin:0 0 8px}h2{font-size:20px;margin:0 0 12px}h3{font-size:16px;margin:0 0 8px}.muted{color:var(--muted)}.right{text-align:right}.nowrap{white-space:nowrap}

/* Authenticated application shell */
.app-frame{min-height:100vh;display:grid;grid-template-columns:260px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;background:linear-gradient(180deg,#102235 0%,#0d1d2e 100%);color:#fff;padding:24px 16px 18px;display:flex;flex-direction:column;overflow-y:auto}.sidebar-brand{display:flex;align-items:center;gap:12px;padding:0 8px 24px;border-bottom:1px solid rgba(255,255,255,.09)}.brand-mark{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(145deg,#e3474f 0%,#a81725 100%);box-shadow:0 8px 20px rgba(201,44,54,.28);color:#fff;font-weight:900;letter-spacing:-.05em}.brand-mark.large{width:50px;height:50px;border-radius:15px;font-size:21px}.brand-mark.small{width:30px;height:30px;border-radius:9px;font-size:13px}.brand-mark span{transform:translateY(-.5px)}.portal-brand-logo-wrap{width:44px;height:44px;flex:0 0 44px;display:grid;place-items:center;overflow:hidden}.portal-brand-logo{display:block;max-width:42px;max-height:42px;width:auto;height:auto;object-fit:contain}.portal-brand-logo-wrap.small{width:32px;height:32px;flex-basis:32px}.portal-brand-logo-wrap.small .portal-brand-logo{max-width:30px;max-height:30px}.brand-copy{min-width:0;display:flex;flex-direction:column}.brand-copy strong{font-size:15px;letter-spacing:-.015em}.brand-copy span{font-size:11px;color:#aab8c6;margin-top:1px}.sidebar-context{margin:20px 8px 12px;padding:14px;border:1px solid rgba(255,255,255,.09);background:rgba(255,255,255,.055);border-radius:13px;display:flex;flex-direction:column}.sidebar-context .eyebrow{color:#8194a7;margin-bottom:5px}.sidebar-context strong{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-context small{font-size:11px;color:#9fb0c1;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.side-nav{display:flex;flex-direction:column;gap:5px;margin-top:6px}.nav-link{position:relative;display:flex;align-items:center;gap:11px;color:#aebdca;padding:10px 12px;border-radius:11px;font-weight:650;transition:.16s ease}.nav-link svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}.nav-link:hover{background:rgba(255,255,255,.07);color:#fff;text-decoration:none}.nav-link.active{background:rgba(255,255,255,.11);color:#fff;box-shadow:inset 3px 0 0 var(--red)}.nav-link.active:after{content:"";position:absolute;right:12px;width:5px;height:5px;border-radius:50%;background:#ef5961}.sidebar-user{margin-top:auto;padding:16px 8px 2px;border-top:1px solid rgba(255,255,255,.09);display:flex;align-items:center;gap:10px}.avatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#243f58;color:#fff;font-size:13px;font-weight:800;border:1px solid rgba(255,255,255,.1)}.user-copy{min-width:0;display:flex;flex-direction:column}.user-copy strong{font-size:12px}.user-copy span{font-size:10px;color:#91a3b4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:165px}.sidebar-version{padding:10px 8px 0;display:flex;flex-direction:column;gap:2px;color:#6f8498;font-size:9.5px;line-height:1.4}.sidebar-version span:first-child{color:#8fa2b4}.workspace{min-width:0}.topbar{height:72px;background:rgba(255,255,255,.92);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);padding:0 30px;display:flex;align-items:center;justify-content:space-between;gap:20px;position:sticky;top:0;z-index:20}.mobile-brand{display:none}.topbar-title{display:flex;flex-direction:column;min-width:0}.topbar-title .eyebrow{margin-bottom:2px}.topbar-title strong{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.account-switch{display:flex;gap:9px;align-items:center}.account-form select{max-width:340px;height:39px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--text);padding:0 34px 0 12px;font:inherit;font-size:12px;font-weight:650;outline:none}.account-form select:focus{border-color:#8ca9c3;box-shadow:0 0 0 3px rgba(36,95,143,.10)}.icon-button{width:39px;height:39px;border-radius:10px;border:1px solid var(--line);background:#fff;color:#59697b;display:grid;place-items:center;padding:0;cursor:pointer}.icon-button:hover{color:var(--red);border-color:#edc7ca;background:#fff8f8}.icon-button svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.content{width:min(100%,1480px);padding:32px 34px 46px}.page-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:24px}.page-hero p{margin:4px 0 0;color:var(--muted);font-size:14px}.hero-separator{margin:0 7px;color:#b1bac4}

/* Cards, metrics, tables and forms */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:21px;box-shadow:var(--shadow-sm);margin-bottom:16px}.card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:16px}.card-head .eyebrow{margin-bottom:4px}.card-head h2{margin:0}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.metric{position:relative;overflow:hidden;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px 18px 17px;box-shadow:var(--shadow-sm);min-height:145px}.metric:after{content:"";position:absolute;right:-25px;bottom:-35px;width:95px;height:95px;border-radius:50%;background:rgba(36,95,143,.045)}.metric-primary{background:linear-gradient(150deg,#fff 0%,#f9fbfd 100%);border-top:3px solid var(--navy)}.metric-alert{border-top:3px solid var(--danger)}.metric-top{display:flex;align-items:center;gap:9px}.metric-icon{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:#edf4fa;color:#245f8f}.metric-icon.neutral{background:#f0f3f7;color:#5f7082}.metric-icon.warning{background:#fff5e7;color:#b26a10}.metric-icon.danger{background:#fff0f1;color:#b72e3b}.metric-icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.metric-label{font-size:12px;color:var(--muted);font-weight:700}.metric .big{font-size:27px;line-height:1.1;font-weight:800;margin-top:18px;letter-spacing:-.035em;color:var(--text)}.metric-note{color:var(--muted-2);font-size:11px;margin-top:6px}.table-wrap{overflow:auto;border-radius:12px}.table{border-collapse:separate;border-spacing:0;width:100%;min-width:690px}.table th,.table td{text-align:left;padding:12px 11px;vertical-align:middle;border-bottom:1px solid #edf1f5}.table th{color:#7a8795;background:#f8fafc;font-size:10px;letter-spacing:.065em;text-transform:uppercase;font-weight:800}.table thead th:first-child{border-radius:10px 0 0 10px}.table thead th:last-child{border-radius:0 10px 10px 0}.table tbody tr{transition:background .13s ease}.table tbody tr:hover{background:#fbfcfe}.table tbody tr:last-child td{border-bottom:0}.table .right{text-align:right}.money{font-variant-numeric:tabular-nums;font-weight:650}.money.balance{color:#3b4a5b}.invoice-link{display:inline-flex;align-items:center;gap:8px;color:var(--text);font-weight:750}.invoice-link:hover{text-decoration:none;color:var(--blue)}.invoice-icon{width:25px;height:25px;border-radius:7px;background:#eef4f8;color:var(--blue);display:grid;place-items:center;font-size:11px}.status{display:inline-flex;align-items:center;min-height:24px;padding:3px 8px;border-radius:999px;font-size:10px;font-weight:800;border:1px solid #dce3e9;background:#f7f9fb;color:#667788}.status-paid{background:#edf9f3;border-color:#caebda;color:#17734f}.status-unpaid{background:#fff2f3;border-color:#f2d0d3;color:#b52d39}.status-partially-paid,.status-partial{background:#fff7e9;border-color:#f1dfbc;color:#9b6112}.status-cancelled{background:#f1f3f6;border-color:#dce1e6;color:#6d7883}.text-link{font-size:12px;font-weight:750;white-space:nowrap}.text-link span{display:inline-block;margin-left:4px;transition:transform .15s}.text-link:hover span{transform:translateX(2px)}.empty-state{padding:28px;display:flex;flex-direction:column;align-items:center;text-align:center;color:var(--muted)}.empty-state .empty-icon{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#edf8f3;color:var(--green);font-weight:900;margin-bottom:8px}.empty-state strong{color:var(--text);margin-bottom:2px}.empty-state span{font-size:12px}.field label{display:block;font-weight:750;font-size:11px;color:#4d5c6c;margin-bottom:6px}.field input,.field select,.field textarea,select,input[type="text"],input[type="search"]{width:100%;border:1px solid #d5dde5;border-radius:10px;padding:10px 11px;background:#fff;color:var(--text);font:inherit;outline:none;transition:border-color .15s,box-shadow .15s}.field input:focus,.field select:focus,.field textarea:focus,select:focus,input:focus{border-color:#8ca9c3;box-shadow:0 0 0 3px rgba(36,95,143,.10)}.field input:disabled{background:#f5f7f9;color:#788694}.actions{display:flex;gap:9px;flex-wrap:wrap;align-items:center}button,.button{border:0;border-radius:10px;background:var(--blue);color:#fff;padding:10px 14px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:7px;font:inherit;font-weight:750;transition:.15s ease}button:hover,.button:hover{background:#174d78;color:#fff;text-decoration:none;transform:translateY(-1px)}button.secondary,.button.secondary{background:#5f6e7d}.soft-button{background:#fff!important;color:#425366!important;border:1px solid var(--line)!important;box-shadow:0 4px 16px rgba(16,34,53,.04)}.soft-button:hover{border-color:#cbd5df!important;color:var(--text)!important}.flash{padding:12px 14px;border-radius:12px;margin:0 0 16px;border:1px solid transparent;font-size:12px;font-weight:650}.flash.success{background:#edf9f3;border-color:#cbe9da;color:#176b4c}.flash.danger{background:#fff1f2;border-color:#f1ccd0;color:#a82734}.flash.warning{background:#fff8e9;border-color:#eeddb6;color:#8f5d12}.badge{display:inline-flex;align-items:center;border-radius:999px;border:1px solid #d7dfe6;padding:4px 8px;font-size:10px;font-weight:750;background:#f8fafb;color:#5f6f7f}

/* Dashboard */
.modern-summary{margin-bottom:18px}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:18px;align-items:start}.recent-bills-card{min-width:0;margin:0}.dashboard-aside{display:flex;flex-direction:column;gap:18px}.dashboard-aside .card{margin:0}.account-card{background:linear-gradient(155deg,#fff 0%,#f8fbfe 100%)}.account-card .eyebrow{margin-bottom:5px}.account-card h2{font-size:18px;margin-bottom:18px}.account-ref{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:12px 0;display:flex;justify-content:space-between;gap:12px;font-size:11px;color:var(--muted)}.account-ref strong{color:var(--text)}.account-security{display:flex;align-items:center;gap:8px;color:var(--green);font-size:11px;font-weight:750;margin-top:14px}.account-security svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.payment-card{position:relative;overflow:hidden}.payment-card:after{content:"";position:absolute;width:115px;height:115px;border-radius:50%;right:-52px;bottom:-55px;background:#f3f7fa}.payment-icon{width:38px;height:38px;border-radius:12px;background:#edf5fa;color:var(--blue);display:grid;place-items:center;margin-bottom:16px}.payment-icon svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.payment-amount{font-size:25px;font-weight:850;letter-spacing:-.035em;margin-top:6px}.payment-meta{color:var(--muted);font-size:11px;margin-top:3px}.payment-reference{margin-top:12px;padding-top:11px;border-top:1px solid var(--line);font-size:10px;color:var(--muted);word-break:break-word}.empty-payment h3{margin-top:8px}.empty-payment p{font-size:11px;color:var(--muted);margin:0}.dashboard-table{min-width:760px}

/* Login */
.login-page{min-height:100vh;display:grid;place-items:center;padding:34px;background:radial-gradient(circle at 12% 15%,#fcecee 0,transparent 27%),radial-gradient(circle at 90% 86%,#e7f1f9 0,transparent 31%),linear-gradient(145deg,#f7f9fc 0%,#eef3f8 100%);position:relative;overflow:hidden}.login-page:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(15,34,53,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(15,34,53,.025) 1px,transparent 1px);background-size:34px 34px;mask-image:linear-gradient(to bottom,rgba(0,0,0,.5),transparent 80%);pointer-events:none}.login-glow{position:absolute;border-radius:50%;filter:blur(5px);opacity:.38;pointer-events:none}.login-glow-one{width:360px;height:360px;background:#e8b8bd;left:-180px;top:-170px}.login-glow-two{width:440px;height:440px;background:#cfe0ed;right:-230px;bottom:-230px}.login-panel{position:relative;z-index:1;width:min(1040px,100%);min-height:610px;background:#fff;border:1px solid rgba(212,221,230,.85);border-radius:24px;box-shadow:var(--shadow-lg);overflow:hidden;display:grid;grid-template-columns:1.02fr .98fr}.login-brand-panel{position:relative;overflow:hidden;padding:44px 46px;background:linear-gradient(155deg,#102235 0%,#142c43 55%,#183852 100%);color:#fff;display:flex;flex-direction:column}.login-brand-panel:before{content:"";position:absolute;width:380px;height:380px;border:1px solid rgba(255,255,255,.08);border-radius:50%;right:-170px;top:120px;box-shadow:0 0 0 70px rgba(255,255,255,.025),0 0 0 140px rgba(255,255,255,.018)}.login-brand-panel:after{content:"";position:absolute;width:4px;height:110px;background:linear-gradient(var(--red),transparent);left:0;top:70px}.login-brand-head,.login-message,.login-announcement,.login-trust-row,.login-brand-footer{position:relative;z-index:1}.login-brand-head{display:flex;align-items:center;gap:14px}.login-wordmark{font-size:19px;font-weight:850;letter-spacing:-.02em}.login-subbrand{font-size:11px;color:#9fb1c2;margin-top:1px}.login-message{margin:0;padding:55px 0 28px;max-width:510px}.login-kicker{color:#f06a72;font-size:11px;font-weight:850;text-transform:uppercase;letter-spacing:.12em}.login-message h1{color:#fff;font-size:clamp(32px,4vw,47px);max-width:500px;margin:12px 0 18px;letter-spacing:-.04em}.login-message p{font-size:14px;line-height:1.7;color:#b8c7d4;max-width:470px;margin:0}.login-trust-row{display:flex;gap:22px;flex-wrap:wrap;padding:18px 0;border-top:1px solid rgba(255,255,255,.09);border-bottom:1px solid rgba(255,255,255,.09);margin-top:auto}.trust-item{display:flex;align-items:center;gap:8px;color:#b7c6d3;font-size:11px;font-weight:650}.trust-item svg{width:17px;height:17px;fill:none;stroke:#e0565f;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.login-brand-footer{font-size:10px;color:#73899b;margin-top:20px;display:flex;flex-direction:column;gap:3px}.login-version{color:#6f8498;font-size:9.5px}.login-form-panel{display:grid;place-items:center;padding:50px 54px;background:linear-gradient(180deg,#fff 0%,#fcfdfe 100%)}.login-form-wrap{width:min(380px,100%)}.login-form-wrap .eyebrow{margin-bottom:7px}.login-form-wrap h2{font-size:31px;margin:0 0 9px}.login-form-intro{color:var(--muted);font-size:13px;line-height:1.6;margin:0 0 27px}.login-form{display:flex;flex-direction:column;gap:17px}.modern-field label{font-size:11px;margin-bottom:7px}.input-shell{position:relative}.input-shell svg{position:absolute;left:13px;top:50%;transform:translateY(-50%);width:18px;height:18px;fill:none;stroke:#8b9aaa;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.input-shell input{height:48px;padding:0 14px 0 42px;border-radius:12px;background:#fbfcfd;border-color:#d9e1e8;font-size:13px}.input-shell input::placeholder{color:#a7b2bc}.input-shell:focus-within svg{stroke:var(--blue)}.primary-button{background:linear-gradient(135deg,#c92c36 0%,#aa202c 100%);box-shadow:0 10px 24px rgba(201,44,54,.20)}.primary-button:hover{background:linear-gradient(135deg,#b52430 0%,#931b26 100%)}.login-submit{height:49px;width:100%;border-radius:12px;margin-top:3px;font-size:13px}.login-submit svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.login-help{display:flex;gap:10px;margin-top:24px;padding:14px;background:#f7f9fb;border:1px solid #e8edf2;border-radius:12px}.help-icon{width:26px;height:26px;flex:0 0 26px;border-radius:8px;display:grid;place-items:center;background:#eaf1f6;color:var(--blue);font-size:12px;font-weight:850}.login-help p{font-size:10.5px;color:var(--muted);line-height:1.55;margin:0}.login-help strong{color:#425263}.login-error{margin-bottom:19px}

/* Existing public error view compatibility */
.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(145deg,#f7f9fc,#edf3f8)}.login-card{width:min(460px,100%);background:#fff;border:1px solid var(--line);border-radius:20px;padding:28px;box-shadow:var(--shadow-lg)}.login-card h1{margin-top:0}

@media(max-width:1120px){.dashboard-grid{grid-template-columns:1fr}.dashboard-aside{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.summary{grid-template-columns:repeat(2,minmax(0,1fr))}.login-panel{width:min(900px,100%)}}
@media(max-width:900px){.app-frame{grid-template-columns:1fr}.sidebar{position:sticky;z-index:25;top:72px;height:auto;padding:8px 14px;background:#102235;display:block;overflow-x:auto;white-space:nowrap}.sidebar-brand,.sidebar-context,.sidebar-user,.sidebar-version{display:none}.side-nav{display:flex;flex-direction:row;gap:4px;margin:0;min-width:max-content}.nav-link{display:inline-flex;padding:9px 12px;font-size:12px}.nav-link.active{box-shadow:inset 0 -3px 0 var(--red)}.nav-link.active:after{display:none}.topbar{height:72px;padding:0 16px;top:0}.topbar-title{display:none}.mobile-brand{display:flex;align-items:center;gap:9px}.mobile-brand strong{font-size:13px}.account-form select{max-width:260px}.content{padding:24px 18px 38px}.grid{grid-template-columns:1fr}.login-page{padding:20px}.login-panel{grid-template-columns:1fr;width:min(560px,100%);min-height:0}.login-brand-panel{padding:28px 30px}.login-message{padding:44px 0 26px}.login-message h1{font-size:34px}.login-message p{font-size:13px}.login-trust-row{display:none}.login-brand-footer{margin-top:12px}.login-form-panel{padding:36px 30px 40px}}
@media(max-width:620px){.summary{grid-template-columns:1fr}.metric{min-height:132px}.dashboard-aside{grid-template-columns:1fr}.page-hero{align-items:flex-start;flex-direction:column}.page-hero .button{width:100%}.topbar{gap:10px}.account-form select{max-width:180px}.content{padding-left:14px;padding-right:14px}.card{padding:17px;border-radius:14px}.login-page{padding:0}.login-panel{min-height:100vh;border:0;border-radius:0}.login-brand-panel{padding:24px 22px 22px}.login-message{padding:34px 0 14px}.login-message h1{font-size:29px}.login-message p{display:none}.login-brand-footer{display:none}.login-form-panel{padding:32px 22px 36px}.login-form-wrap h2{font-size:27px}.account-switch .icon-button{width:36px;height:36px}.mobile-brand strong{display:none}}

/* Nexus-managed login branding */
.login-uploaded-logo-wrap{display:flex;align-items:center;min-height:54px;max-width:290px}.login-uploaded-logo{display:block;max-width:100%;max-height:72px;width:auto;height:auto;object-fit:contain;filter:drop-shadow(0 6px 16px rgba(0,0,0,.14))}@media(max-width:620px){.login-uploaded-logo{max-height:58px}.login-uploaded-logo-wrap{max-width:230px;min-height:46px}}


/* Organization Network Information */
.network-page-head,.service-groups-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:16px}
.network-page-head h1,.service-groups-head h2{margin:3px 0 0}
.network-org-ref{min-width:170px;padding:10px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface);text-align:right}
.network-org-ref span,.detail-label{display:block;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.network-org-ref strong{display:block;margin-top:3px}
.network-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:16px}
.network-summary .metric{min-height:108px}
.routing-card{margin-bottom:22px}
.routing-list{display:grid;gap:10px}
.routing-row{display:grid;grid-template-columns:minmax(140px,.32fr) minmax(0,1fr);gap:18px;padding:14px 0;border-top:1px solid var(--line)}
.routing-row:first-child{border-top:0;padding-top:2px}
.routing-asn strong{display:block;margin-top:5px;font-size:18px}
.routing-prefixes .prefix-list{display:flex;flex-wrap:wrap;gap:7px;margin-top:5px}
.routing-prefixes code,.network-detail-list code{font:600 12px/1.4 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:var(--surface-soft);border:1px solid var(--line);border-radius:7px;padding:3px 7px;color:var(--text);word-break:break-all}
.service-group-card{padding:0;overflow:hidden;margin-bottom:16px}
.service-group-title{display:flex;align-items:center;gap:8px;padding:13px 18px;border-bottom:1px solid var(--line);background:var(--surface-soft)}
.service-group-title span{font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.service-group-title strong{font-size:14px}
.service-group-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.service-section{min-width:0;padding:18px;border-left:1px solid var(--line)}
.service-section:first-child{border-left:0}
.service-section-head{display:flex;align-items:center;gap:8px;margin-bottom:12px}
.service-section-head h3{margin:0;font-size:16px}
.service-type-dot{width:8px;height:8px;border-radius:50%;background:var(--blue);box-shadow:0 0 0 3px color-mix(in srgb,var(--blue) 14%,transparent)}
.network-detail-list{margin:0;display:grid;gap:0}
.network-detail-list>div{display:grid;grid-template-columns:minmax(105px,.42fr) minmax(0,1fr);gap:10px;padding:9px 0;border-top:1px solid var(--line)}
.network-detail-list>div:first-child{border-top:0}
.network-detail-list dt{font-size:12px;color:var(--muted)}
.network-detail-list dd{margin:0;font-size:13px;font-weight:600;text-align:right;overflow-wrap:anywhere}
.network-detail-list dd small{display:block;margin-top:2px;font-weight:500;color:var(--muted)}
.empty-value{color:var(--muted)}
@media (max-width:1080px){.service-group-grid{grid-template-columns:1fr}.service-section{border-left:0;border-top:1px solid var(--line)}.service-section:first-child{border-top:0}.network-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:680px){.network-page-head{align-items:stretch;flex-direction:column}.network-org-ref{text-align:left}.network-summary{grid-template-columns:1fr 1fr}.routing-row{grid-template-columns:1fr}.network-detail-list>div{grid-template-columns:1fr}.network-detail-list dd{text-align:left}.network-summary .metric{min-height:94px}}

/* 1.0.16 — authoritative Billing payment posting status. */
.payment-status,.review-status{white-space:nowrap}
.payment-status-posted,.review-status-verified{background:#edf9f3;border-color:#caebda;color:#17734f}
.payment-status-awaiting-posting,.review-status-submitted{background:#fff7e9;border-color:#f1dfbc;color:#9b6112}
.payment-status-not-posted,.payment-status-no-payment-submitted,.review-status-no-proof{background:#f1f3f6;border-color:#dce1e6;color:#6d7883}
.review-status-rejected{background:#fff2f3;border-color:#f2d0d3;color:#b52d39}
.review-status-mixed{background:#eef3f8;border-color:#cbd7e2;color:#4f6477}
.payment-status-note{margin-top:4px;max-width:260px;color:var(--muted);font-size:10px;line-height:1.35}
@media(min-width:1100px){.summary:has(.payment-status){grid-template-columns:repeat(6,minmax(0,1fr))}}

.review-note{white-space:pre-line;overflow-wrap:anywhere}


/* 1.0.19 — compact Submit Proof payment fields: four controls on row 1, receipt on row 2. */
.grid.payment-proof-grid{grid-template-columns:repeat(4,minmax(0,1fr));align-items:end}
.payment-proof-grid .payment-receipt-field{grid-column:1 / -1}
@media(max-width:1100px){.grid.payment-proof-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.grid.payment-proof-grid{grid-template-columns:1fr}}


/* 1.0.20 — compact payment proof controls and live pre-submit summary. */
.grid.payment-proof-grid{grid-template-columns:minmax(140px,.75fr) 160px minmax(220px,1.3fr) minmax(190px,1fr);align-items:end}
.payment-proof-grid .payment-date-field input[type="date"]{width:148px;max-width:100%;padding-left:9px;padding-right:7px}
.payment-proof-grid .payment-receipt-field{grid-column:1;max-width:250px}
.payment-proof-grid .payment-receipt-field input[type="file"]{width:100%;max-width:250px;padding:7px 8px}
.payment-proof-summary-wrap{margin-top:14px;max-width:620px}
.payment-proof-summary-title{font-size:11px;font-weight:800;color:#4d5c6c;margin-bottom:6px}
.payment-proof-summary{min-width:0;width:100%;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.payment-proof-summary th,.payment-proof-summary td{padding:8px 10px}
.payment-proof-summary th:first-child,.payment-proof-summary td:first-child{width:42%;font-weight:750}
.payment-proof-summary td:last-child{overflow-wrap:anywhere}
@media(max-width:1100px){.grid.payment-proof-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.payment-proof-grid .payment-date-field input[type="date"]{width:148px}.payment-proof-grid .payment-receipt-field{grid-column:1;max-width:250px}}
@media(max-width:680px){.grid.payment-proof-grid{grid-template-columns:1fr}.payment-proof-grid .payment-receipt-field{grid-column:1;max-width:none}.payment-proof-grid .payment-receipt-field input[type="file"]{max-width:100%}.payment-proof-summary-wrap{max-width:none}}


/* 1.0.21 — horizontal live payment summary and submission guard presentation. */
.payment-proof-summary-wrap{max-width:none}
.payment-proof-summary{table-layout:auto;min-width:760px}
.payment-proof-summary th{font-size:10.5px;white-space:nowrap;font-weight:800}
.payment-proof-summary td{font-size:12px;vertical-align:top;overflow-wrap:anywhere}
.payment-proof-summary th:first-child,.payment-proof-summary td:first-child{width:auto;font-weight:700}
@media(max-width:900px){.payment-proof-summary{min-width:720px}}

/* 1.0.22 multi-payment proof entry */
.payment-entry{padding:10px 0 12px;border-bottom:1px solid var(--line)}
.payment-entry:first-child{padding-top:0}
.payment-entry:last-child{border-bottom:0}
.payment-entry-header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:7px}
.payment-entry-title{font-size:12px;color:#435466}
.payment-entry-remove{padding:5px 9px;min-height:28px;font-size:11px}
.payment-entry-actions{margin-top:8px}
.payment-proof-limit-message{margin-top:8px;padding:8px 10px;border:1px solid #d48d8d;border-radius:8px;font-size:12px;font-weight:700}
.payment-proof-summary-wrap{max-width:none}
.payment-proof-summary{table-layout:auto;min-width:760px;width:100%}
.payment-proof-summary th{font-size:10.5px;white-space:nowrap;font-weight:800}
.payment-proof-summary td{font-size:12px;vertical-align:top;overflow-wrap:anywhere}
.payment-proof-summary th:first-child,.payment-proof-summary td:first-child{width:auto;font-weight:700}
.payment-proof-grid .payment-receipt-field{grid-column:1;max-width:250px}
.payment-proof-grid .payment-receipt-field input[type="file"]{width:100%;max-width:250px;padding:7px 8px}
.payment-proof-grid .payment-date-field input[type="date"]{width:148px;max-width:100%}
@media(max-width:1100px){.grid.payment-proof-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.payment-proof-grid .payment-receipt-field{grid-column:1}}
@media(max-width:680px){.grid.payment-proof-grid{grid-template-columns:1fr}.payment-proof-grid .payment-receipt-field{grid-column:1;max-width:none}.payment-proof-grid .payment-receipt-field input[type="file"]{max-width:100%}.payment-entry-header{align-items:flex-start}}

/* 1.0.23 — customer-friendly compact density.
   Reduce card/container bulk and scrolling while preserving comfortable text sizes. */
.workspace .content{padding:24px 28px 36px}
.workspace .page-hero{gap:18px;margin-bottom:16px}
.workspace .page-hero h1{font-size:clamp(27px,2.45vw,34px);margin-bottom:5px}
.workspace .page-hero p{font-size:13px;line-height:1.45}
.workspace h2{font-size:18px;margin-bottom:9px}
.workspace h3{font-size:15px;margin-bottom:6px}
.workspace .card{padding:16px 18px;border-radius:14px;margin-bottom:12px}
.workspace .card-head{gap:14px;margin-bottom:11px}
.workspace .grid{gap:11px}
.workspace .summary{gap:10px}
.workspace .modern-summary{margin-bottom:13px}
.workspace .metric{min-height:108px;padding:14px 15px 13px;border-radius:14px}
.workspace .metric-top{gap:8px}
.workspace .metric-icon{width:30px;height:30px;border-radius:9px}
.workspace .metric-icon svg{width:16px;height:16px}
.workspace .metric-label{font-size:11.5px}
.workspace .metric .big{font-size:24px;margin-top:11px}
.workspace .metric-note{font-size:11px;margin-top:4px}
.workspace .dashboard-grid{grid-template-columns:minmax(0,1fr) 270px;gap:13px}
.workspace .dashboard-aside{gap:12px}
.workspace .account-card h2{font-size:17px;margin-bottom:12px}
.workspace .account-ref{padding:8px 0}
.workspace .account-security{margin-top:10px}
.workspace .payment-icon{width:32px;height:32px;border-radius:10px;margin-bottom:10px}
.workspace .payment-icon svg{width:17px;height:17px}
.workspace .payment-amount{font-size:22px;margin-top:4px}
.workspace .payment-reference{margin-top:8px;padding-top:8px}
.workspace .table-wrap{border-radius:10px}
.workspace .table th,.workspace .table td{padding:8px 10px;line-height:1.4}
.workspace .table th{font-size:10px}
.workspace .status{min-height:22px;padding:2px 7px}
.workspace .payment-status-note{margin-top:3px;line-height:1.3}
.workspace .empty-state{padding:20px}
.workspace .empty-state .empty-icon{width:34px;height:34px;margin-bottom:6px}
.workspace .field label{margin-bottom:4px}
.workspace .field input,.workspace .field select,.workspace .field textarea,
.workspace select,.workspace input[type="text"],.workspace input[type="search"]{padding:8px 10px;border-radius:9px}
.workspace button,.workspace .button{padding:8px 12px;border-radius:9px;min-height:34px}
.workspace .actions{gap:7px}
.workspace .flash{padding:9px 12px;margin-bottom:12px;border-radius:10px}
.workspace .network-page-head,.workspace .service-groups-head{margin-bottom:12px}
.workspace .network-summary{gap:10px;margin-bottom:12px}
.workspace .network-summary .metric{min-height:92px}
.workspace .routing-card{margin-bottom:14px}
.workspace .routing-list{gap:7px}
.workspace .routing-row{gap:14px;padding:10px 0}
.workspace .service-group-card{margin-bottom:12px}
.workspace .service-group-title{padding:10px 14px}
.workspace .service-section{padding:14px}
.workspace .service-section-head{margin-bottom:8px}
.workspace .network-detail-list>div{padding:7px 0}
.workspace .payment-entry{padding:8px 0 10px}
.workspace .payment-entry-header{margin-bottom:5px}
.workspace .payment-proof-summary-wrap{margin-top:10px}
.workspace .payment-proof-summary th,.workspace .payment-proof-summary td{padding:7px 9px}

@media(max-width:900px){
  .workspace .content{padding:20px 16px 32px}
  .workspace .dashboard-grid{grid-template-columns:1fr}
  .workspace .dashboard-aside{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
}
@media(max-width:620px){
  .workspace .content{padding:18px 13px 28px}
  .workspace .page-hero{margin-bottom:14px}
  .workspace .page-hero h1{font-size:27px}
  .workspace .card{padding:15px;border-radius:13px}
  .workspace .metric{min-height:100px;padding:13px 14px}
  .workspace .metric .big{font-size:23px}
  .workspace .dashboard-aside{grid-template-columns:1fr}
  .workspace .table th,.workspace .table td{padding:8px 9px}
}

/* 1.0.74 — left-column login announcement with Nexus-managed typography. */
.login-announcement{margin:0 0 22px;padding:15px 16px 16px 17px;border:1px solid rgba(174,202,224,.26);border-left:4px solid #f1535e;border-radius:11px;background:linear-gradient(135deg,rgba(55,91,122,.68),rgba(36,68,96,.58));box-shadow:0 12px 28px rgba(4,18,31,.14);text-align:left;color:#fff;backdrop-filter:blur(2px)}
.login-announcement-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.login-announcement-icon{width:29px;height:29px;flex:0 0 29px;border-radius:50%;display:grid;place-items:center;background:rgba(6,30,50,.42);color:#ff5d68}
.login-announcement-icon svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.login-announcement strong{display:block;font-size:12px;line-height:1.35;color:#fff;letter-spacing:-.005em}
.login-announcement p{margin:0;color:#d4e0ea;font-size:11px!important;line-height:1.58;white-space:pre-line}
@media(max-width:900px){.login-announcement{margin-bottom:18px}.login-message{padding-bottom:22px}}
@media(max-width:620px){.login-message{padding-bottom:14px}.login-announcement{padding:13px 14px 14px;margin-bottom:16px}.login-announcement p{font-size:10px!important}.login-announcement-icon{width:27px;height:27px;flex-basis:27px}.login-announcement-icon svg{width:16px;height:16px}}


/* 1.0.27 — Customer Portal login maintenance mode. */
.login-maintenance{margin:18px 0 0;padding:16px 17px;border:1px solid #e0c05f;border-left:5px solid #bd7412;border-radius:11px;background:#fff8df;text-align:left}
.login-maintenance p{margin:0;color:#6a5120;line-height:1.65;white-space:pre-line}
.login-recovery-row{display:flex;justify-content:flex-end;margin-top:-7px}.login-recovery-row a,.login-back-row a{font-size:11px;font-weight:750;color:var(--blue);text-decoration:none}.login-recovery-row a:hover,.login-back-row a:hover{text-decoration:underline}.login-back-row{margin-top:18px;text-align:center}.recovery-method{display:flex;gap:8px;border:0;padding:0;margin:0}.recovery-method legend{width:100%;font-size:11px;font-weight:700;color:#425263;margin-bottom:7px}.recovery-method label{display:flex;align-items:center;gap:6px;flex:1;padding:10px 12px;border:1px solid #d9e1e8;border-radius:10px;background:#fbfcfd;font-size:11px;font-weight:700;color:#425263;cursor:pointer}.recovery-method label:has(input:checked){border-color:#86a8c4;background:#f0f6fa;color:#183852}.recovery-method input{accent-color:#c92c36}.recovery-hint{font-size:9.5px;color:var(--muted);line-height:1.45;margin-top:6px}.recovery-policy-note,.recovery-sms-status{border:1px solid #d8e5ef;border-radius:9px;background:#f5f9fc;padding:9px 11px;font-size:10px;line-height:1.45;color:#35516a}.recovery-policy-note{display:flex;gap:6px;flex-direction:column}.recovery-policy-note strong,.recovery-sms-status strong{color:#173d5b}.recovery-sms-status{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 12px}.recovery-sms-status #recovery-next-sms-countdown{font-weight:700;color:#8a5a00}.recovery-panel .login-form-intro{margin-bottom:20px}

/* 1.0.31 — accessible show/hide password controls. */
.password-input-wrap{position:relative}
.password-input-wrap input{padding-right:44px!important}
.password-toggle{position:absolute;right:7px;top:50%;transform:translateY(-50%);width:32px;height:32px;min-height:0;padding:0;border:0;border-radius:8px;background:transparent!important;color:#7d8c9c;box-shadow:none!important;z-index:2}
.password-toggle:hover,.password-toggle:focus-visible{background:#eef3f7!important;color:var(--blue);transform:translateY(-50%)}
.password-toggle svg{position:static!important;transform:none!important;width:17px!important;height:17px!important;fill:none!important;stroke:currentColor!important;stroke-width:1.8!important;stroke-linecap:round!important;stroke-linejoin:round!important;pointer-events:none}
.password-toggle[aria-pressed="true"]{color:var(--blue);background:#eef3f7!important}
.security-password-wrap input{width:100%}

/* Trouble Report wizard — inherits Customer Portal Appearance & Fonts */

.tr-wizard{display:grid;gap:var(--portal-section-gap,12px);color:var(--text)}
.tr-progress{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 var(--portal-section-gap,12px)}
.tr-progress span{display:inline-flex;align-items:center;min-height:26px;padding:4px 9px;border:1px solid var(--line);border-radius:999px;background:var(--surface-soft);color:var(--muted);font-size:.82em;font-weight:650;transition:border-color .15s,background-color .15s,color .15s}
.tr-progress span.active{font-weight:800;border-color:var(--blue);background:color-mix(in srgb,var(--blue) 9%,var(--surface));color:var(--blue)}
.tr-step[hidden]{display:none!important}
.tr-step>h3{margin-bottom:var(--portal-section-gap,12px)}
.tr-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.tr-option{display:flex;gap:9px;align-items:flex-start;padding:9px 10px;border:1px solid var(--line);border-radius:var(--portal-button-radius,9px);background:var(--surface-soft);color:var(--text);cursor:pointer;transition:border-color .15s,background-color .15s,box-shadow .15s}
.tr-option:hover{border-color:color-mix(in srgb,var(--blue) 42%,var(--line));background:color-mix(in srgb,var(--blue) 4%,var(--surface-soft))}
.tr-option:has(input:checked){border-color:var(--blue);background:color-mix(in srgb,var(--blue) 8%,var(--surface));box-shadow:inset 3px 0 0 var(--blue)}
.tr-option input[type=checkbox],.tr-option input[type=radio]{margin-top:3px;accent-color:var(--blue);flex:0 0 auto}
.tr-option-plain{border:0;background:transparent;padding:0;box-shadow:none!important}
.tr-option-plain:hover,.tr-option-plain:has(input:checked){border:0;background:transparent}
.tr-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--portal-section-gap,12px)}
.tr-actions{display:flex;justify-content:space-between;align-items:center;gap:9px;flex-wrap:wrap;margin-top:var(--portal-section-gap,12px)}
.tr-actions-left{justify-content:flex-start}
.tr-actions .tr-back{background:var(--surface);color:var(--text);border:1px solid var(--line);box-shadow:none}
.tr-actions .tr-back:hover{background:var(--surface-soft);border-color:color-mix(in srgb,var(--blue) 35%,var(--line));color:var(--text);transform:none}
.tr-note{padding:10px 12px;border:1px solid var(--line);border-radius:var(--portal-button-radius,9px);background:var(--surface-soft);color:var(--text)}
.tr-assessment{font-weight:800;color:var(--text)}
.tr-review-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--portal-section-gap,12px)}
.tr-review-item{padding:10px 12px;border:1px solid var(--line);border-radius:var(--portal-button-radius,9px);background:var(--surface-soft);color:var(--text)}
.tr-small{font-size:.9em}.tr-hidden-field{display:none!important}
.tr-help{margin-top:6px}.tr-spaced{margin-top:var(--portal-section-gap,12px)}.tr-spaced-sm{margin-top:10px}.tr-spaced-xs{margin-top:8px}.tr-section-title{margin-top:calc(var(--portal-section-gap,12px) + 4px)}
.tr-code{width:100%;font-family:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace!important;background:var(--surface)!important;color:var(--text)!important;border-color:var(--line)!important}
.tr-wizard .field label{color:var(--text);opacity:.78}
.tr-wizard .field input:not([type=checkbox]):not([type=radio]),.tr-wizard .field select,.tr-wizard .field textarea{background:var(--surface);color:var(--text);border-color:var(--line);border-radius:var(--portal-button-radius,9px)}
.tr-wizard .field input[type=file]{width:100%;padding:7px 8px;border:1px solid var(--line);border-radius:var(--portal-button-radius,9px);background:var(--surface-soft);color:var(--text)}
.tr-wizard .field input:focus,.tr-wizard .field select:focus,.tr-wizard .field textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px color-mix(in srgb,var(--blue) 12%,transparent)}
@media(max-width:1000px){.tr-options{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.tr-options{grid-template-columns:1fr}.tr-progress{gap:5px}.tr-progress span{padding:4px 7px;font-size:.76em}.tr-row,.tr-review-grid{grid-template-columns:1fr}.tr-actions>button,.tr-actions>.button{flex:1 1 auto}.tr-diagnostic{padding:var(--portal-card-padding,14px)}}


/* 1.0.40 — authenticated Trouble Report appearance inheritance */
.portal-authenticated .tr-wizard,
.portal-authenticated .tr-wizard button,
.portal-authenticated .tr-wizard .button,
.portal-authenticated .tr-wizard input,
.portal-authenticated .tr-wizard select,
.portal-authenticated .tr-wizard textarea,
.portal-authenticated .tr-wizard label{
  font-family:inherit;
}
.portal-authenticated .tr-wizard{font-size:1em;color:var(--text)}
.portal-authenticated .tr-wizard button,.portal-authenticated .tr-wizard .button{font-size:1em;font-weight:inherit;line-height:1.2}
.portal-authenticated .tr-wizard .field label{color:var(--text);font-size:.86em;font-weight:700}
.portal-authenticated .tr-wizard .muted{color:var(--muted)}
.portal-authenticated .tr-wizard input:not([type=checkbox]):not([type=radio]),
.portal-authenticated .tr-wizard select,
.portal-authenticated .tr-wizard textarea{
  min-height:var(--portal-input-height,36px);
  background:var(--surface);
  color:var(--text);
  border-color:var(--line);
  border-radius:var(--portal-button-radius,9px);
}
.portal-authenticated .tr-wizard input[type=file]{background:var(--surface-soft);color:var(--text);border-color:var(--line)}
.portal-authenticated .tr-progress span{background:var(--surface-soft);color:var(--muted);border-color:var(--line)}
.portal-authenticated .tr-progress span.active{background:color-mix(in srgb,var(--blue) 9%,var(--surface));color:var(--blue);border-color:var(--blue)}
.portal-authenticated .tr-option,
.portal-authenticated .tr-note,
.portal-authenticated .tr-review-item{background:var(--surface-soft);color:var(--text);border-color:var(--line)}
.portal-authenticated .tr-option:has(input:checked){border-color:var(--blue);background:color-mix(in srgb,var(--blue) 7%,var(--surface))}
.portal-authenticated .tr-wizard button:not(.secondary):not(.danger):not(.icon-button):not(.tr-back),
.portal-authenticated .tr-wizard .button:not(.secondary):not(.danger):not(.tr-back){
  background:var(--blue);
  border-color:var(--blue);
  color:#fff!important;
  border-radius:var(--portal-button-radius,9px);
  min-height:var(--portal-input-height,36px);
}
.portal-authenticated .tr-wizard button:not(.secondary):not(.danger):not(.icon-button):not(.tr-back):hover,
.portal-authenticated .tr-wizard .button:not(.secondary):not(.danger):not(.tr-back):hover{
  background:var(--portal-primary-hover,var(--blue));
  border-color:var(--portal-primary-hover,var(--blue));
  color:#fff!important;
}
.portal-authenticated .tr-wizard .tr-back{background:var(--surface-soft)!important;color:var(--text)!important;border:1px solid var(--line)!important}
.portal-authenticated .tr-wizard .tr-back:hover{background:var(--surface)!important;color:var(--text)!important}

/* 1.0.46 — authenticated mobile shell.
   Nexus-managed Appearance & Fonts writes the desktop sidebar width into
   base.html after this stylesheet. On phone/tablet widths that desktop
   column must never win over the responsive shell. The authenticated topbar
   stays visible at the top and the navigation becomes a full-width horizontal
   strip directly underneath it. */
@media(max-width:900px){
  body.portal-authenticated{overflow-x:hidden}
  body.portal-authenticated .app-frame{
    display:block!important;
    grid-template-columns:minmax(0,1fr)!important;
    width:100%;
    max-width:100vw;
  }
  body.portal-authenticated .workspace{
    width:100%;
    min-width:0;
    max-width:100vw;
  }
  body.portal-authenticated .topbar{
    position:sticky;
    top:0;
    z-index:30;
    width:100%;
    min-width:0;
    max-width:100vw;
  }
  body.portal-authenticated .sidebar{
    position:fixed;
    top:72px;
    left:0;
    right:0;
    z-index:25;
    width:100%;
    max-width:100vw;
    height:53px;
  }
  body.portal-authenticated .content{
    width:100%;
    min-width:0;
    max-width:100vw;
    padding-top:73px;
  }
  body.portal-authenticated .table-wrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
}
@media(max-width:620px){
  body.portal-authenticated .topbar{padding-left:12px;padding-right:12px}
  body.portal-authenticated .content{padding-top:71px}
  body.portal-authenticated .account-switch{min-width:0;max-width:calc(100vw - 66px)}
  body.portal-authenticated .account-form{min-width:0;max-width:100%}
  body.portal-authenticated .account-form select{width:100%;max-width:100%}
  body.portal-authenticated .page-hero{width:100%}
  body.portal-authenticated .summary,
  body.portal-authenticated .dashboard-grid,
  body.portal-authenticated .dashboard-aside{width:100%;min-width:0}
}


/* 1.0.48 service request workflow */
.request-table small{color:var(--muted,#667085)}.request-status{display:inline-flex;align-items:center;border:1px solid var(--border,#d7dde5);border-radius:999px;padding:2px 8px;font-size:.86em;white-space:nowrap}.request-status.status-submitted,.request-status.status-under-review{font-weight:700}.request-status.status-provisioning,.request-status.status-active{font-weight:700}.request-status.status-accepted{font-weight:700}.request-status.status-activated{font-weight:700}.request-attachments td{padding-top:4px!important;padding-bottom:8px!important}.request-form fieldset{border:1px solid var(--border,#d7dde5);border-radius:10px;padding:12px;margin:10px 0}.request-form fieldset legend{padding:0 6px;font-weight:700}.compact-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.compact-grid .wide{grid-column:1/-1}.checkbox-field{display:flex;align-items:center;gap:7px;min-height:36px}.request-form-card .form-actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}.request-form [hidden]{display:none!important}.review-note-text{white-space:pre-wrap;margin-top:6px}.button.compact{min-height:30px!important;padding:5px 9px!important}@media(max-width:980px){.compact-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.compact-grid{grid-template-columns:1fr}.table-wrap{overflow-x:auto}.request-form-card .form-actions>*{flex:1 1 auto}}

/* 1.0.49 device geolocation */
.geo-action-field{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end}.geo-action-field .button{margin-top:2px}.geo-action-field small{display:block;margin-top:5px;line-height:1.35}

.inline-form{display:inline-flex;margin:0}.request-row-actions{gap:6px;flex-wrap:nowrap}.request-row-actions .compact{padding:6px 9px;font-size:11px;white-space:nowrap}
/* 1.0.55 — compact Payment Reference information helper. */
.payment-reference-label{display:inline-flex!important;align-items:center;gap:5px;position:relative}
.payment-reference-info{position:relative;display:inline-grid;place-items:center;width:15px;height:15px;border:1px solid currentColor;border-radius:50%;color:var(--blue);font-size:10px;font-weight:850;line-height:1;cursor:help;outline:none;vertical-align:middle}
.payment-reference-info::after{content:attr(data-help);position:absolute;z-index:80;left:50%;bottom:calc(100% + 8px);width:min(360px,calc(100vw - 48px));padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--navy);color:#fff;font-size:10.5px;font-weight:600;line-height:1.45;letter-spacing:0;text-transform:none;white-space:normal;box-shadow:var(--shadow-sm);opacity:0;visibility:hidden;pointer-events:none;transform:translate(-50%,4px);transition:opacity .12s ease,transform .12s ease,visibility .12s ease}
.payment-reference-info:hover::after,.payment-reference-info:focus::after,.payment-reference-info:focus-visible::after{opacity:1;visibility:visible;transform:translate(-50%,0)}
@media(max-width:680px){.payment-reference-info::after{left:-96px;transform:translate(0,4px)}.payment-reference-info:hover::after,.payment-reference-info:focus::after,.payment-reference-info:focus-visible::after{transform:translate(0,0)}}


/* 1.0.56 — in-app customer-to-Operating-Company messaging. */
.message-context-note{display:flex;gap:9px;align-items:flex-start;padding:9px 11px;border:1px solid color-mix(in srgb,var(--blue) 28%,var(--line));border-radius:var(--portal-button-radius,9px);background:color-mix(in srgb,var(--blue) 6%,var(--surface));color:var(--text);font-size:.9em;line-height:1.45}.message-context-note strong{color:var(--blue)}.message-compose-card{margin-bottom:14px}.message-compose-form{display:grid;gap:11px}.message-compose-grid{display:grid;grid-template-columns:minmax(260px,.75fr) minmax(320px,1.25fr);gap:12px;align-items:end}.message-routing-note{display:flex;gap:9px;align-items:flex-start;padding:9px 11px;border:1px solid var(--line);border-radius:var(--portal-button-radius,9px);background:var(--surface-soft);color:var(--muted);font-size:.88em;line-height:1.45}.message-info{display:inline-flex;align-items:center;justify-content:center;flex:0 0 20px;width:20px;height:20px;border-radius:999px;background:var(--blue);color:#fff;font-weight:800;font-size:12px}.message-count{display:block;text-align:right;margin-top:4px}.message-list-head{align-items:flex-end}.message-filter-form{display:flex;gap:7px;align-items:end;flex-wrap:wrap}.message-filter-form input{min-width:210px}.message-filter-form select{min-width:145px}.message-status{display:inline-flex;align-items:center;min-height:22px;padding:2px 8px;border-radius:999px;font-size:.82em;font-weight:750;border:1px solid var(--line)}.message-status.status-open{background:#eaf4ff;color:#1e5c91;border-color:#c7dff2}.message-status.status-replied{background:#e9f7ef;color:#176742;border-color:#ccead8}.message-status.status-closed{background:var(--surface-soft);color:var(--muted)}.message-thread{display:grid;gap:10px;margin:12px 0}.message-bubble{max-width:82%;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface-soft)}.message-bubble.from-customer{justify-self:end;background:color-mix(in srgb,var(--blue) 7%,var(--surface));border-color:color-mix(in srgb,var(--blue) 26%,var(--line))}.message-bubble.from-company{justify-self:start;background:color-mix(in srgb,var(--success) 7%,var(--surface));border-color:color-mix(in srgb,var(--success) 26%,var(--line))}.message-bubble-head{display:flex;justify-content:space-between;gap:14px;font-size:.82em;color:var(--muted)}.message-bubble-head strong{color:var(--text)}.message-bubble-body{white-space:pre-wrap;overflow-wrap:anywhere;margin-top:6px;line-height:1.5}.message-attachments{display:flex;gap:8px;flex-wrap:wrap;margin-top:7px;font-size:.86em}.message-reply-form{border-top:1px solid var(--line);padding-top:12px}.message-reply-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end}.message-reply-row button{margin-bottom:0}.message-page-head{align-items:flex-start}@media(max-width:760px){.message-compose-grid,.message-reply-row{grid-template-columns:1fr}.message-list-head{align-items:flex-start}.message-filter-form{width:100%}.message-filter-form input,.message-filter-form select{min-width:0;flex:1 1 160px}.message-bubble{max-width:94%}.message-table{min-width:760px}}

/* Public Portal 1.0.60 — invoice disconnection schedule */
.disconnection-row{background:#fff7f7}.disconnection-row:hover{background:#fff2f2!important}.disconnection-date{color:var(--danger);font-weight:850;white-space:nowrap}.disconnection-exempt{color:var(--blue);font-weight:850;white-space:nowrap}.disconnection-alert{display:flex;align-items:flex-start;gap:11px;margin:16px 0;padding:13px 15px;border:1px solid #efc4c9;border-radius:var(--radius);background:#fff1f2;color:#9f2431}.disconnection-alert strong{display:block;font-size:14px;margin-bottom:3px}.disconnection-alert>div:last-child>div{font-size:12px;color:#7f3340}.disconnection-alert-icon{width:24px;height:24px;flex:0 0 24px;border-radius:50%;display:grid;place-items:center;background:var(--danger);color:#fff;font-weight:900;line-height:1}

.dashboard-disconnection-notices{margin:0 0 13px}.dashboard-disconnection-alert{margin:0 0 10px}.dashboard-disconnection-alert a{color:inherit;font-weight:850;text-decoration:underline;text-underline-offset:2px}

/* Traffic / MRTG public graph viewer */
.traffic-page-head{align-items:flex-end}.traffic-service-card{overflow:hidden}.traffic-service-head,.traffic-graph-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.traffic-service-head h2,.traffic-graph-head h3{margin:0}.traffic-service-head{padding-bottom:10px;border-bottom:1px solid var(--line,#d7dde5);margin-bottom:12px}.traffic-graph-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--portal-section-gap,12px)}.traffic-graph-card{min-width:0;border:1px solid var(--line,#d7dde5);border-radius:var(--portal-card-radius,12px);padding:12px;background:var(--surface,#fff)}.traffic-graph-head small,.traffic-range,.traffic-hint{color:var(--muted,#667085);font-size:.78em}.traffic-controls{display:flex;gap:5px;align-items:center}.traffic-controls .icon-button{width:30px;height:30px;min-height:30px!important;padding:0!important;display:inline-flex;align-items:center;justify-content:center;font-size:16px;font-weight:700}.traffic-range{margin:5px 0 7px}.traffic-viewport{position:relative;overflow:hidden;min-height:160px;border:1px solid var(--line,#d7dde5);border-radius:9px;background:var(--surface-soft,#f5f7fa);cursor:crosshair;touch-action:pan-y}.traffic-viewport.panning{cursor:grabbing}.traffic-image{display:block;width:100%;height:auto;min-height:160px;object-fit:contain;user-select:none;-webkit-user-drag:none;pointer-events:none;transition:opacity .08s ease}.traffic-image.loading{opacity:.72}.traffic-selection{position:absolute;top:0;bottom:0;background:color-mix(in srgb,var(--accent,#1f5f99) 18%,transparent);border-left:1px solid var(--accent,#1f5f99);border-right:1px solid var(--accent,#1f5f99);pointer-events:none;z-index:2}.traffic-viewport.selecting .traffic-selection{display:block}.traffic-hint{margin-top:6px}.traffic-image[src=""]{visibility:hidden}@media(max-width:980px){.traffic-graph-grid{grid-template-columns:1fr}}@media(max-width:640px){.traffic-service-head,.traffic-graph-head{align-items:flex-start}.traffic-graph-head{flex-wrap:wrap}.traffic-hint{display:none}.traffic-viewport{min-height:120px}.traffic-image{min-height:120px}}

.traffic-viewport{isolation:isolate}.traffic-interaction-layer{position:absolute;inset:0;z-index:3;background:transparent;cursor:crosshair}.traffic-viewport.panning .traffic-interaction-layer{cursor:grabbing}.traffic-selection{z-index:4}.traffic-js-ready .traffic-viewport{cursor:crosshair}
.traffic-ready{display:inline-block;margin-left:8px;padding:1px 6px;border:1px solid var(--line,#d7dde5);border-radius:999px;font-size:.9em}.traffic-ready[data-ready="1"]{font-weight:600}.traffic-interaction-layer{user-select:none;-webkit-user-select:none;touch-action:none}

/* 1.0.69 — responsive / expandable Traffic MRTG graphs. */
.traffic-graph-grid{grid-template-columns:1fr!important}.traffic-graph-card{width:100%;box-sizing:border-box}.traffic-viewport{width:100%;min-height:220px}.traffic-image{width:100%;height:auto;max-width:none}.traffic-expand{font-size:15px!important}.traffic-graph-card.traffic-expanded{position:fixed;inset:12px;z-index:10020;overflow:auto;margin:0;padding:16px;background:var(--surface,#fff);box-shadow:0 12px 40px rgba(0,0,0,.28);border-radius:12px}.traffic-graph-card.traffic-expanded .traffic-viewport{min-height:420px}.traffic-graph-card.traffic-expanded .traffic-image{width:100%;min-height:420px}.traffic-graph-open body{overflow:hidden}@media(max-width:640px){.traffic-graph-card.traffic-expanded{inset:4px;padding:9px}.traffic-graph-card.traffic-expanded .traffic-viewport{min-height:260px}}


/* 1.0.71 — live public-portal navigation badges. */
.side-nav .nav-link{position:relative}
.portal-live-badge{margin-left:auto;min-width:20px;height:20px;padding:0 6px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:var(--danger,#c73946);color:#fff;font-size:10px;font-weight:850;line-height:1;box-shadow:0 0 0 2px color-mix(in srgb,var(--danger,#c73946) 18%,transparent)}
.portal-live-badge[hidden]{display:none!important}
body.portal-authenticated .side-nav .nav-link.active .portal-live-badge{background:#fff;color:var(--danger,#c73946);box-shadow:none}
@media(max-width:900px){.portal-live-badge{position:absolute;top:3px;right:3px;min-width:17px;height:17px;padding:0 4px;font-size:9px}}

/* 1.0.72 Trouble Report shared status tracking */
.status-pending{background:#fff7e9;border-color:#f1dfbc;color:#8b5b13}.status-on-going-repair{background:#eaf4ff;border-color:#c7dff2;color:#1e5c91}.status-client-resolved,.status-provider-resolved{background:#edf9f3;border-color:#caebda;color:#17734f}.status-unrelated-to-service{background:#f1f3f6;border-color:#dce1e6;color:#596776}.tr-status-cell{min-width:220px}.tr-status-detail{margin-top:6px;max-width:290px;line-height:1.35}.tr-status-updated{font-size:10px;margin-top:4px}.tr-tracking{margin-top:7px}.tr-tracking summary{cursor:pointer;font-size:11px;font-weight:750;color:var(--blue)}.tr-track-list{margin-top:8px;display:grid;gap:0}.tr-track-event{display:grid;grid-template-columns:118px 12px minmax(0,1fr);gap:7px;align-items:start;position:relative;padding:0 0 10px}.tr-track-event:not(:last-child):before{content:"";position:absolute;left:123px;top:10px;bottom:-1px;width:1px;background:var(--line)}.tr-track-time{font-size:10px;color:var(--muted);line-height:1.35}.tr-track-dot{width:8px;height:8px;border-radius:50%;background:var(--blue);margin-top:3px;z-index:1}.tr-track-text{font-size:11px;line-height:1.35}.tr-track-text small{display:block;color:var(--muted);margin-top:1px}@media(max-width:760px){.tr-status-cell{min-width:190px}.tr-track-event{grid-template-columns:100px 12px minmax(0,1fr)}.tr-track-event:not(:last-child):before{left:105px}}

/* 1.0.76 — Customer Portal: private organization documents. */
.customer-documents-head{margin-bottom:13px}.customer-documents-head h1{margin:0 0 5px}
.customer-documents-toolbar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.customer-documents-toolbar h2{font-size:17px;margin:0 0 2px}.customer-documents-count{font-size:12px;color:var(--muted);font-weight:500}
.customer-documents-filters{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.customer-documents-filters input{width:215px;max-width:100%;min-height:28px!important}.customer-documents-filters select{width:180px;max-width:100%;min-height:28px!important}
.customer-documents-filename{font-size:11px;color:var(--muted);overflow-wrap:anywhere;margin-top:4px}
.customer-documents-table{min-width:690px}.customer-documents-actions{display:flex;gap:5px;align-items:center;flex-wrap:nowrap;white-space:nowrap}.customer-documents-actions .button{min-height:28px!important;padding:5px 9px!important}
.customer-document-modal[hidden]{display:none!important}.customer-document-modal{position:fixed;inset:0;background:rgba(10,20,32,.75);z-index:11000;display:flex;justify-content:center;align-items:center;padding:12px}
.customer-document-dialog{display:flex;flex-direction:column;width:min(1120px,100%);max-height:min(94dvh,1050px);height:min(94dvh,1050px);background:var(--surface,#fff);border-radius:10px;overflow:hidden;box-shadow:0 15px 65px rgba(0,0,0,.3)}
.customer-document-modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 12px;border-bottom:1px solid var(--line)}
.customer-document-modal-head strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.customer-document-modal-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}
.customer-document-modal-actions .button{min-height:28px!important;padding:5px 9px!important}.customer-document-dialog iframe{flex:1;min-height:0;width:100%;border:0;background:#f5f6f8}
.customer-document-modal-foot{font-size:11px;color:var(--muted);margin:0;padding:7px 12px;border-top:1px solid var(--line)}
body.customer-document-modal-open{overflow:hidden}
@media(max-width:640px){.customer-documents-filters{width:100%}.customer-documents-filters input,.customer-documents-filters select{flex:1 1 130px;width:auto;min-width:0}.customer-document-modal{padding:3px}.customer-document-dialog{height:96dvh;max-height:96dvh}.customer-document-modal-head{flex-wrap:wrap;padding:7px}.customer-document-modal-head strong{width:100%}.customer-document-modal-actions{width:100%;justify-content:flex-end}}

/* 1.0.78 — Published customer SLA report table + secure zoomable PDF modal. */
.sla-reports-head{margin-bottom:13px}.sla-reports-head h1{margin:0 0 5px}
.sla-reports-toolbar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.sla-reports-toolbar h2{font-size:17px;margin:0 0 2px}.sla-reports-count{font-size:12px;color:var(--muted);font-weight:500}
.sla-reports-toolbar input{width:220px;max-width:100%;min-height:28px!important}
.sla-reports-table{min-width:640px}.sla-reports-table td{vertical-align:middle}
.sla-reports-actions{display:flex;align-items:center;gap:5px;white-space:nowrap}
.sla-reports-actions .button{min-height:28px!important;padding:5px 9px!important}
.sla-report-modal[hidden]{display:none!important}
.sla-report-modal{position:fixed;inset:0;background:rgba(10,20,32,.78);z-index:11001;display:flex;align-items:center;justify-content:center;padding:12px}
.sla-report-dialog{display:flex;flex-direction:column;width:min(1180px,100%);height:min(94dvh,1060px);max-height:94dvh;min-height:0;background:var(--surface,#fff);border:1px solid var(--line,#dae0e5);border-radius:10px;overflow:hidden;box-shadow:0 15px 65px rgba(0,0,0,.32)}
.sla-report-modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 12px;border-bottom:1px solid var(--line)}
.sla-report-modal-head strong{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.sla-report-modal-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}
.sla-report-modal-actions .button,.sla-report-zoom-tools .button{min-height:28px!important;padding:5px 10px!important}
.sla-report-zoom-tools{display:flex;align-items:center;gap:6px;padding:7px 12px;border-bottom:1px solid var(--line)}
.sla-report-zoom-tools output{font-size:12px;min-width:65px;text-align:center;font-variant-numeric:tabular-nums}
.sla-report-zoom-tools .sla-report-zoom-spacer{flex:1}
.sla-report-zoom-tools .muted{font-size:11px}
.sla-report-zoom-tools button[disabled]{opacity:.45;cursor:not-allowed}
.sla-report-zoom-tools button[aria-pressed="true"]{outline:2px solid var(--blue);outline-offset:1px}
.sla-report-dialog iframe{display:block;flex:1;min-height:0;width:100%;border:0;background:#eee}
.sla-report-modal-foot{font-size:11px;color:var(--muted);padding:6px 12px;margin:0;border-top:1px solid var(--line)}
body.sla-report-modal-open{overflow:hidden}
@media(max-width:640px){
  .sla-reports-toolbar input{width:100%}
  .sla-report-modal{padding:3px}
  .sla-report-dialog{height:97dvh;max-height:97dvh}
  .sla-report-modal-head{flex-wrap:wrap;padding:7px}
  .sla-report-modal-head strong{width:100%}
  .sla-report-modal-actions{width:100%;justify-content:flex-end}
  .sla-report-zoom-tools{flex-wrap:wrap;padding:6px 8px}
  .sla-report-zoom-tools .sla-report-zoom-spacer,.sla-report-zoom-tools .muted{display:none}
}

/* 1.0.79 — trouble-history evidence preview; kept separate from SLA modal styling. */
.tr-evidence-modal[hidden],.tr-evidence-viewport>[hidden]{display:none!important}
.tr-evidence-modal{position:fixed;inset:0;z-index:11002;display:flex;align-items:center;justify-content:center;padding:12px;background:rgba(10,20,32,.78)}
.tr-evidence-dialog{display:flex;flex-direction:column;min-width:0;width:min(1160px,100%);height:min(92dvh,1000px);min-height:0;overflow:hidden;border:1px solid var(--line,#dae0e5);border-radius:10px;background:var(--surface,#fff);color:var(--text);box-shadow:0 16px 65px rgba(0,0,0,.32)}
.tr-evidence-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:9px 12px;border-bottom:1px solid var(--line)}
.tr-evidence-head strong{font-size:14px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tr-evidence-actions{display:flex;align-items:center;gap:6px;flex:0 0 auto}
.tr-evidence-actions .button,.tr-evidence-tools .button{display:inline-flex!important;align-items:center;justify-content:center;flex:0 0 auto;width:auto!important;min-width:max-content;min-height:28px!important;height:28px!important;padding:4px 10px!important;margin:0!important;white-space:nowrap;font-size:12px!important;line-height:1.1!important;text-decoration:none}
.tr-evidence-tools{display:flex;align-items:center;gap:7px;padding:7px 12px;border-bottom:1px solid var(--line)}
.tr-evidence-tools output{font-size:12px;min-width:52px;text-align:center;font-variant-numeric:tabular-nums}
.tr-evidence-tools .tr-evidence-tools-spacer{flex:1}
.tr-evidence-tools .muted{font-size:11px}
.tr-evidence-tools button[disabled]{opacity:.45;cursor:not-allowed}
.tr-evidence-tools button[aria-pressed=true]{outline:2px solid var(--blue);outline-offset:1px}
.tr-evidence-viewport{display:flex;flex:1;min-width:0;min-height:0;overflow:auto;background:#f3f6fa}
.tr-evidence-viewport iframe{width:100%;height:100%;min-width:0;min-height:0;flex:1;border:0;background:#e9eff4}
.tr-evidence-viewport img{display:block;flex:none;margin:auto;max-width:none;max-height:none;height:auto;object-fit:contain}
.tr-evidence-unsupported{margin:auto;padding:18px;max-width:450px;font-size:13px;line-height:1.6;text-align:center;color:#516375}
body.tr-evidence-open{overflow:hidden}
@media(max-width:640px){
  .tr-evidence-modal{padding:3px}
  .tr-evidence-dialog{height:97dvh;max-height:97dvh}
  .tr-evidence-head{flex-wrap:wrap;padding:7px}
  .tr-evidence-head strong{width:100%}
  .tr-evidence-actions{width:100%;justify-content:flex-end}
  .tr-evidence-tools{flex-wrap:wrap;padding:6px 8px}
  .tr-evidence-tools-spacer,.tr-evidence-tools .muted{display:none}
}

/* Public Android compatibility page links (Portal 1.0.93) */
.login-android-link{margin:15px 0 10px;font-size:12px;text-align:center;color:#5b7388}
.login-android-link a{font-weight:700;text-decoration:underline;color:#1863a1}
.login-android-link small{color:#5f7385}
.sidebar-android-link{padding:10px 16px;font-size:12px}
.sidebar-android-link a{color:inherit;text-decoration:underline;text-underline-offset:3px}

/* File Manager publication downloads (1.0.102) */
.portal-downloads-head{display:flex;align-items:center;justify-content:space-between;gap:9px;flex-wrap:wrap;margin-bottom:9px}
.portal-downloads-head h2{font-size:17px;margin:0 0 3px}
.portal-downloads-head input{width:210px;max-width:100%;min-height:28px!important}
.portal-downloads-crumbs{display:flex;align-items:center;flex-wrap:wrap;gap:7px;padding:7px 0 13px;font-size:12px}
.portal-downloads-folder{font-weight:700;text-decoration:none}
.portal-downloads-table{min-width:570px}
.portal-downloads-table td{vertical-align:middle}
.portal-downloads-table td:first-child{overflow-wrap:anywhere}
#portal-downloads-zoom-label{font-size:12px;min-width:38px;text-align:center}
@media(max-width:700px){.portal-downloads-head input{width:100%}.portal-downloads-table{min-width:540px}}

/* Web portal: read-only published File Manager preview */
.portal-downloads-viewport{position:relative;overflow:auto;min-height: min(62vh,600px);max-height:72vh;background:#eef2f7;display:flex;align-items:center;justify-content:center}
.portal-downloads-viewport iframe{width:100%;height:70vh;min-height:380px;border:0;background:white}
.portal-downloads-viewport img{max-width:96%;max-height:65vh;object-fit:contain;transform-origin:center center;transition:transform .12s ease}
.portal-downloads-viewport iframe[hidden],.portal-downloads-viewport img[hidden]{display:none!important}

.portal-downloads-error{padding:12px;border:1px solid var(--border, #ccd4df);border-radius:6px;line-height:1.5;margin:12px 0;color:var(--text,#25354a)}

/* Published File Manager version metadata. */
.portal-downloads-version{white-space:nowrap;font-variant-numeric:tabular-nums}
.portal-downloads-table{min-width:650px}

/* 1.0.112 — Bills and Historical Invoices: secure PDF preview modal. */
.billing-pdf-modal[hidden]{display:none!important}
.billing-pdf-modal{position:fixed;inset:0;z-index:11006;display:flex;align-items:center;justify-content:center;padding:12px;background:rgba(10,20,32,.78)}
.billing-pdf-dialog{display:flex;flex-direction:column;min-height:0;width:min(1180px,100%);height:min(94dvh,1060px);max-height:94dvh;background:var(--surface,#fff);color:var(--text,#192b3c);border:1px solid var(--line,#dae0e5);border-radius:10px;overflow:hidden;box-shadow:0 16px 65px rgba(0,0,0,.32)}
.billing-pdf-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 12px;border-bottom:1px solid var(--line,#dae0e5)}
.billing-pdf-head strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}
.billing-pdf-actions,.billing-pdf-zoom{display:flex;align-items:center;gap:6px}
.billing-pdf-actions{flex-shrink:0}
.billing-pdf-actions .button,.billing-pdf-zoom .button{min-height:28px!important;padding:5px 10px!important}
.billing-pdf-zoom{padding:7px 12px;border-bottom:1px solid var(--line,#dae0e5)}
.billing-pdf-zoom output{min-width:60px;text-align:center;font-size:12px;font-variant-numeric:tabular-nums}
.billing-pdf-zoom-spacer{flex:1}
.billing-pdf-zoom small{color:var(--muted,#667788);font-size:11px}
.billing-pdf-zoom button:disabled{opacity:.45;cursor:not-allowed;transform:none}
.billing-pdf-zoom button[aria-pressed="true"]{outline:2px solid var(--blue,#245f8f);outline-offset:1px}
.billing-pdf-dialog iframe{display:block;flex:1;min-height:0;width:100%;border:0;background:#eee}
.billing-pdf-foot{margin:0;padding:6px 12px;border-top:1px solid var(--line,#dae0e5);color:var(--muted,#667788);font-size:11px}
body.billing-pdf-modal-open{overflow:hidden}
@media(max-width:640px){
  .billing-pdf-modal{padding:3px}
  .billing-pdf-dialog{height:97dvh;max-height:97dvh}
  .billing-pdf-head{flex-wrap:wrap;padding:7px}
  .billing-pdf-head strong{width:100%}
  .billing-pdf-actions{width:100%;justify-content:flex-end}
  .billing-pdf-zoom{flex-wrap:wrap;padding:6px 8px}
  .billing-pdf-zoom-spacer,.billing-pdf-zoom small{display:none}
}

/* 1.0.113 — secure, same-origin Blob preview never frames a protected server page. */
.billing-pdf-stage{position:relative;display:flex;flex:1;min-height:0;background:#eee}
.billing-pdf-stage iframe{display:block;flex:1;min-width:0;min-height:0;border:0}
.billing-pdf-stage iframe[hidden],.billing-pdf-status[hidden]{display:none!important}
.billing-pdf-status{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;padding:18px;background:var(--surface,#fff);color:var(--muted,#667788);font-size:13px}

/* Public Customer Portal 1.0.118 — messages composer is opt-in; thread/reply precedes history. */
.message-new-actions{display:flex;align-items:center;gap:10px;margin:0 0 14px}
.message-new-actions button{min-width:138px}
.message-compose-card[hidden]{display:none!important}
.message-compose-card{margin:0 0 16px}
.message-compose-close{margin-left:auto}
.message-priority-card .card-head{margin-bottom:9px}
.message-priority-help{font-size:12px;margin:0 0 12px}
.message-priority-list{display:flex;flex-direction:column;gap:0}
.message-priority-item{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;border-top:1px solid var(--line)}
.message-priority-content{display:grid;gap:2px;min-width:0;flex:1}
.message-priority-content strong{font-size:13px;overflow-wrap:anywhere}
.message-priority-content small{font-size:11px}
.message-priority-item .button{flex:0 0 auto;white-space:nowrap}
.message-thread-card{scroll-margin-top:95px}
.message-history-card{scroll-margin-top:95px}
@media(max-width:620px){.message-new-actions button{width:100%}.message-priority-item{align-items:flex-start;flex-direction:column;gap:8px}.message-priority-item .button{width:100%;text-align:center}.message-filter-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px}.message-filter-form input{grid-column:1 / -1;min-width:0}.message-filter-form select{min-width:0;width:100%}.message-filter-form button{width:auto}}

/* v1.0.120: only server-confirmed unread staff messages show the small red label. */
.message-priority-subject{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 12px;min-width:0}
.message-priority-subject strong{font-size:13px;overflow-wrap:anywhere}
.message-new-indicator{display:inline;font-size:12px;font-weight:800;line-height:1.35;color:#c5221e;white-space:nowrap}

/* Customer credits & deposits — v1.0.133 */
.credit-portal-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,195px),1fr));gap:12px;margin:16px 0 22px}
.credit-portal-summary .big{font-variant-numeric:tabular-nums}
.credit-portal-summary>div{padding:14px 16px;border:1px solid var(--line,#d9e1eb);border-radius:12px}
.credit-portal-summary .metric{min-width:0}
@media(max-width:720px){.credit-portal-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.credit-portal-summary .big{font-size:clamp(1.05rem,4vw,1.55rem)}}
