/* PAGELAB SERVICE SUITE — scoped theme */
.pls-modal, .pls-portal {font-family:Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;line-height:1.5;box-sizing:border-box}
.pls-modal *, .pls-portal *, .pls-modal *:before, .pls-portal *:before{box-sizing:border-box}
.pls-modal{position:fixed;inset:0;z-index:999999;display:none;color:#f5f7ff}
.pls-modal.pls-open{display:block}
body.pls-modal-lock{overflow:hidden!important}
.pls-modal-shade{position:absolute;inset:0;background:rgba(3,6,15,.83);backdrop-filter:blur(9px)}
.pls-modal-panel{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:min(760px,calc(100vw - 24px));max-height:min(92vh,920px);background:radial-gradient(circle at 90% 0%,rgba(86,73,228,.23),transparent 47%),#10131c;border:1px solid #343a52;border-radius:20px;box-shadow:0 35px 130px #000b;display:flex;flex-direction:column;overflow:hidden;outline:none}
.pls-modal-top{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;padding:26px 30px 12px}
.pls-modal-top small,.pls-kicker{color:#a7a1ff;font-size:11px;letter-spacing:2px;font-weight:750}
.pls-modal-top h2{color:#fff!important;font-size:27px!important;line-height:1.15!important;margin:8px 0 0!important;font-weight:760!important}
.pls-close{background:#1b2030!important;color:#e7eafd!important;border:1px solid #353b53!important;box-shadow:none!important;border-radius:50%!important;width:36px!important;height:36px!important;padding:0!important;min-height:0!important;font:24px/30px Arial!important;flex:none;cursor:pointer}
.pls-modal-desc{color:#a9b1c9!important;font-size:13px!important;margin:0!important;padding:0 30px 20px!important}
.pls-progress{height:3px;background:#272d41}.pls-progress span{display:block;height:3px;background:linear-gradient(90deg,#6d68ff,#52b8ff);transition:width .23s ease}
.pls-modal-body{overflow:auto;flex:1 1 auto;min-height:0;padding:25px 30px 30px}
.pls-modal-body h3{color:white;font-size:22px;margin:7px 0 22px;font-weight:720}
.pls-input-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.pls-input:has(textarea),.pls-input:has(.pls-choices),.pls-input:has(.pls-checkline){grid-column:1/-1}
.pls-input-label{display:block;color:#e8eafa;font-size:13px;font-weight:650;margin:0 0 8px}.pls-input-label em{font-style:normal;color:#a7a1ff}
.pls-modal input:not([type=checkbox]):not([type=radio]),.pls-modal select,.pls-modal textarea{width:100%;height:45px;background:#181e2b!important;border:1px solid #394057!important;color:#fff!important;border-radius:10px!important;padding:10px 13px!important;outline:none!important;box-shadow:none!important;font:14px/1.45 inherit!important}
.pls-modal textarea{height:auto;min-height:106px;resize:vertical}.pls-modal input:focus,.pls-modal select:focus,.pls-modal textarea:focus{border-color:#7c7aff!important;box-shadow:0 0 0 3px rgba(105,97,240,.12)!important}
.pls-modal input::placeholder,.pls-modal textarea::placeholder{color:#7f8ba2}
.pls-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.pls-option-choice{display:flex;align-items:center;gap:10px;background:#181e2a;border:1px solid #323950;padding:13px;border-radius:11px;color:#dfe4f4;cursor:pointer;font-size:13px;min-height:53px}
.pls-option-choice:has(input:checked){border-color:#696cf9;background:#212241}
.pls-option-choice strong{font-size:12px;margin-left:auto;color:#8ebeff;white-space:nowrap}
.pls-modal [type=checkbox],.pls-modal [type=radio]{accent-color:#7471ff;width:17px;height:17px;flex:none;cursor:pointer}
.pls-checkline{display:flex;gap:10px;align-items:center;color:#cdd4e7}.pls-modal-bottom{border-top:1px solid #2f3448;display:flex;justify-content:space-between;align-items:center;gap:25px;padding:18px 30px 22px;background:#131722}
.pls-price{display:flex;flex-direction:column;gap:3px;min-width:0}.pls-price small{color:#9ba6ba;font-size:10px}.pls-price strong{font-size:23px;color:#fff;white-space:nowrap}.pls-actions{display:flex;gap:9px;flex:none}
.pls-modal .pls-btn,.pls-portal .pls-btn,.pls-trigger{border:1px solid #3a4259!important;color:#e7eafa!important;border-radius:10px!important;background:#252a3a!important;padding:13px 18px!important;font-weight:700!important;font-size:13px!important;box-shadow:none!important;text-decoration:none!important;cursor:pointer;line-height:1.2!important;min-height:45px}
.pls-modal .pls-btn:hover,.pls-portal .pls-btn:hover{filter:brightness(1.12)}
.pls-modal .pls-primary,.pls-portal .pls-primary,.pls-trigger{background:linear-gradient(110deg,#6766fa,#55b6f7)!important;border:0!important;color:white!important}
.pls-modal .pls-btn[hidden]{display:none}.pls-modal .pls-btn:disabled{opacity:.6;cursor:wait}
.pls-feedback{color:#ffb5bb;font-size:13px;margin-top:12px;font-weight:650}.pls-feedback:empty{display:none}
.pls-summary{padding:16px;border:1px solid #3d435a;border-radius:12px;background:#161b29;margin:18px 0;display:grid;gap:10px;color:#d9dff0}
.pls-summary>div{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid #2d3346;padding-bottom:7px;font-size:12px}.pls-summary>div:last-child{border:0;padding:4px 0;font-size:16px;color:white}
.pls-agree{display:flex;align-items:flex-start;gap:11px;color:#b9c3d6;margin:13px 0;font-size:12px;cursor:pointer}
.pls-honeypot{position:absolute;left:-99999px;width:1px;height:1px;overflow:hidden}
.pls-success{text-align:center;padding:20px 10px 42px}.pls-success-icon{margin:0 auto 10px;width:60px;height:60px;border-radius:50%;display:grid;place-items:center;background:#1a5748;color:#9bffd4;font-size:29px}.pls-success p{color:#bac5d6;max-width:450px;margin:auto}
/* Portal: light by default / dark toggle, isolated from WP theme */
/* Full-bleed layout: break out of boxed WordPress / Elementor containers.
   The JS viewport-size variable excludes the browser scrollbar. */
.pls-portal{
 --pl-bg:#f3f5fb;--pl-card:#fff;--pl-txt:#101828;--pl-muted:#68738a;--pl-border:#dbe1ee;--pl-subtle:#f6f8fc;
 position:relative!important;
 left:50%!important;
 transform:translateX(-50%)!important;
 width:var(--pls-viewport-width,100vw)!important;
 max-width:none!important;
 min-width:0!important;
 min-height:100vh;
 min-height:100dvh;
 display:flex;
 flex-direction:column;
 margin:0!important;
 padding:clamp(20px,3vw,52px)!important;
 border:0!important;
 border-radius:0!important;
 box-shadow:none!important;
 background:var(--pl-bg);
 color:var(--pl-txt);
 overflow:visible;
}
/* Each portal view fills the available vertical working area, even with no data yet. */
.pls-portal>.pls-portal-panel{flex:1 0 auto;min-width:0;width:100%;}
.pls-portal>.pls-login{flex:1 0 auto;width:100%;}
.pls-portal>.pls-portal-message,.pls-portal>.pls-portal-nav,.pls-portal>.pls-portal-header{width:100%;}
/* Limit only individual text measures; never constrain portal or card widths. */
.pls-portal-panel>p{max-width:84ch;}
.pls-portal[data-theme=dark]{--pl-bg:#0d111c;--pl-card:#181d2c;--pl-txt:#f6f7fc;--pl-muted:#a1acc0;--pl-border:#343b51;--pl-subtle:#202638}
.pls-portal h2,.pls-portal h3,.pls-portal h4{color:var(--pl-txt)!important;line-height:1.3!important}.pls-portal p{color:var(--pl-muted)}
.pls-portal-header{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:25px}.pls-portal-header small{color:#6374fa;letter-spacing:2px;font-size:11px;font-weight:800}
.pls-portal-header h2{font-size:32px;margin:8px 0}.pls-portal-header p{margin:0}.pls-portal-tools{display:flex;gap:8px;align-items:center}
.pls-portal-logout,.pls-theme-toggle{border:1px solid var(--pl-border)!important;border-radius:10px!important;padding:11px 14px!important;color:var(--pl-txt)!important;background:var(--pl-card)!important;text-decoration:none!important;font-size:13px!important;cursor:pointer}
.pls-portal-nav{display:flex;gap:6px;flex-wrap:wrap;padding-bottom:19px;margin-bottom:22px;border-bottom:1px solid var(--pl-border)}.pls-portal-nav a{padding:10px 14px;text-decoration:none!important;border-radius:9px;color:var(--pl-muted);font-weight:650;font-size:13px}.pls-portal-nav a.active,.pls-portal-nav a:hover{background:linear-gradient(120deg,#6064f6,#52b4fc);color:white}
.pls-portal-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:20px}
.pls-portal-stats a{display:flex;flex-direction:column;gap:12px;text-decoration:none!important;color:var(--pl-txt);background:var(--pl-card);border:1px solid var(--pl-border);border-radius:15px;padding:21px}.pls-portal-stats a strong{font-size:30px}.pls-portal-stats a small,.pls-portal-stats a span{color:var(--pl-muted);font-size:12px}
.pls-portal-panel{background:var(--pl-card);border:1px solid var(--pl-border);border-radius:16px;padding:25px;margin:12px 0}
.pls-portal-panel h3{margin:0 0 16px;font-size:21px}.pls-portal-item{display:flex;justify-content:space-between;gap:20px;align-items:center;border-top:1px solid var(--pl-border);padding:17px 0}
.pls-portal-item:first-child{border:0}.pls-portal-item small{font-size:11px;color:#7885a7}.pls-portal-item h4{font-size:16px;margin:4px 0 3px}.pls-portal-item p{font-size:13px;margin:0}.pls-portal-item strong{white-space:nowrap;font-size:16px}
.pls-portal-item-right{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.pls-portal-item-right a{font-size:12px;color:#6276e9}.pls-portal-activity{border-top:1px solid var(--pl-border);padding:12px 0;display:flex;gap:22px;align-items:center}.pls-portal-activity span{font-size:12px;color:var(--pl-muted);min-width:95px}.pls-portal-activity p{margin:0}
.pls-portal .pls-meter{background:var(--pl-subtle);width:min(370px,100%);height:8px;border-radius:12px;overflow:hidden;margin:12px 0 4px}.pls-portal .pls-meter span{display:block;background:linear-gradient(90deg,#6e66ff,#4db8ff);height:100%;border-radius:12px}
.pls-portal-panel label{display:block;margin-bottom:18px;font-size:13px;font-weight:700}.pls-portal-panel input{width:100%;border:1px solid var(--pl-border);background:var(--pl-subtle);border-radius:10px;padding:12px;margin-top:5px;color:var(--pl-txt)}
.pls-portal-message{border:1px solid #6bb19b;background:#d1fae5;color:#164d3c;padding:12px 16px;border-radius:9px;margin:16px 0}
.pls-login{display:grid;grid-template-columns:1fr 1fr;gap:35px;align-items:center;min-height:360px}.pls-login-art{padding:30px;background:radial-gradient(at top right,#5a48bc,#111b2e 70%);border-radius:17px;color:#fff;height:100%;display:flex;flex-direction:column;justify-content:center}.pls-login-art h2{color:#fff!important;font-size:32px}.pls-login-art span{color:#aaa4ff;letter-spacing:2px;font-size:11px}.pls-login-art p{color:#c5cbe5}.pls-login-form{padding:20px}.pls-login-form h3{font-size:22px}.pls-login-form label{display:block;margin:13px 0 5px}.pls-login-form input:not([type=checkbox]){width:100%;border:1px solid #cdd3e5;border-radius:9px;padding:12px}.pls-login-form #wp-submit{background:linear-gradient(100deg,#6764fd,#53b4f8);color:white;border:0;margin:12px 0;cursor:pointer}
@media(max-width:800px){.pls-portal-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.pls-login{grid-template-columns:1fr}.pls-modal-panel{max-height:95dvh}}
@media(max-width:600px){.pls-modal-top{padding:22px 18px 8px}.pls-modal-desc{padding:0 18px 16px!important}.pls-modal-body{padding:18px}.pls-modal-bottom{padding:14px 18px;flex-wrap:wrap;gap:15px}.pls-modal-top h2{font-size:22px!important}.pls-input-grid,.pls-choices{grid-template-columns:1fr}.pls-price{flex:1}.pls-price strong{font-size:19px}.pls-portal{padding:16px!important;border-radius:0!important}.pls-portal-header{align-items:flex-start;flex-direction:column}.pls-portal-nav a{font-size:12px;padding:9px}.pls-portal-item{align-items:flex-start;flex-direction:column}.pls-portal-stats{gap:9px}.pls-portal-stats a{padding:14px}.pls-portal-tools{width:100%;justify-content:space-between}}

/* v0.1.3 — account popup and integrated customer signup */
.pls-account-modal .pls-modal-panel{width:min(510px,calc(100vw - 24px));max-height:92dvh}
.pls-account-modal .pls-modal-body{padding:15px 30px 30px}
.pls-account-modal .pls-input{margin-bottom:16px}
.pls-account-modal .pls-modal-desc{padding-bottom:14px!important}
.pls-account-modal .pls-input-label{font-size:13px}
.pls-account-modal .pls-auth-form>.pls-btn{width:100%;margin-top:10px}
.pls-account-modal .pls-auth-foot{text-align:center;color:#b5bfd3;font-size:13px;margin:18px 0 0}
.pls-account-modal .pls-auth-forgot{display:block;text-align:center;margin-top:13px;font-size:12px;color:#9cb9ff;text-decoration:none}
.pls-account-modal .pls-auth-forgot:hover{text-decoration:underline}
.pls-modal .pls-text-button{all:unset;display:inline;cursor:pointer;color:#94baff!important;text-decoration:underline;text-underline-offset:3px;font-size:inherit}
.pls-modal .pls-text-button:hover{color:#c5d7ff!important}
.pls-account-intro{color:#b7c2d9!important;font-size:13px;margin-top:-12px;margin-bottom:19px}
.pls-inline-signin{font-size:13px;margin:18px 0;color:#c5cee1!important}
.pls-auth-complete{display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px;padding:25px 5px}
.pls-auth-complete h3{margin:0!important}.pls-auth-complete p{margin:0;color:#b5c3d8!important}
.pls-auth-complete .pls-btn,.pls-success .pls-go-portal{display:inline-flex;align-items:center;justify-content:center;max-width:fit-content;margin-top:13px}
.pls-portal .pls-verification-warning{background:var(--pl-card);color:var(--pl-txt);border:1px solid var(--pl-border);display:flex;align-items:center;gap:15px;flex-wrap:wrap}
.pls-portal .pls-verify-resend{margin-left:auto}.pls-portal .pls-verify-resend button{font-size:12px!important;padding:9px 13px!important;min-height:36px}
@media(max-width:600px){.pls-account-modal .pls-modal-body{padding:16px 18px 22px}}


/* v0.1.4 — one login/register modal with accessible, always-visible tabs */
.pls-account-modal .pls-auth-tabs{
    display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
    align-items:stretch;gap:5px;margin:0 30px 10px;padding:5px;
    background:#191e2c;border:1px solid #32384d;border-radius:12px;
}
.pls-account-modal .pls-auth-tab{
    appearance:none!important;display:block!important;width:100%!important;
    background:transparent!important;border:1px solid transparent!important;
    border-radius:9px!important;color:#adb8d3!important;padding:11px 12px!important;
    min-height:44px!important;cursor:pointer!important;box-shadow:none!important;
    font:700 13px/1.3 Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif!important;
    transition:background .15s ease,color .15s ease,border-color .15s ease;
}
.pls-account-modal .pls-auth-tab.is-active{
    color:#fff!important;background:#343859!important;border-color:#535c87!important;
    box-shadow:0 4px 14px rgba(8,10,22,.3)!important;
}
.pls-account-modal .pls-auth-tab:not(.is-active):hover{
    background:rgba(120,119,255,.12)!important;color:#f4f5ff!important;
}
.pls-account-modal .pls-auth-tab:focus-visible{
    outline:2px solid #aab3ff!important;outline-offset:2px!important;
}
.pls-account-modal.pls-authenticated .pls-auth-tabs{display:none}
@media(max-width:600px){
    .pls-account-modal .pls-auth-tabs{margin:0 18px 8px}
    .pls-account-modal .pls-auth-tab{font-size:12px!important;padding:10px 7px!important}
}

/* v0.1.5 — included items have no additional price and are always on */
.pls-modal .pls-included{margin:2px 0 23px;padding:18px 19px;border:1px solid #373e58;border-radius:14px;background:linear-gradient(135deg,rgba(96,92,230,.12),rgba(28,34,52,.72));color:#eff2ff}
.pls-modal .pls-included-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:13px}
.pls-modal .pls-included-eyebrow{font-size:9px;letter-spacing:1.5px;color:#a19bff;font-weight:800}
.pls-modal .pls-included h4{font-size:17px!important;line-height:1.3!important;margin:4px 0 0!important;color:#fff!important}
.pls-modal .pls-included-badge{border-radius:20px;color:#a6f2da;border:1px solid #376a63;background:#153a39;padding:5px 10px;font-size:10px;font-weight:750;white-space:nowrap}
.pls-modal .pls-included-items{margin:0;padding:0!important;list-style:none!important;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 14px}
.pls-modal .pls-included-items li{margin:0!important;display:flex;gap:10px;align-items:flex-start;font-size:12px;line-height:1.5;color:#e0e5fa}
.pls-modal .pls-included-check{display:grid;place-items:center;flex:0 0 20px;height:20px;border-radius:50%;color:#85f4d2;background:rgba(49,138,113,.25);font-size:12px;font-weight:850}
.pls-modal .pls-included-items strong{display:block;color:#eef0ff;font-size:12px;line-height:1.45}
.pls-modal .pls-included-items small{display:block;color:#aeb9d5;font-size:11px;margin-top:2px}
.pls-modal .pls-included-compact{margin:12px 0 16px;padding:14px 16px}
.pls-modal .pls-included-compact .pls-included-items{gap:8px 12px}
@media(max-width:620px){.pls-modal .pls-included-items{grid-template-columns:1fr}.pls-modal .pls-included-badge{white-space:normal;text-align:center}.pls-modal .pls-included-title{align-items:flex-start}}

/* Saved base-package contents in customer request history */
.pls-portal-included-details{border:1px solid var(--pl-border);border-radius:10px;background:var(--pl-subtle);padding:13px 17px;margin:0 0 18px}
.pls-portal-included-details summary{cursor:pointer;color:var(--pl-txt);font-size:13px;font-weight:700;list-style-position:inside}
.pls-portal-included-details ul{padding:10px 0 0!important;margin:0!important;list-style:none!important;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 14px}
.pls-portal-included-details li{display:flex;gap:9px;font-size:12px;color:var(--pl-txt);margin:0}
.pls-portal-included-details li>span{color:#3eab91;font-size:14px;font-weight:800}
.pls-portal-included-details li strong{display:block}.pls-portal-included-details li small{display:block;color:var(--pl-muted)}
@media(max-width:620px){.pls-portal-included-details ul{grid-template-columns:1fr}}

/* Client-side offers · v0.1.6 */
.pls-portal .pls-offer-box{padding:22px;margin:12px 0 26px;border:1px solid rgba(118,100,243,.3);border-radius:16px;background:color-mix(in srgb,#7560ef 7%,var(--pl-card));color:inherit}
.pls-portal .pls-offer-head{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:center;margin-bottom:8px}
.pls-portal .pls-offer-head strong{font-size:17px}.pls-portal .pls-offer-head span{font-size:19px;font-weight:850;color:#8b74f8}
.pls-portal .pls-offer-terms{font-size:14px;line-height:1.8;white-space:normal}
.pls-portal .pls-offer-action label{display:flex;align-items:flex-start;gap:9px;margin:15px 0}
.pls-portal .pls-offer-action input[type=checkbox]{flex-shrink:0;width:18px!important;height:18px!important;padding:0!important;margin:2px 0 0!important;accent-color:#7064f2}
.pls-portal .pls-offer-buttons{display:flex;flex-wrap:wrap;gap:10px}
