:root{--portal-sidebar:270px}.portal-body{min-height:100vh;background:radial-gradient(circle at 80% 0,rgba(255,90,24,.09),transparent 25%),#080b0f}.portal-header{height:82px;position:fixed;inset:0 0 auto;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:0 30px;border-bottom:1px solid var(--line);background:rgba(8,11,15,.94);backdrop-filter:blur(18px)}.portal-brand img{width:205px;display:block}.portal-header-actions,.portal-user{display:flex;align-items:center;gap:16px}.connection-pill{font:700 11px "Space Grotesk";letter-spacing:.12em;color:#b8c0c8}.connection-pill i{display:inline-block;width:7px;height:7px;margin-right:7px;border-radius:50%;background:var(--green);box-shadow:0 0 12px rgba(87,227,124,.55)}.portal-user{padding:7px 10px 7px 7px;border:1px solid var(--line);border-radius:9px;background:#11161c;color:#fff;cursor:pointer}.portal-user>span{display:grid;place-items:center;width:34px;height:34px;border-radius:7px;background:linear-gradient(135deg,var(--orange-light),var(--red));font:700 11px "Space Grotesk"}.portal-user b{font:600 12px "Space Grotesk"}.portal-user small{color:var(--muted)}.portal-shell{display:grid;grid-template-columns:var(--portal-sidebar) 1fr;min-height:100vh;padding-top:82px}.portal-sidebar{position:fixed;top:82px;bottom:0;width:var(--portal-sidebar);display:flex;flex-direction:column;padding:28px 18px 22px;border-right:1px solid var(--line);background:#0a0e13}.portal-nav{display:grid;gap:7px}.portal-nav-link{width:100%;display:flex;align-items:center;gap:13px;padding:13px 14px;border-radius:8px;background:transparent;color:#89949f;text-align:left;font:600 12px "Space Grotesk";cursor:pointer;transition:.2s}.portal-nav-link>span{width:20px;text-align:center;font-size:17px}.portal-nav-link em{margin-left:auto;min-width:21px;height:21px;display:grid;place-items:center;border-radius:50%;background:#242b33;color:#fff;font-style:normal;font-size:10px}.portal-nav-link:hover,.portal-nav-link.active{background:linear-gradient(90deg,rgba(255,90,24,.13),rgba(255,90,24,.03));color:#fff}.portal-nav-link.active{box-shadow:inset 2px 0 var(--orange)}.portal-nav-link.active>span{color:var(--orange-light)}.portal-side-card{margin-top:auto;padding:18px;border:1px solid rgba(255,90,24,.17);border-radius:12px;background:linear-gradient(145deg,rgba(255,90,24,.07),rgba(255,255,255,.02))}.portal-side-card>span,.portal-eyebrow,.project-type,.panel-title span,.metric-card>span{color:var(--orange-light);font:700 10px "Space Grotesk";letter-spacing:.14em}.portal-side-card strong{display:block;margin:8px 0 6px;font:700 15px "Space Grotesk"}.portal-side-card p{margin:0 0 14px;color:var(--muted);font-size:11px;line-height:1.55}.portal-outline-button{width:100%;padding:10px;border:1px solid rgba(255,90,24,.3);border-radius:6px;background:transparent;color:#fff;font:700 10px "Space Grotesk";cursor:pointer}.portal-back{margin:18px 4px 0;color:#69737d;font:600 10px "Space Grotesk"}.portal-content{grid-column:2;padding:50px clamp(28px,4vw,68px) 80px;max-width:1500px;width:100%;margin:auto}.portal-view{display:none}.portal-view.active{display:block;animation:portalIn .3s ease}@keyframes portalIn{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}.portal-title-row{display:flex;justify-content:space-between;gap:30px;align-items:flex-end;margin-bottom:28px}.portal-title-row h1{margin:7px 0 5px;font:800 clamp(38px,4vw,58px)/.95 "Barlow Condensed";letter-spacing:-.02em}.portal-title-row h1 em{color:var(--orange);font-style:italic}.portal-title-row p{margin:0;color:var(--muted);font-size:13px}.portal-primary-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 17px;border-radius:7px;background:linear-gradient(135deg,var(--orange-light),var(--red));color:#fff;font:700 11px "Space Grotesk";white-space:nowrap;cursor:pointer;box-shadow:0 12px 28px rgba(255,75,20,.14)}.project-hero-card,.portal-panel,.metric-card{border:1px solid var(--line);border-radius:14px;background:linear-gradient(145deg,#11161c,#0d1217);box-shadow:0 24px 70px rgba(0,0,0,.17)}.project-hero-card{position:relative;overflow:hidden;padding:30px;margin-bottom:20px}.project-hero-card:before{content:"";position:absolute;width:300px;height:300px;right:-120px;top:-160px;border-radius:50%;background:rgba(255,90,24,.1);filter:blur(55px)}.project-card-top{position:relative;display:flex;justify-content:space-between;gap:30px}.project-card-top h2{margin:7px 0 8px;font:700 28px "Space Grotesk"}.project-card-top p{max-width:700px;margin:0;color:var(--muted);font-size:12px;line-height:1.6}.status-badge{height:max-content;padding:7px 9px;border:1px solid rgba(255,148,24,.25);border-radius:5px;background:rgba(255,148,24,.08);color:var(--orange-light);font:700 9px "Space Grotesk";letter-spacing:.08em}.project-progress-copy{display:flex;align-items:flex-end;justify-content:space-between;margin:28px 0 9px}.project-progress-copy>div{display:flex;align-items:flex-end;gap:10px}.project-progress-copy span{color:#84909a;font:600 9px "Space Grotesk";letter-spacing:.08em}.project-progress-copy strong{font:700 24px "Space Grotesk"}.portal-progress{height:8px;border-radius:99px;background:#242a31;overflow:hidden}.portal-progress i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--orange-light),var(--red));box-shadow:0 0 20px rgba(255,90,24,.3)}.project-stages{display:grid;grid-template-columns:repeat(5,1fr);gap:5px;margin-top:12px;color:#5f6972;font:600 9px "Space Grotesk"}.project-stages .done{color:#8c969f}.project-stages .current{color:var(--orange-light)}.project-card-actions{display:flex;align-items:center;gap:22px;margin-top:26px}.portal-text-button{padding:0;background:none;color:#9ca6af;font:700 10px "Space Grotesk";cursor:pointer}.portal-text-button:hover{color:#fff}.portal-grid{display:grid;gap:20px;margin-bottom:20px}.portal-grid-2{grid-template-columns:1.05fr .95fr}.portal-grid-3{grid-template-columns:repeat(3,1fr)}.portal-panel{padding:24px}.panel-title{display:flex;justify-content:space-between;gap:20px;margin-bottom:16px}.panel-title h3{margin:5px 0 0;font:700 18px "Space Grotesk"}.panel-title>small{color:#66717b;font:600 9px "Space Grotesk"}.portal-panel>p{color:#9aa5af;font-size:12px;line-height:1.75}.update-meta{display:flex;align-items:center;gap:10px;margin-top:19px;padding-top:16px;border-top:1px solid var(--line)}.update-meta>span{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#232a31;color:var(--orange-light);font:700 9px "Space Grotesk"}.update-meta b,.update-meta small{display:block}.update-meta b{font:600 10px "Space Grotesk"}.update-meta small{margin-top:3px;color:#65707a;font-size:9px}.quick-actions{display:grid}.quick-actions button{display:grid;grid-template-columns:32px 1fr auto;gap:11px;align-items:center;padding:13px 0;border-bottom:1px solid var(--line);background:none;color:#fff;text-align:left;cursor:pointer}.quick-actions button:last-child{border:0}.quick-actions b{display:grid;place-items:center;width:32px;height:32px;border-radius:6px;background:rgba(255,90,24,.08);color:var(--orange-light)}.quick-actions strong,.quick-actions small{display:block}.quick-actions strong{font:600 11px "Space Grotesk"}.quick-actions small{margin-top:3px;color:#6f7a84;font-size:9px}.quick-actions i{color:#6f7a84;font-style:normal}.panel-title-inline{align-items:center}.request-list{display:grid}.request-row{display:grid;grid-template-columns:38px 1fr auto;gap:13px;align-items:start;padding:16px 0;border-bottom:1px solid var(--line)}.request-row:last-child{border:0}.request-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:7px;background:#1a2027;color:var(--orange-light)}.request-row strong,.request-row small{display:block}.request-row strong{font:600 11px "Space Grotesk"}.request-row small{margin-top:5px;color:#66717b;font-size:9px}.request-row p{margin:8px 0 0;color:#8b96a0;font-size:11px;line-height:1.5}.request-status{padding:6px 8px;border-radius:5px;font:700 8px "Space Grotesk";letter-spacing:.07em}.request-status.progress{background:rgba(255,148,24,.08);color:var(--orange-light)}.request-status.complete{background:rgba(87,227,124,.08);color:var(--green)}.request-status.new{background:rgba(89,164,255,.1);color:#77b7ff}.metric-card{padding:22px}.metric-card strong{display:block;margin:9px 0 3px;font:800 27px "Barlow Condensed"}.metric-card small{color:#6e7983;font-size:10px}.roadmap{display:grid}.roadmap-item{position:relative;display:grid;grid-template-columns:38px 1fr;gap:15px;padding:8px 0 22px}.roadmap-item:not(:last-child):after{content:"";position:absolute;left:17px;top:42px;bottom:2px;width:1px;background:#2b3239}.roadmap-item>i{position:relative;z-index:1;display:grid;place-items:center;width:35px;height:35px;border:1px solid #343c44;border-radius:50%;background:#11161c;color:#68737d;font:700 10px "Space Grotesk";font-style:normal}.roadmap-item.done>i{border-color:rgba(87,227,124,.25);color:var(--green)}.roadmap-item.current>i{border-color:rgba(255,90,24,.4);background:rgba(255,90,24,.1);color:var(--orange-light);box-shadow:0 0 22px rgba(255,90,24,.08)}.roadmap-item strong{font:600 12px "Space Grotesk"}.roadmap-item p{margin:5px 0 0;color:#76818b;font-size:10px}.file-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.file-card{display:grid;grid-template-columns:42px 1fr auto;gap:12px;align-items:center;padding:14px;border:1px solid var(--line);border-radius:9px;background:#0c1116}.file-card>span{display:grid;place-items:center;width:42px;height:42px;border-radius:7px;background:rgba(255,90,24,.08);color:var(--orange-light);font:700 9px "Space Grotesk"}.file-card strong,.file-card small{display:block}.file-card strong{overflow:hidden;text-overflow:ellipsis;font:600 10px "Space Grotesk"}.file-card small{margin-top:4px;color:#66717b;font-size:9px}.file-card>b{color:#66717b}.portal-modal{position:fixed;inset:0;z-index:1000;display:none;place-items:center;padding:20px;background:rgba(0,0,0,.72);backdrop-filter:blur(8px)}.portal-modal.open{display:grid}.portal-modal-card{position:relative;width:min(100%,560px);padding:30px;border:1px solid rgba(255,90,24,.2);border-radius:14px;background:#10151b;box-shadow:0 35px 100px rgba(0,0,0,.55)}.portal-modal-card h2{margin:7px 0;font:800 36px "Barlow Condensed"}.portal-modal-card>p{margin:0 0 20px;color:var(--muted);font-size:11px;line-height:1.6}.modal-close{position:absolute;right:17px;top:14px;background:none;color:#7b858f;font-size:26px;cursor:pointer}.portal-modal form{display:grid;gap:14px}.portal-modal label{display:grid;gap:7px;color:#a9b2ba;font:600 10px "Space Grotesk"}.portal-modal input,.portal-modal select,.portal-modal textarea{width:100%;padding:12px;border:1px solid #252c34;border-radius:7px;outline:none;background:#090d11;color:#fff;font:400 12px Inter}.portal-modal textarea{resize:vertical}.portal-modal input:focus,.portal-modal select:focus,.portal-modal textarea:focus{border-color:rgba(255,90,24,.55)}.portal-toast{position:fixed;right:25px;bottom:25px;z-index:1200;padding:13px 16px;border:1px solid rgba(87,227,124,.25);border-radius:8px;background:#111b16;color:#bff5cc;font:600 10px "Space Grotesk";opacity:0;transform:translateY(10px);pointer-events:none;transition:.25s}.portal-toast.show{opacity:1;transform:none}@media(max-width:980px){:root{--portal-sidebar:78px}.portal-sidebar{padding-inline:10px}.portal-nav-link{justify-content:center;padding-inline:8px;font-size:0}.portal-nav-link>span{font-size:18px}.portal-nav-link em{position:absolute;margin:0 0 24px 28px}.portal-side-card,.portal-back{display:none}.portal-grid-2{grid-template-columns:1fr}.file-grid{grid-template-columns:1fr 1fr}}@media(max-width:700px){.portal-header{height:70px;padding:0 15px}.portal-brand img{width:155px}.connection-pill,.portal-user b,.portal-user small{display:none}.portal-shell{display:block;padding-top:70px}.portal-sidebar{position:fixed;z-index:90;top:auto;bottom:0;left:0;right:0;width:auto;height:67px;padding:8px;border:0;border-top:1px solid var(--line)}.portal-nav{grid-template-columns:repeat(5,1fr);gap:2px}.portal-nav-link{height:50px}.portal-content{padding:28px 17px 90px}.portal-title-row{align-items:flex-start;flex-direction:column}.portal-title-row h1{font-size:42px}.project-card-top{display:block}.status-badge{display:inline-block;margin-top:15px}.project-stages{grid-template-columns:1fr;gap:8px}.project-card-actions{align-items:flex-start;flex-direction:column}.portal-grid-3,.file-grid{grid-template-columns:1fr}.request-row{grid-template-columns:36px 1fr}.request-status{grid-column:2;width:max-content}.portal-panel,.project-hero-card{padding:19px}}
/* =========================================================
   CLIENT PORTAL — LARGER TYPOGRAPHY
   ========================================================= */

/* General portal text */
.portal-body {
    font-size: 17px;
}

/* Header / client identity */
.portal-user {
    font-size: 16px;
}

.portal-user b {
    font-size: 16px;
}

.portal-user small {
    font-size: 15px;
}

.connection-pill {
    font-size: 13px;
}


/* Sidebar navigation */
.portal-nav-link {
    font-size: 16px;
}

.portal-nav-link span {
    font-size: 19px;
}

.portal-nav-link em {
    font-size: 13px;
}


/* Sidebar support card */
.portal-side-card > span {
    font-size: 13px;
}

.portal-side-card strong {
    font-size: 20px;
}

.portal-side-card p {
    font-size: 15px;
    line-height: 1.6;
}

.portal-back {
    font-size: 14px;
}


/* Small orange labels */
.portal-eyebrow,
.project-type,
.panel-title span {
    font-size: 14px;
    letter-spacing: 0.08em;
}


/* Main page titles */
.portal-title-row h1 {
    font-size: clamp(42px, 5vw, 68px);
    line-height: 0.95;
}

.portal-title-row > div > p {
    font-size: 18px;
    line-height: 1.6;
}


/* Main project card */
.project-hero-card h2 {
    font-size: clamp(32px, 4vw, 46px);
}

.project-hero-card p {
    font-size: 17px;
    line-height: 1.65;
}

.status-badge {
    font-size: 13px;
}


/* Progress */
.project-progress-copy span {
    font-size: 14px;
}

.project-progress-copy strong {
    font-size: 26px;
}

.project-stages span {
    font-size: 14px;
}


/* Panel headings */
.panel-title h3 {
    font-size: 25px;
}

.panel-title small {
    font-size: 13px;
}

.portal-panel > p {
    font-size: 16px;
    line-height: 1.7;
}


/* Project update author */
.update-meta b {
    font-size: 15px;
}

.update-meta small {
    font-size: 13px;
}


/* Quick actions */
.quick-actions strong {
    font-size: 16px;
}

.quick-actions small {
    font-size: 14px;
    line-height: 1.4;
}

.quick-actions b {
    font-size: 20px;
}


/* Metric cards */
.metric-card > span {
    font-size: 13px;
}

.metric-card strong {
    font-size: 34px;
}

.metric-card small {
    font-size: 14px;
}


/* Project roadmap */
.roadmap-item strong {
    font-size: 18px;
}

.roadmap-item p {
    font-size: 15px;
    line-height: 1.6;
}

.roadmap-item i {
    font-size: 15px;
}


/* Change requests / support tickets */
.request-row strong {
    font-size: 17px;
}

.request-row small {
    font-size: 14px;
}

.request-row p {
    font-size: 15px;
    line-height: 1.6;
}

.request-status {
    font-size: 12px;
}


/* File cards */
.file-card strong {
    font-size: 16px;
}

.file-card small {
    font-size: 14px;
}

.file-card > span {
    font-size: 14px;
}


/* Buttons */
.portal-primary-button,
.portal-outline-button,
.portal-text-button {
    font-size: 14px;
}


/* Modal text */
.portal-modal-card h2 {
    font-size: 34px;
}

.portal-modal-card > p {
    font-size: 16px;
    line-height: 1.6;
}

.portal-modal-card label {
    font-size: 15px;
}

.portal-modal-card input,
.portal-modal-card select,
.portal-modal-card textarea {
    font-size: 16px;
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 700px) {

    .portal-body {
        font-size: 16px;
    }

    .portal-title-row h1 {
        font-size: 42px;
    }

    .project-hero-card h2 {
        font-size: 32px;
    }

    .portal-title-row > div > p {
        font-size: 16px;
    }

    .project-hero-card p {
        font-size: 16px;
    }

    .panel-title h3 {
        font-size: 22px;
    }

    .metric-card strong {
        font-size: 30px;
    }

    .portal-nav-link {
        font-size: 15px;
    }
}
/* Connected support and file controls */
.file-card button {cursor:pointer; margin-left:auto;}
.bt-admin-response {width:100%;min-height:80px;background:#161616;color:#fff;border:1px solid #555;border-radius:8px;padding:12px;font:inherit;}
.bt-queue-body {flex:1;min-width:0;}
.bt-queue-controls {display:flex;gap:10px;flex-wrap:wrap;margin:12px 0;}
.bt-queue-row {align-items:flex-start;}
