/* Partner Portal components, copied from /partners/ and scoped under .pp so site styles cannot interfere.
   Source: the portal's own :root tokens, .main, .panel*, .identity-*, .field-group, .scenarios/.scenario-box, .actions, .btn*, .comp-table, .disclaimer. */
.pp{--navy:#0b1c2c;--navy-mid:#132a40;--navy-light:#1a3a55;--gold:#c9a227;--gold-dark:#a8841a;--gold-soft:#e8d48b;--white:#ffffff;--off-white:#f6f8fa;--gray:#5a6a7a;--border:#d8e0e8;--success:#1a7a4c;--shadow:0 4px 20px rgba(11,28,44,0.08);--radius:10px;font-family:'Inter',Arial,Helvetica,sans-serif;color:var(--navy);line-height:1.5}
.pp,.pp *,.pp *::before,.pp *::after{box-sizing:border-box}
.pp *{margin:0;padding:0}
.pp a{color:inherit;text-decoration:none}
.pp{max-width: 1100px; margin: 0 auto; padding: 1.75rem 1.25rem 3rem;}
.pp .panel{display: none; background: var(--white); border-radius: var(--radius); border: 1px solid var(--border); box-shadow: var(--shadow); overflow: hidden;}
.pp .panel.active{display: block;}
.pp .panel-header{background: var(--navy); color: var(--white); padding: 1rem 1.4rem; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 0.75rem;}
.pp .panel-header h2{font-family: 'Playfair Display', Georgia, serif; font-size: 1.25rem; font-weight: 600;}
.pp .panel-header .badge{font-size: 0.7rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--gold); font-weight: 600;}
.pp .panel-body{padding: 1.4rem;}
.pp .identity-section{display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; margin-bottom: 1.5rem;}
@media (max-width: 700px){.pp .identity-section{grid-template-columns: 1fr;}}
.pp .identity-card{border: 1px solid var(--border); border-radius: 8px; overflow: hidden; background: var(--off-white);}
.pp .identity-card .id-head{padding: 0.55rem 0.9rem; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--white);}
.pp .identity-card.partner .id-head{background: var(--navy);}
.pp .identity-card.client .id-head{background: #1a5c3a;}
.pp .identity-card .id-body{padding: 0.9rem; display: grid; grid-template-columns: 1fr 1fr; gap: 0.65rem;}
@media (max-width: 500px){.pp .identity-card .id-body{grid-template-columns: 1fr;}}
.pp .identity-card .id-body .field-group.full{grid-column: 1 / -1;}
.pp .field-group label{display: block; font-size: 0.68rem; font-weight: 600; letter-spacing: 0.05em; text-transform: uppercase; color: var(--gray); margin-bottom: 0.25rem;}
.pp .field-group input,.pp .field-group select{width: 100%; padding: 0.55rem 0.75rem; border: 1px solid var(--border); border-radius: 5px; font-size: 0.9rem; font-family: inherit; color: var(--navy); background: var(--white); transition: border-color 0.15s;}
.pp .field-group input:focus,.pp .field-group select:focus{outline: none; border-color: var(--gold); background: var(--white);}
.pp .field-group select{cursor: pointer; appearance: auto;}
.pp .scenarios{display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-bottom: 1.5rem;}
@media (max-width: 800px){.pp .scenarios{grid-template-columns: 1fr;}}
.pp .scenario-box{border: 1px solid var(--border); border-radius: 8px; overflow: hidden; background: var(--off-white);}
.pp .scenario-box .s-head{padding: 0.6rem 0.9rem; font-size: 0.78rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--white);}
.pp .scenario-box:nth-child(1) .s-head{background: var(--navy);}
.pp .scenario-box:nth-child(2) .s-head{background: #1a5c3a;}
.pp .scenario-box:nth-child(3) .s-head{background: #5c3a1a;}
.pp .scenario-box .s-body{padding: 0.9rem; display: flex; flex-direction: column; gap: 0.65rem;}
.pp .scenario-box .s-body label{font-size: 0.68rem; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; color: var(--gray); margin-bottom: 0.15rem; display: block;}
.pp .scenario-box .s-body input{width: 100%; padding: 0.5rem 0.65rem; border: 1px solid var(--border); border-radius: 5px; font-size: 0.9rem; font-family: inherit; background: var(--white);}
.pp .scenario-box .s-body input:focus{outline: none; border-color: var(--gold);}
.pp .actions{display: flex; flex-wrap: wrap; gap: 0.75rem; margin-bottom: 1.5rem; align-items: center;}
.pp .btn{display: inline-flex; align-items: center; justify-content: center; gap: 0.4rem; padding: 0.7rem 1.3rem; border: none; border-radius: 6px; font-family: inherit; font-size: 0.88rem; font-weight: 600; cursor: pointer; transition: all 0.15s;}
.pp .btn-primary{background: var(--gold); color: var(--navy);}
.pp .btn-primary:hover{background: var(--gold-soft);}
.pp .btn-secondary{background: var(--navy); color: var(--white);}
.pp .btn-secondary:hover{background: var(--navy-light);}
.pp .btn-outline{background: transparent; border: 1.5px solid var(--navy); color: var(--navy);}
.pp .btn-outline:hover{background: var(--navy); color: var(--white);}
.pp .comparison{margin-bottom: 1.25rem;}
.pp .comparison h3{font-size: 0.95rem; font-weight: 600; margin-bottom: 0.75rem; color: var(--navy);}
.pp .comp-table{width: 100%; border-collapse: collapse; font-size: 0.88rem;}
.pp .comp-table th,.pp .comp-table td{padding: 0.7rem 0.85rem; text-align: left; border-bottom: 1px solid var(--border);}
.pp .comp-table th{background: var(--navy); color: var(--white); font-weight: 600; font-size: 0.78rem; letter-spacing: 0.04em; text-transform: uppercase;}
.pp .comp-table th:nth-child(2){background: var(--navy);}
.pp .comp-table th:nth-child(3){background: #1a5c3a;}
.pp .comp-table th:nth-child(4){background: #5c3a1a;}
.pp .comp-table td:first-child{font-weight: 600; color: var(--gray); font-size: 0.8rem;}
.pp .comp-table tbody tr:hover{background: #f0f5fa;}
.pp .result-value{font-weight: 600; color: var(--navy); font-variant-numeric: tabular-nums;}
.pp .disclaimer{font-size: 0.75rem; color: var(--gray); line-height: 1.45; padding: 0.85rem 1rem; background: #f0f4f8; border-radius: 6px; border-left: 3px solid var(--gold);}
/* Minimal additions needed on public pages (not in the portal) */
.pp .btn{min-height:0;letter-spacing:normal;text-transform:none;line-height:1.5}
.pp .panel-header h2{color:var(--white);line-height:1.3}
.pp .scenario-box.wide{grid-column:1/-1}
.pp .scenario-box.wide .s-body{display:grid;grid-template-columns:repeat(4,1fr);gap:.65rem .9rem}
.pp .scenario-box .s-body input{color:var(--navy)}
.pp .id-note{grid-column:1/-1;font-size:.75rem;line-height:1.4;color:var(--gray)}
.pp .comparison{overflow-x:auto}
.pp .comp-table th:first-child{background:var(--navy)}
@media (max-width:800px){.pp .scenario-box.wide .s-body{grid-template-columns:1fr 1fr}}
@media (max-width:700px){.pp .identity-card.client{order:-1}.pp .identity-section{display:flex;flex-direction:column}}
@media (max-width:500px){.pp .scenario-box.wide .s-body{grid-template-columns:1fr}.pp .actions .btn{flex:1 1 100%}.pp .comp-table th,.pp .comp-table td{padding:.55rem .5rem;font-size:.78rem}.pp .field-group input,.pp .field-group select,.pp .scenario-box .s-body input{font-size:16px}.pp .main,.pp.main{padding-left:0;padding-right:0}}

/* Portal calculator selector (from /partners/), used by the directory */
.pp .calc-select{display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1rem; margin-bottom: 1.75rem;}
.pp .calc-card{background: var(--white); border: 1px solid var(--border); border-radius: var(--radius); padding: 1.25rem 1.1rem; cursor: pointer; transition: all 0.2s ease; text-align: left; box-shadow: var(--shadow);}
.pp .calc-card:hover{border-color: var(--gold); transform: translateY(-2px); box-shadow: 0 8px 24px rgba(11,28,44,0.12);}
.pp .calc-card.active{border-color: var(--gold); background: linear-gradient(180deg, #fffdf5 0%, var(--white) 100%); box-shadow: 0 0 0 2px var(--gold);}
.pp .calc-card h3{font-size: 1rem; font-weight: 600; margin-bottom: 0.35rem; color: var(--navy);}
.pp .calc-card p{font-size: 0.8rem; color: var(--gray); line-height: 1.4;}
.pp .calc-card .icon{width: 36px; height: 36px; border-radius: 8px; background: var(--navy); color: var(--gold); display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 0.85rem; margin-bottom: 0.75rem;}
.pp .calc-select{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));margin-bottom:0}
.pp .calc-card{display:block}
.pp .panel+.panel{margin-top:0}
.pp input,.pp select,.pp button{line-height:normal}
@media (min-width:901px){.pp .calc-select:has(> .calc-card:nth-child(5):last-child){grid-template-columns:repeat(5,1fr)}}
/* Direct-submission status and input alerts */
.pp .submit-note{font-size:.75rem;line-height:1.45;color:var(--gray);margin:-.75rem 0 1.25rem}
.pp .submit-status{font-size:.88rem;font-weight:600;line-height:1.45;padding:.75rem 1rem;border-radius:6px;border-left:3px solid var(--gray);background:#f0f4f8;color:var(--navy);margin:0 0 1.25rem}
.pp .submit-status[hidden]{display:none}
.pp .submit-status.ok{background:#eaf6ef;border-color:var(--success);color:#14603b}
.pp .submit-status.err{background:#fbeeee;border-color:#b33a3a;color:#8f2d2d}
.pp .calc-alert{font-size:.88rem;font-weight:600;line-height:1.45;padding:.85rem 1rem;border-radius:6px;background:#fff6e0;border-left:3px solid var(--gold-dark);color:var(--navy)}
.pp .btn:disabled{opacity:.6;cursor:wait}
