/* Complete service portal skin: customer, office, authentication and forms.
   Shared colors, typography and interactions live in design-builder-theme.css. */
.dbi-portal-theme .sidebar{overflow-y:auto;overscroll-behavior:contain}
.dbi-portal-theme :is(.sidebar .navbtn,.sidebar .logo-wrap,.sidebar .brand-title,.sidebar-foot){flex-shrink:0}
.dbi-portal-theme .navbtn{min-height:42px;font-size:15px}
.dbi-portal-theme .card,.dbi-portal-theme .visit-card{margin-bottom:22px}
.dbi-portal-theme :is(.metric,.visit-card,.asset-card){background:var(--dbi-surface);color:var(--dbi-text);border:1px solid var(--dbi-line);border-radius:10px}
.dbi-portal-theme .metric{border-top:2px solid var(--dbi-blue);padding:21px}
.dbi-portal-theme .metric-value{font-size:32px;font-weight:600}
.dbi-portal-theme .metric-label .icon{color:var(--dbi-blue-light)}
.dbi-portal-theme :is(.metric-label,.metric-note,.visit-meta,.visit-footer,.asset-card p,.list-item p,.empty,.detail-data dt,.message-meta,.timeline-item time,.progress-note,.field small,.field label){color:var(--dbi-muted)}
.dbi-portal-theme :is(.card-header,.list-item,.page-heading)>div{min-width:0}
.dbi-portal-theme :is(.card,.asset-card,.visit-card,.list-item,.detail-data dd,.scope){overflow-wrap:anywhere}
.dbi-portal-theme :is(.list-item,.visit-footer,.data-table th,.data-table td,.tabs){border-color:var(--dbi-line)}
.dbi-portal-theme .list-item>.btn{flex-shrink:0}
.dbi-portal-theme .asset-icon{background:var(--dbi-selected);color:var(--dbi-blue-light);border:1px solid var(--dbi-line);border-radius:8px}
.dbi-portal-theme .data-table th{background:var(--dbi-raised);color:var(--dbi-muted);padding:14px 15px}
.dbi-portal-theme .data-table td{color:var(--dbi-text);padding:15px}
.dbi-portal-theme .data-table td:first-child{color:var(--dbi-text)}
.dbi-portal-theme .data-table .subline{color:var(--dbi-muted);line-height:1.65;font-size:11px}
.dbi-portal-theme .data-table tbody tr:hover{background:var(--dbi-inset)}
.dbi-portal-theme .row-button{justify-content:flex-start;background:transparent;border-color:transparent;padding:5px 0;box-shadow:none;color:var(--dbi-blue-light);text-align:left}
.dbi-portal-theme .icon-button{min-width:44px;padding:9px;background:transparent;border-color:transparent;box-shadow:none}
.dbi-portal-theme .text-button{border-color:transparent;background:transparent;color:var(--dbi-blue-light);padding:7px 10px;box-shadow:none}
.dbi-portal-theme .btn.light{background:var(--dbi-raised);color:var(--dbi-text);border-color:var(--dbi-line)}
.dbi-portal-theme .btn.ghost{background:transparent;color:var(--dbi-text);border-color:var(--dbi-line-strong)}
.dbi-portal-theme .btn.danger{color:var(--dbi-danger);border-color:var(--dbi-danger)}
.dbi-portal-theme .badge{line-height:1.5;padding:4px 8px}
.dbi-portal-theme .badge.red{background:var(--dbi-danger-surface);color:var(--dbi-danger);border-color:#79404f}
.dbi-portal-theme .badge.amber{background:var(--dbi-warning-surface);color:var(--dbi-warning);border-color:#756044}
.dbi-portal-theme .badge.gray{background:var(--dbi-raised);color:var(--dbi-muted);border-color:var(--dbi-line)}
.dbi-portal-theme .tabs{padding-bottom:8px;gap:8px}
.dbi-portal-theme .tabs .tab{min-width:70px;flex-shrink:0}
.dbi-portal-theme .calendar-box{background:var(--dbi-inset);border-color:var(--dbi-line)}
.dbi-portal-theme .calendar-box small{background:var(--dbi-selected);color:var(--dbi-blue-light)}
.dbi-portal-theme .service-card{background:linear-gradient(115deg,var(--dbi-selected),var(--dbi-inset));border:1px solid var(--dbi-line)}
.dbi-portal-theme .service-card p{color:var(--dbi-muted)}

/* Action cards are content panels, so preserve their sentence case and layout. */
.dbi-portal-theme .customer-action{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:0;text-align:left;min-height:235px;padding:25px;border:1px solid var(--dbi-line);border-radius:10px;background:var(--dbi-surface);color:var(--dbi-text);font-family:'DM Sans',Arial,sans-serif;text-transform:none;letter-spacing:normal;line-height:1.5}
.dbi-portal-theme .customer-action h2{font-size:22px;line-height:1.25;font-weight:600;letter-spacing:-.4px;color:var(--dbi-text)}
.dbi-portal-theme .customer-action p{font-size:13px;font-weight:400;color:var(--dbi-muted)}
.dbi-portal-theme .customer-action span{font-family:'Barlow Condensed',Arial,sans-serif;font-size:15px;letter-spacing:.55px;text-transform:uppercase;color:var(--dbi-blue-light);margin-top:auto;padding-top:22px}
.dbi-portal-theme .customer-action>.icon{width:28px;height:28px;color:var(--dbi-blue-light);margin-bottom:23px}
.dbi-portal-theme .customer-action.main-action{background:linear-gradient(125deg,var(--dbi-selected),var(--dbi-raised));border-color:var(--dbi-blue)}
.dbi-portal-theme .customer-action:hover{transform:none;border-color:var(--dbi-blue);background:var(--dbi-hover);box-shadow:inset 0 -2px 0 var(--dbi-blue)}
.dbi-portal-theme .customer-action::after{display:none}
.dbi-portal-theme .customer-design-link{background:linear-gradient(120deg,var(--dbi-raised),var(--dbi-surface));border-color:var(--dbi-line);color:var(--dbi-text);border-left:3px solid var(--dbi-blue)}
.dbi-portal-theme .customer-design-link p,.dbi-portal-theme .customer-design-link span{color:var(--dbi-muted)}
.dbi-portal-theme .customer-design-icon{background:var(--dbi-selected);color:var(--dbi-blue-light);border:1px solid var(--dbi-line)}
.dbi-portal-theme .customer-design-link .btn{color:var(--dbi-text)}

/* Messages, activity, administrative notices and file controls. */
.dbi-portal-theme .message{background:var(--dbi-inset);border:1px solid var(--dbi-line);color:var(--dbi-text)}
.dbi-portal-theme .message.internal{background:var(--dbi-warning-surface);border-left:3px solid var(--dbi-warning)}
.dbi-portal-theme .timeline{border-color:var(--dbi-line-strong)}
.dbi-portal-theme .timeline-item::before{background:var(--dbi-blue);border-color:var(--dbi-surface)}
.dbi-portal-theme .notice{background:var(--dbi-raised);color:var(--dbi-muted);border-color:var(--dbi-line);line-height:1.7}
.dbi-portal-theme .notice.warning{background:var(--dbi-warning-surface);color:var(--dbi-warning);border-color:#756044}
.dbi-portal-theme .form-error{color:var(--dbi-danger);line-height:1.6}
.dbi-portal-theme .link-code{background:var(--dbi-inset);color:var(--dbi-blue-light);border:1px solid var(--dbi-line);line-height:1.8}
.dbi-portal-theme .inline-check{line-height:1.7;min-height:44px}
.dbi-portal-theme input:is([type=checkbox],[type=radio]){min-height:18px;width:18px;height:18px;flex-shrink:0;accent-color:var(--dbi-blue)}
.dbi-portal-theme input[type=file]{max-width:100%;font-family:inherit;font-size:13px;color:var(--dbi-muted)}
.dbi-portal-theme input[type=file]::file-selector-button{min-height:44px;padding:10px 14px;margin-right:12px;border:1px solid var(--dbi-line-strong);border-radius:5px;background:var(--dbi-raised);color:var(--dbi-text);cursor:pointer}
.dbi-portal-theme :is(button,input,select,textarea)[hidden]{display:none!important}

/* All dialogs, including the request wizard and customer-login setup. */
.dbi-portal-theme .dialog{background:var(--dbi-surface);color:var(--dbi-text);border:1px solid var(--dbi-line-strong);border-radius:10px;box-shadow:0 24px 100px #000a;max-height:calc(100dvh - 24px)}
.dbi-portal-theme .dialog::backdrop{background:#05080ecc}
.dbi-portal-theme :is(.dialog-header,.dialog-head){border-color:var(--dbi-line);background:var(--dbi-raised);padding:20px 24px}
.dbi-portal-theme .dialog-header .icon-button{flex-shrink:0;font-size:22px}
.dbi-portal-theme .dialog-body{background:var(--dbi-surface);max-height:calc(100dvh - 150px);overscroll-behavior:contain}
.dbi-portal-theme .dialog-close{background:var(--dbi-inset);color:var(--dbi-text)}
.dbi-portal-theme .wizard-progress{background:var(--dbi-inset);color:var(--dbi-muted);border-bottom:1px solid var(--dbi-line)}
.dbi-portal-theme .wizard-progress span{border-color:var(--dbi-line)}
.dbi-portal-theme .wizard-progress .current{border-color:var(--dbi-blue);color:var(--dbi-text)}
.dbi-portal-theme .wizard-progress .done{border-color:var(--dbi-success);color:var(--dbi-success)}
.dbi-portal-theme .wizard-category{justify-content:space-between;text-align:left;min-height:72px;background:var(--dbi-inset);border-color:var(--dbi-line);padding:16px}
.dbi-portal-theme .wizard-category.selected{background:var(--dbi-selected);border:2px solid var(--dbi-blue);padding:15px;color:var(--dbi-text)}
.dbi-portal-theme .wizard-footer{border-color:var(--dbi-line)}
.dbi-portal-theme .success-check{background:var(--dbi-success-surface);color:var(--dbi-success);border:1px solid var(--dbi-success)}

/* Login, invitation password setup, recovery and initial loading. */
.dbi-portal-theme .auth-layout{background:var(--dbi-black)}
.dbi-portal-theme .auth-art{background:radial-gradient(ellipse at 10% 75%,#17395c99,transparent 65%),linear-gradient(145deg,var(--dbi-inset),var(--dbi-black));border-right:1px solid var(--dbi-line);color:var(--dbi-text)}
.dbi-portal-theme .auth-art .logo-wrap{margin:0;width:auto}
.dbi-portal-theme .auth-art .dbi-design-logo{width:205px;height:64px}
.dbi-portal-theme .auth-art :is(p,small){color:var(--dbi-muted)}
.dbi-portal-theme .auth-art .eyebrow{color:var(--dbi-blue-light)}
.dbi-portal-theme .auth-content{background:var(--dbi-surface)}
.dbi-portal-theme .auth-form{max-width:410px}
.dbi-portal-theme .auth-form h2{color:var(--dbi-text)}
.dbi-portal-theme .auth-form form{margin-top:24px}
.dbi-portal-theme .auth-form .text-button{padding:10px 0;text-transform:none;font-family:'DM Sans',Arial,sans-serif;letter-spacing:normal;font-size:12px;justify-content:flex-start}
.dbi-portal-theme .initial{font-family:'DM Sans',Arial,sans-serif;color:var(--dbi-text)}
.portal-mobile-brand{display:none}

@media(max-width:1150px){.dbi-portal-theme .customer-action{padding:20px}.dbi-portal-theme .customer-action h2{font-size:20px}}
@media(max-width:800px){
  .dbi-portal-theme .page-heading{flex-direction:column;align-items:stretch}
  .dbi-portal-theme .page-heading>.actions{display:flex;flex-wrap:wrap}
  .dbi-portal-theme .page-heading>.actions>.btn{flex:1 1 auto}
  .dbi-portal-theme :is(.card-header,.list-item,.visit-footer){flex-wrap:wrap;gap:12px}
  .dbi-portal-theme :is(.card-header,.list-item)>div:first-child{flex:1 1 165px}
  .dbi-portal-theme .card-header>.btn{max-width:100%}
  .dbi-portal-theme .table-wrap{margin:0;max-width:100%;overflow-x:auto}
  .dbi-portal-theme .data-table td,.dbi-portal-theme .data-table th{padding:12px 8px}
  .dbi-portal-theme .data-table .icon-button{padding:8px;min-width:38px}
  .dbi-portal-theme .data-table .badge{white-space:normal;font-size:10px}
  .dbi-portal-theme .data-table .row-button{font-size:13px;overflow-wrap:normal}
  .dbi-portal-theme .data-table .subline{font-size:10px}
  .dbi-portal-theme .metric{padding:16px}.dbi-portal-theme .metric-value{font-size:28px}
  .dbi-portal-theme .account-menu{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dbi-portal-theme .account-menu .btn{min-width:0;font-size:14px;padding:10px}
  .dbi-portal-theme .auth-art{border-right:0;border-bottom:1px solid var(--dbi-line)}
  .dbi-portal-theme .auth-art .dbi-design-logo{width:160px;height:50px}
  .dbi-portal-theme .dialog-header,.dbi-portal-theme .dialog-head{padding:15px 18px}
  .dbi-portal-theme .dialog-body{padding:18px;max-height:calc(100dvh - 170px)}
  .dbi-portal-theme :is(input:not([type=checkbox]):not([type=radio]),select,textarea){font-size:16px}
  .dbi-portal-theme .topbar{padding:0 12px;gap:12px}
  .dbi-portal-theme .portal-mobile-brand{display:block;flex-shrink:0}
  .dbi-portal-theme .portal-mobile-brand .dbi-design-logo{width:86px;height:27px}
  .dbi-portal-theme .top-tools{width:auto;min-width:0;flex:1;gap:4px}
  .dbi-portal-theme .facility-picker{min-width:0}.dbi-portal-theme .facility-picker>.icon{display:none}
  .dbi-portal-theme .facility-picker select{font-size:12px;min-width:0;padding:9px 5px}
  .dbi-portal-theme .topbar .icon-button{min-width:36px;padding:2px}
  .dbi-portal-theme .topbar .avatar{width:32px;height:32px}
}
@media(max-width:600px){
  .dbi-portal-theme .customer-action{display:grid;grid-template-columns:30px minmax(0,1fr);gap:0 14px;min-height:0;padding:20px}
  .dbi-portal-theme .customer-action>.icon{grid-row:1/4;margin:3px 0 0}
  .dbi-portal-theme .customer-action h2{font-size:21px;margin-bottom:6px}
  .dbi-portal-theme .customer-action p{margin:0}.dbi-portal-theme .customer-action span{padding-top:14px}
  .dbi-portal-theme .customer-design-link>div:nth-child(2){min-width:0;flex-basis:200px}
  .dbi-portal-theme .wizard-category{min-height:70px;padding:12px;font-size:14px}
  .dbi-portal-theme .wizard-category.selected{padding:11px}
  .dbi-portal-theme .wizard-progress{padding:14px 16px;line-height:1.5}
}
@media print{
  .dbi-portal-theme{color-scheme:light;--dbi-black:#fff;--dbi-surface:#fff;--dbi-raised:#f1f4f7;--dbi-inset:#fff;--dbi-selected:#e8f1fa;--dbi-text:#172d3e;--dbi-muted:#465b70;--dbi-line:#b4c2cf;--dbi-line-strong:#8194a8;--dbi-blue-light:#225e9b;background:white;color:#172d3e}
  .dbi-portal-theme :is(.sidebar,.topbar,.mobile-nav,.review-banner,.demo-banner,.actions,.btn,.footer){display:none!important}
  .dbi-portal-theme .main{padding:0}.dbi-portal-theme .page-heading{border:0}
  .dbi-portal-theme :is(.card,.visit-card,.asset-card,.metric){box-shadow:none;break-inside:avoid}
}

/* Equipment grouped by facility and room, with native keyboard-accessible disclosure. */
.dbi-portal-theme .equipment-rooms{display:grid;gap:20px}
.dbi-portal-theme .equipment-facility{min-width:0;display:grid;gap:12px}
.dbi-portal-theme .equipment-facility-title{margin:4px 0 2px;color:var(--dbi-muted)}
.dbi-portal-theme .equipment-room{min-width:0;border:1px solid var(--dbi-line);border-radius:9px;background:var(--dbi-inset);overflow:clip}
.dbi-portal-theme .equipment-room>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px 20px;min-height:64px;color:var(--dbi-text);background:var(--dbi-raised)}
.dbi-portal-theme .equipment-room>summary::-webkit-details-marker{display:none}
.dbi-portal-theme .equipment-room>summary:hover{background:var(--dbi-hover)}
.dbi-portal-theme .equipment-room>summary:focus-visible{outline:2px solid var(--dbi-blue-light);outline-offset:-4px}
.dbi-portal-theme .equipment-room[open]>summary{border-bottom:1px solid var(--dbi-line);background:var(--dbi-selected)}
.dbi-portal-theme .equipment-room-title{display:flex;gap:12px;align-items:center;font-size:16px;font-weight:600;min-width:0}
.dbi-portal-theme .equipment-room-title .icon{color:var(--dbi-blue-light)}
.dbi-portal-theme .equipment-room-meta{display:flex;align-items:center;gap:14px;flex-shrink:0;color:var(--dbi-muted);font-size:12px}
.dbi-portal-theme .equipment-room-chevron{font-size:24px;line-height:1;transform:rotate(-90deg);color:var(--dbi-blue-light)}
.dbi-portal-theme .equipment-room[open] .equipment-room-chevron{transform:none}
.dbi-portal-theme .equipment-room-body{padding:18px}
.dbi-portal-theme .equipment-rooms.compact .equipment-room>summary{padding:14px 16px}
.dbi-portal-theme .equipment-rooms.compact .equipment-room-body{padding:0 16px}
.dbi-portal-theme .equipment-room-body .list-item>div{min-width:0}
.dbi-portal-theme .equipment-room-body h3{overflow-wrap:anywhere}
@media(max-width:600px){.dbi-portal-theme .equipment-room>summary{padding:16px 12px;gap:8px}.dbi-portal-theme .equipment-room-title{font-size:14px;gap:8px}.dbi-portal-theme .equipment-room-meta{gap:8px;font-size:11px}.dbi-portal-theme .equipment-room-body{padding:12px}.dbi-portal-theme .equipment-rooms.compact .list-item{align-items:flex-start;flex-wrap:wrap}.dbi-portal-theme .equipment-rooms.compact .list-item>div{flex:1 1 150px}}
