.portal-login-section{background:linear-gradient(135deg,#f7f6f2 0%,#fff 55%,#f2eee8 100%)}
.portal-login-shell{max-width:520px;margin:0 auto}
.portal-login-card,.portal-panel{background:#fff;border:1px solid rgba(18,22,25,.1);border-radius:18px;box-shadow:0 18px 46px rgba(18,22,25,.08)}
.portal-login-card{padding:36px}
.portal-login-card h2{font-size:clamp(2rem,5vw,2.9rem);margin:0 0 10px;letter-spacing:-.035em}
.portal-muted{color:#646c72;margin-top:0}
.portal-form{display:grid;gap:16px}
.portal-field{display:grid;gap:7px}
.portal-field label{font-weight:800;font-size:.9rem;color:#22282c}
.portal-field input,.portal-field select,.portal-field textarea{width:100%;border:1px solid #cfd3d5;background:#fff;color:#121619;border-radius:9px;padding:12px 13px;min-height:48px;font:inherit}
.portal-field textarea{resize:vertical;min-height:96px}
.portal-field input:focus,.portal-field select:focus,.portal-field textarea:focus{border-color:var(--brice-amber);box-shadow:0 0 0 3px rgba(245,130,32,.16);outline:0}
.portal-password-wrap{position:relative}
.portal-password-wrap input{padding-right:70px}
.portal-password-toggle{position:absolute;right:8px;top:50%;transform:translateY(-50%);border:0;background:#eef0f1;color:#22282c;border-radius:7px;padding:7px 9px;font-weight:800;font-size:.78rem;cursor:pointer}
.portal-check{display:flex;align-items:center;gap:9px;font-size:.9rem;color:#4e565c}
.portal-check input{width:18px;height:18px;accent-color:var(--brice-amber)}
.portal-submit{width:100%;justify-content:center}
.portal-login-links{text-align:center;margin:0}
.portal-login-links a,.portal-text-link{color:#a64e09;font-weight:800;text-decoration:none}
.portal-login-links a:hover,.portal-text-link:hover{text-decoration:underline}
.portal-security-note{background:#f6f1eb;border-left:4px solid var(--brice-amber);border-radius:0 9px 9px 0;padding:13px 15px;color:#4d555a;font-size:.86rem}
.portal-alert{padding:13px 15px;border-radius:9px;font-weight:700;font-size:.91rem}
.portal-alert--success{background:#e9f6ef;color:#0e5e3c;border:1px solid #b9e2cb}
.portal-alert--error{background:#fbecec;color:#812222;border:1px solid #efc1c1}
.portal-alert--notice{background:#fff7e9;color:#71430f;border:1px solid #ead0a6}

.portal-page-section{background:#f3f1ed;padding:56px 0 76px}
.portal-app{width:var(--brice-shell);margin:0 auto;background:#eef0f1;border:1px solid rgba(18,22,25,.08);border-radius:22px;overflow:hidden;box-shadow:0 20px 60px rgba(18,22,25,.1)}
.portal-app__top{display:flex;justify-content:space-between;align-items:center;gap:24px;background:#111619;color:#fff;padding:22px 28px}
.portal-app__top>div:first-child{display:grid;gap:3px}
.portal-app-title{margin:0;font-size:1.15rem;line-height:1.2;color:#fff;letter-spacing:0}
.portal-kicker{font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;color:var(--brice-amber);font-weight:900}
.portal-user{display:flex;align-items:center;gap:16px;color:rgba(255,255,255,.78);font-size:.9rem}
.portal-user a{color:#fff;font-weight:800;text-decoration:none}
.portal-nav{display:flex;gap:4px;overflow-x:auto;background:#1c2226;padding:0 22px;border-top:1px solid rgba(255,255,255,.06);scrollbar-width:thin}
.portal-nav__link{flex:0 0 auto;padding:15px 15px 13px;color:rgba(255,255,255,.72);text-decoration:none;border-bottom:3px solid transparent;font-size:.9rem;font-weight:800;white-space:nowrap}
.portal-nav__link:hover,.portal-nav__link.is-active{color:#fff;border-bottom-color:var(--brice-amber)}
.portal-content{padding:28px}
.portal-content>.portal-alert{margin-bottom:20px}
.portal-section-head,.portal-panel__head{display:flex;justify-content:space-between;align-items:center;gap:20px}
.portal-section-head{margin-bottom:22px}
.portal-section-head h2{font-size:clamp(2rem,4vw,3rem);line-height:1;margin:0;letter-spacing:-.035em}
.portal-section-head .eyebrow{margin-bottom:9px}
.portal-head-actions{display:flex;gap:10px;flex-wrap:wrap}
.portal-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}
.portal-stat{background:#fff;border:1px solid rgba(18,22,25,.08);border-radius:15px;padding:20px;display:grid;gap:7px;min-width:0}
.portal-stat span{font-size:.76rem;text-transform:uppercase;letter-spacing:.08em;color:#6f777c;font-weight:900}
.portal-stat strong{font-size:clamp(1.55rem,3vw,2.25rem);line-height:1;color:#151a1d;overflow-wrap:anywhere}
.portal-stat small{color:#7a8185;font-size:.78rem}
.portal-two-col{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.portal-panel{padding:24px;margin-bottom:18px;box-shadow:none}
.portal-panel h3{font-size:1.22rem;margin:0 0 8px}
.portal-panel__head{margin-bottom:20px}
.portal-panel__head h3{margin:0}
.portal-panel__head p{margin:5px 0 0;color:#737b80;font-size:.88rem}
.portal-mini-stats{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px}
.portal-mini-stats>div{background:#f5f5f3;border-radius:11px;padding:16px;display:grid;gap:3px}
.portal-mini-stats strong{font-size:1.8rem}
.portal-mini-stats span{color:#71787d;font-size:.84rem}
.portal-activity{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:11px}
.portal-activity li{display:grid;gap:3px;border-bottom:1px solid #eceeed;padding-bottom:10px}
.portal-activity li:last-child{border-bottom:0;padding-bottom:0}
.portal-activity span{font-weight:750;color:#2a3034;font-size:.9rem}
.portal-activity small{color:#7a8185;font-size:.76rem}
.portal-editor{margin-bottom:18px}
.portal-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.portal-field--full{grid-column:1/-1}
.portal-table-panel{overflow:hidden}
.portal-table-scroll{overflow:auto;border:1px solid #e1e4e5;border-radius:11px;background:#fff}
.portal-table{width:100%;border-collapse:collapse;min-width:920px;font-size:.86rem}
.portal-table th,.portal-table td{text-align:left;padding:13px 12px;border-bottom:1px solid #eceeef;vertical-align:middle}
.portal-table th{position:sticky;top:0;background:#f6f7f7;color:#50585d;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;z-index:1}
.portal-table tr:last-child td{border-bottom:0}
.portal-badge{display:inline-flex;align-items:center;border-radius:999px;padding:5px 8px;font-size:.7rem;font-weight:900;white-space:nowrap}
.portal-badge--paid{background:#e4f5eb;color:#17623f}
.portal-badge--alert{background:#fbe7e5;color:#942d27}
.portal-badge--open{background:#fff1dd;color:#78400b}
.portal-row-actions{display:flex;align-items:center;gap:10px;white-space:nowrap}
.portal-row-actions form{display:inline;margin:0}
.portal-delete{border:0;background:none;color:#a12620;font:inherit;font-weight:800;padding:0;cursor:pointer}
.portal-delete:hover{text-decoration:underline}
.portal-empty{display:grid;gap:5px;text-align:center;padding:42px 20px;background:#f8f8f6;border-radius:11px;color:#6b7378}
.portal-empty strong{color:#282e32;font-size:1rem}
.portal-security-list{display:grid;gap:14px;margin:18px 0;padding-left:22px;color:#4d555a}
.portal-security-list strong{color:#22282c}
.button--outline-dark{background:transparent;border:1px solid #b5babc;color:#242a2e}
.button--outline-dark:hover{background:#f1f2f2}

@media (max-width:1080px){
  .portal-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .portal-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:760px){
  .portal-page-section{padding:28px 0 48px}
  .portal-app{border-radius:15px}
  .portal-app__top{align-items:flex-start;padding:18px}
  .portal-user{display:grid;gap:4px;text-align:right}
  .portal-nav{padding:0 10px}
  .portal-content{padding:18px}
  .portal-section-head,.portal-panel__head{align-items:flex-start;flex-direction:column}
  .portal-head-actions{width:100%}
  .portal-head-actions .button{flex:1 1 150px}
  .portal-two-col{grid-template-columns:1fr}
  .portal-form-grid{grid-template-columns:1fr}
  .portal-field--full{grid-column:auto}
  .portal-panel{padding:18px;border-radius:14px}
  .portal-login-card{padding:26px 20px}
}
@media (max-width:520px){
  .portal-stat-grid{grid-template-columns:1fr}
  .portal-app__top{gap:12px}
  .portal-app-title{font-size:1rem}
  .portal-user span{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .portal-content{padding:14px}
  .portal-section-head h2{font-size:2rem}
  .portal-login-card{border-radius:14px}
}

/* Invoice PDF actions */
.portal-editor-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.portal-pdf-link{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:7px 10px;border-radius:8px;background:#fff1dd;border:1px solid #f1c798;color:#7a3d08;font-size:.78rem;font-weight:900;line-height:1;text-decoration:none;white-space:nowrap}
.portal-pdf-link:hover{background:#f58220;border-color:#f58220;color:#121619;text-decoration:none}
.portal-pdf-link:focus-visible{outline:3px solid rgba(245,130,32,.28);outline-offset:2px}
.portal-optional{font-size:.72rem;font-weight:700;color:#7a8185;margin-left:4px}
.portal-table{min-width:1040px}
@media (max-width:760px){
  .portal-editor-actions{width:100%;justify-content:flex-start}
  .portal-pdf-link{min-height:40px;padding:9px 12px}
}

/* Quote estimator settings */
.portal-settings-intro{margin-bottom:18px}
.portal-rule-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px}
.portal-rule-grid>div{background:#f5f5f3;border-radius:11px;padding:14px;display:grid;gap:5px}
.portal-rule-grid span{font-size:.71rem;text-transform:uppercase;letter-spacing:.055em;color:#71797e;font-weight:900}
.portal-rule-grid strong{font-size:.94rem;color:#20262a}
.portal-fuel-reading{display:grid;gap:3px;margin-top:15px}
.portal-fuel-reading strong{font-size:2.3rem;line-height:1;color:#171c1f}
.portal-fuel-reading span{font-weight:850;color:#4e565b}
.portal-fuel-reading small{color:#7a8185;margin-top:4px}
.portal-field-help{font-size:.76rem;color:#767e83;margin-top:-2px}
.portal-check--compact{font-size:.76rem;margin-top:2px}
.portal-check--compact input{width:16px;height:16px}
.portal-settings-divider{display:flex;align-items:center;gap:12px;margin:9px 0 0;color:#6c7479;font-size:.72rem;font-weight:900;text-transform:uppercase;letter-spacing:.09em}
.portal-settings-divider::before,.portal-settings-divider::after{content:"";height:1px;background:#e0e3e4;flex:1}
.portal-settings-actions{margin-top:4px}
.portal-inline-test{margin-top:12px;padding-top:14px;border-top:1px solid #eceeef}
.portal-test-list{display:grid;gap:8px;margin-top:14px}
.portal-test-item{display:flex;gap:9px;align-items:flex-start;border-radius:9px;padding:10px 12px;font-size:.86rem;font-weight:750}
.portal-test-item span{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;flex:0 0 20px;font-size:.72rem;font-weight:950}
.portal-test-item--success{background:#eaf6ef;color:#155d3d}.portal-test-item--success span{background:#1a754c;color:#fff}
.portal-test-item--error{background:#fbecec;color:#812222}.portal-test-item--error span{background:#a5302a;color:#fff}
@media(max-width:760px){.portal-rule-grid{grid-template-columns:1fr}.portal-inline-test .button{width:100%}}
.portal-form-grid.is-muted{opacity:.66}
.portal-form-grid.is-muted:focus-within{opacity:1}
