/* Booth Portal Pro 2.2 */
.bpp-calculator,.bpp{max-width:980px;margin:30px auto;font-family:inherit;color:#20384d}
.bpp-calculator{background:#fff;border:1px solid #e5eaf0;border-radius:18px;padding:24px;box-shadow:0 8px 30px rgba(20,40,60,.06)}
.bpp-calc-head{margin-bottom:20px}.bpp-calc-head span{font-size:13px;color:#6b7280}.bpp-calc-head h2{margin:5px 0}.bpp-calc-head p{color:#667085}
.bpp-calc-dim{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;align-items:end;background:#f7f9fb;padding:16px;border-radius:12px}
.bpp-calculator label{display:block;font-weight:700}.bpp-calculator input,.bpp-calculator select{display:block;width:100%;box-sizing:border-box;margin-top:7px;padding:12px;border:1px solid #d8e0e7;border-radius:9px;background:#fff}
.bpp-area-show{padding:12px;background:#fff;border:1px solid #e1e7ed;border-radius:9px}.bpp-items{margin-top:22px}.bpp-items h3{margin-bottom:10px}
.bpp-line{display:grid;grid-template-columns:1.4fr 1fr .7fr;gap:12px;align-items:center;padding:13px 0;border-bottom:1px solid #edf1f4}.bpp-line small{display:block;color:#7a8794;margin-top:3px}.bpp-line-total{text-align:left}
.bpp-summary{margin-top:18px;padding:18px;border-radius:12px;background:#f3f7fa;display:flex;justify-content:space-between;align-items:center;font-size:18px}.bpp-summary strong{font-size:23px}
.bpp-next{margin-top:24px;padding:20px;border:1px solid #e1e7ed;border-radius:13px}.bpp-next p{line-height:1.9}.bpp-btn{display:inline-block;padding:12px 18px;border-radius:9px;background:#1769aa;color:#fff!important;text-decoration:none;border:0;cursor:pointer;font-weight:700;margin:4px}.bpp-btn.secondary{background:#eef3f7;color:#20384d!important}
.bpp-account-links{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.bpp-create-account{margin-top:14px;padding:15px;background:#f8fafc;border-radius:12px}.bpp-form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:12px}
#bpp-result{margin-top:14px;padding:12px;border-radius:9px}.bpp-calculator #bpp-result.success{background:#eaf8ef;color:#176b35}.bpp-calculator #bpp-result.error{background:#fff0f0;color:#9b2020}
.bpp-head{display:flex;justify-content:space-between;align-items:center}.bpp-head a{color:#b42318}.bpp-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:18px 0}.bpp-cards>div{padding:18px;border:1px solid #e3e9ef;border-radius:12px}.bpp-cards small,.bpp-cards b{display:block}.bpp-box{background:#fff;border:1px solid #e3e9ef;border-radius:14px;padding:18px;margin:14px 0}.bpp-project{border:1px solid #e6ebef;border-radius:12px;padding:15px;margin:12px 0;display:grid;grid-template-columns:1fr auto;gap:12px}.bpp-file,.bpp-act{display:inline-block;margin:4px;padding:9px 11px;border:1px solid #dce4ea;border-radius:8px;background:#f7fafc;text-decoration:none;cursor:pointer;color:#20384d}.bpp-quote-lines{grid-column:1/-1;border-top:1px solid #eee;padding-top:10px}.bpp-quote-lines div{display:flex;justify-content:space-between;padding:4px 0}.bpp-box table{width:100%;border-collapse:collapse}.bpp-box th,.bpp-box td{padding:9px;border-bottom:1px solid #edf0f2;text-align:right}
@media(max-width:700px){.bpp-calc-dim,.bpp-form-grid,.bpp-cards{grid-template-columns:1fr}.bpp-line{grid-template-columns:1fr}.bpp-line-total{text-align:right}.bpp-project{grid-template-columns:1fr}.bpp-summary{display:block}.bpp-summary strong{display:block;margin-top:7px}}

/* 2.2.1 readability + permanent customer access */
.bpp,.bpp *{color:#20384d}
.bpp-cards>div{background:#fff!important;color:#20384d!important}
.bpp-cards>div small,.bpp-cards>div b{color:#20384d!important}
.bpp-project{background:#fff!important;color:#20384d!important}
.bpp-project h4,.bpp-project p,.bpp-project strong,.bpp-quote-lines,.bpp-quote-lines span{color:#20384d!important}
.bpp-box,.bpp-box table,.bpp-box th,.bpp-box td{color:#20384d!important}
.bpp-summary,.bpp-summary div,.bpp-summary strong{color:#20384d!important}
.bpp-line,.bpp-line strong,.bpp-line small,.bpp-line-total{color:#20384d!important}
.bpp-next,.bpp-next h3,.bpp-next p,.bpp-next strong{color:#20384d!important}
.bpp-file,.bpp-act{color:#20384d!important}
.bpp-floating-account{position:fixed;top:36px;left:232px;z-index:999999}
.bpp-floating-account a.bpp-customer-access{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:0 18px;border-radius:999px;background:#fff;color:#173a5c!important;text-decoration:none!important;font-weight:800;border:1px solid rgba(23,58,92,.14);box-shadow:0 6px 18px rgba(0,0,0,.16);white-space:nowrap;transition:transform .18s ease,box-shadow .18s ease}
.bpp-floating-account a.bpp-customer-access:hover{transform:translateY(-1px);box-shadow:0 9px 24px rgba(0,0,0,.2)}
.bpp-user-icon{width:22px;height:22px;display:block;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}
.bpp-login-modal{display:none;position:fixed;inset:0;z-index:1000000}
.bpp-login-modal.is-open{display:block}
.bpp-login-backdrop{position:absolute;inset:0;background:rgba(10,24,38,.62)}
.bpp-login-dialog{position:relative;width:min(430px,calc(100% - 32px));margin:8vh auto 0;background:#fff;border-radius:18px;padding:26px;box-shadow:0 20px 70px rgba(0,0,0,.3);color:#20384d}
.bpp-login-dialog h3,.bpp-login-dialog p,.bpp-login-dialog label{color:#20384d!important}
.bpp-login-close{position:absolute;top:10px;left:12px;border:0;background:transparent;font-size:30px;cursor:pointer;color:#20384d}
.bpp-login-dialog form p{margin:12px 0}
.bpp-login-dialog input[type=text],.bpp-login-dialog input[type=password]{width:100%;box-sizing:border-box;padding:12px;border:1px solid #ccd7e1;border-radius:9px;background:#fff;color:#20384d}
.bpp-login-dialog input[type=submit]{padding:12px 18px;border:0;border-radius:9px;background:#1769aa;color:#fff;cursor:pointer;font-weight:700}
.bpp-login-register{border-top:1px solid #e5eaf0;margin-top:16px;padding-top:14px;color:#20384d}
.bpp-login-register a{color:#1769aa;font-weight:700}
.bpp-head h2,.bpp-head small,.bpp-head a{color:#20384d!important}
.bpp-head a{font-weight:800!important}
@media(max-width:900px){.bpp-floating-account{top:88px;left:14px}.bpp-floating-account a.bpp-customer-access{min-height:44px;padding:0 15px}}
@media(max-width:700px){.bpp-login-dialog{margin-top:5vh}}

/* 2.2.5 customer-only front-end authentication */
.bpp-customer-login-box{width:min(460px,100%);margin:30px auto;background:#fff;border:1px solid #e1e8ee;border-radius:20px;padding:28px;box-sizing:border-box;box-shadow:0 14px 40px rgba(15,39,61,.12);color:#20384d;text-align:right}
.bpp-login-brand{width:58px;height:58px;margin:0 auto 10px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#173a5c;color:#fff;font-size:28px}
.bpp-customer-login-box h3{margin:0 0 8px;color:#173a5c!important;font-size:24px;text-align:center}.bpp-customer-login-box>p{color:#536575!important;line-height:1.9;text-align:center}
.bpp-customer-login-form label,.bpp-lost-password-form label{display:block;color:#20384d!important;font-weight:700;margin:12px 0}.bpp-customer-login-form input[type=text],.bpp-customer-login-form input[type=password],.bpp-lost-password-form input[type=text]{display:block;width:100%;box-sizing:border-box;margin-top:7px;padding:13px 14px;border:1px solid #cbd7e1;border-radius:10px;background:#fff;color:#20384d;font-size:16px;outline:none}.bpp-customer-login-form input:focus,.bpp-lost-password-form input:focus{border-color:#2d83b7;box-shadow:0 0 0 3px rgba(45,131,183,.12)}
.bpp-remember{font-weight:500!important;display:flex!important;align-items:center;gap:7px}.bpp-remember input{width:18px;height:18px}.bpp-auth-message{min-height:22px;margin-top:10px;font-size:14px;font-weight:700}.bpp-auth-message.success{color:#18733b!important}.bpp-auth-message.error{color:#b42318!important}.bpp-login-links{text-align:center;border-top:1px solid #e8edf1;margin-top:18px;padding-top:15px;color:#667684}.bpp-login-links a{color:#1769aa;font-weight:700;text-decoration:none}.bpp-lost-password-form h4{color:#173a5c!important;margin:0 0 8px}.bpp-lost-password-form p{color:#536575!important;line-height:1.8}
.bpp-login-dialog{width:min(460px,calc(100% - 28px));padding:0;background:transparent;box-shadow:none}.bpp-login-dialog .bpp-customer-login-box{margin:0}.bpp-login-close{z-index:3;top:14px;left:14px;background:#fff!important;width:38px;height:38px;border-radius:50%;box-shadow:0 4px 12px rgba(0,0,0,.12);line-height:1}
.bpp-head h2{color:#173a5c!important}.bpp-head a.bpp-customer-logout{color:#b42318!important;background:#fff;border:1px solid #efc9c4;border-radius:8px;padding:8px 12px;text-decoration:none}
@media(max-width:900px){.bpp-floating-account{top:36px;left:230px}.bpp-floating-account a.bpp-customer-access{min-height:44px;padding:0 14px}}
@media(max-width:620px){.bpp-floating-account{top:96px;left:14px}.bpp-login-dialog{margin-top:4vh}.bpp-customer-login-box{padding:22px}}

/* 2.4.0 customer portal / plan upload / tickets / header access */
.bpp-floating-account{position:absolute;top:72px;left:230px;z-index:99999}
.bpp-floating-account a.bpp-customer-access{min-height:42px;padding:0 16px;border-radius:10px;box-shadow:0 4px 14px rgba(0,0,0,.12)}
.bpp-floating-account a.bpp-customer-access span{max-width:170px;overflow:hidden;text-overflow:ellipsis}
.bpp-plan-upload{grid-column:1/-1;margin-top:14px;padding:16px;border:1px solid #dfe7ed;border-radius:12px;background:#f8fafc}
.bpp-plan-upload h4{margin:0 0 8px;color:#173a5c!important}
.bpp-plan-warning{margin:0 0 12px;padding:12px;border-radius:9px;background:#fff7e6;color:#7a4b00!important;line-height:1.9}
.bpp-plan-upload form{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:end}
.bpp-plan-upload input[type=file],.bpp-plan-upload textarea{width:100%;box-sizing:border-box;padding:10px;border:1px solid #ccd7e1;border-radius:8px;background:#fff;color:#20384d}
.bpp-plan-upload textarea{grid-column:1/-1;resize:vertical}
.bpp-plan-upload .bpp-btn{justify-self:start}
.bpp-ticket-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.bpp-ticket-grid label,.bpp-box>form>label{display:block;font-weight:700;margin:8px 0;color:#20384d!important}
.bpp-ticket-grid input,.bpp-ticket-grid select,.bpp-box>form>label textarea{display:block;width:100%;box-sizing:border-box;margin-top:7px;padding:12px;border:1px solid #ccd7e1;border-radius:9px;background:#fff;color:#20384d}
.bpp-notice{margin:0 0 14px;padding:12px 14px;border-radius:9px;font-weight:700}
.bpp-notice.success{background:#eaf8ef;color:#176b35!important}.bpp-notice.error{background:#fff0f0;color:#9b2020!important}
@media(max-width:900px){.bpp-floating-account{top:72px;left:220px}.bpp-plan-upload form{grid-template-columns:1fr}.bpp-plan-upload textarea{grid-column:auto}}
@media(max-width:620px){.bpp-floating-account{top:96px;left:14px}.bpp-floating-account a.bpp-customer-access{min-height:40px;padding:0 12px}.bpp-ticket-grid{grid-template-columns:1fr}.bpp-plan-upload form{grid-template-columns:1fr}}


/* 2.4.2 customer access placement + mobile bottom navigation */
@media(min-width:621px){
  .bpp-floating-account{position:absolute!important;top:34px!important;left:460px!important;z-index:99999!important}
}
@media(max-width:620px){
  .bpp-floating-account{display:none!important}
  /* The customer link is moved into the theme's fixed bottom navigation by portal.js. */
  .bpp-mobile-customer-nav{display:flex!important;align-items:center!important;justify-content:center!important;gap:5px!important}
  .bpp-mobile-customer-nav .bpp-mobile-customer-icon{width:21px!important;height:21px!important;display:block!important;fill:none!important;stroke:currentColor!important;stroke-width:1.9!important;stroke-linecap:round!important;stroke-linejoin:round!important}
  .bpp-mobile-customer-nav .bpp-mobile-customer-label{display:block!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;max-width:78px!important}
}
@media(min-width:621px){.bpp-mobile-customer-nav{display:none!important}}


/* 2.4.3: guaranteed mobile customer slot. The live theme's bottom bar is
   not reliably addressable from plugin JS, so this overlay occupies the
   second slot from the left (the Search position) only on phones. */
@media(max-width:620px){
  .bpp-mobile-customer-overlay{
    position:fixed!important;
    z-index:2147483000!important;
    left:23.2%!important;
    width:18%!important;
    bottom:20px!important;
    height:70px!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    gap:4px!important;
    box-sizing:border-box!important;
    padding:6px 2px!important;
    border:0!important;
    border-radius:18px!important;
    background:rgba(239,244,248,.98)!important;
    color:#20384d!important;
    text-decoration:none!important;
    box-shadow:none!important;
  }
  .bpp-mobile-customer-overlay .bpp-mobile-customer-icon,
  .bpp-mobile-customer-nav .bpp-mobile-customer-icon{
    width:23px!important;height:23px!important;display:block!important;
    fill:none!important;stroke:currentColor!important;stroke-width:1.9!important;
    stroke-linecap:round!important;stroke-linejoin:round!important;
  }
  .bpp-mobile-customer-overlay .bpp-mobile-customer-label,
  .bpp-mobile-customer-nav .bpp-mobile-customer-label{
    display:block!important;max-width:90px!important;overflow:hidden!important;
    text-overflow:ellipsis!important;white-space:nowrap!important;font-size:13px!important;
    line-height:1.3!important;font-weight:700!important;color:inherit!important;
  }
}
@media(min-width:621px){.bpp-mobile-customer-overlay{display:none!important}}
