/* Espace privé — editorial Swiss grid, same visual identity as main site. */
.portal-body{background:#f7f6ef;color:#1c3831}.portal-header{background:#f7f6ef;border-bottom:1px solid #d6dcd2}.portal-header-inner{min-height:80px;display:flex;align-items:center;justify-content:space-between;gap:30px}.portal-header nav{display:flex;flex-wrap:wrap;align-items:center;gap:22px}.portal-header nav a,.portal-header nav button{font-size:.86rem;color:#1c3831;text-decoration:none;font-weight:600}.portal-header nav a:hover,.portal-header nav button:hover{color:#b65d42}.portal-logout{margin:0}.portal-logout button{border:0;background:none;cursor:pointer;padding:8px 0}.portal-main{padding-top:36px;padding-bottom:95px;min-height:75vh}.portal-pretitle{font-size:.74rem;color:#6b7c6e;text-transform:uppercase;letter-spacing:.13em;font-weight:700;margin-bottom:25px}.portal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:28px;margin:0 0 32px}.portal-head h1,.auth-copy h1{font-size:clamp(2.7rem,5.3vw,5rem);letter-spacing:-.046em;line-height:1.02;max-width:750px;margin:14px 0 18px}.portal-head h1 em,.auth-copy h1 em{font-family:Georgia,serif;font-weight:400;color:#b9634c}.portal-head .intro,.auth-copy .intro{max-width:650px;font-size:1.04rem;color:#67786d}.portal-account{font-size:.79rem;border:1px solid #c9d4c8;padding:9px 13px;color:#4d6253;border-radius:3px;overflow-wrap:anywhere;max-width:230px}.portal-card{border:1px solid #d8ded5;padding:28px 29px;background:#fffefa}.portal-card h2{font-size:1.72rem;margin:7px 0 13px;letter-spacing:-.027em}.portal-card>p{margin:0 0 21px}.portal-card .btn{max-width:100%}.portal-card .field input,.portal-card .field select{min-width:0}.portal-card .field input[type=file]{padding:12px;background:#f7f8f3}.portal-card .field-grid{gap:10px}.portal-card .field{margin-bottom:13px}.portal-card .field .label{font-weight:650}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:15px}.stat-box{min-height:152px;padding:24px;background:#fffefa;border:1px solid #d8ded5;display:flex;flex-direction:column;gap:12px}.stat-caption{font-size:.8rem;font-weight:650;color:#607367}.stat-box strong{font-size:clamp(1.4rem,2.3vw,2.3rem);font-family:Georgia,serif;font-weight:400;letter-spacing:-.035em;line-height:1;overflow-wrap:anywhere}.stat-box small{font-size:.74rem;color:#7b867c}.portal-note{padding:18px 22px;background:#e9eee6;color:#44594b;font-size:.86rem;line-height:1.6;margin:23px 0 28px}.portal-note.subtle{margin:23px 0 0;background:#f5f7f2;font-size:.79rem}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:17px;align-items:start}.dashboard-grid.lower{grid-template-columns:minmax(0,.92fr) minmax(0,1.28fr)}.portal-section{margin:18px 0}.section-title{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:15px}.section-title h2{margin-bottom:0}.empty-state{background:#f7f8f4;padding:34px 26px;margin-top:18px;color:#6c786c}.empty-state p{margin:10px 0 0}.chart-legend{display:flex;gap:25px;font-size:.79rem;color:#63766b;margin:22px 0 24px}.chart-legend>span{display:flex;align-items:center;gap:8px}.swatch{width:11px;height:11px;display:inline-block}.swatch-green{background:#274a3c}.swatch-rust{background:#cd866c}.bars-chart{display:grid;gap:14px;margin:10px 0}.bar-row{display:grid;grid-template-columns:65px 1fr;gap:16px;align-items:center;font-size:.8rem;color:#53675a}.bar-pair{display:flex;flex-direction:column;gap:4px;min-height:21px}.bar-pair>div{height:8px;min-width:0;border-radius:1px}.bar-green{background:#2e5b49}.bar-rust{background:#d78c73}.table-scroll{width:100%;overflow-x:auto}.portal-table{border-collapse:collapse;width:100%;font-size:.84rem;white-space:nowrap}.portal-table th{font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;text-align:left;color:#6b796c;background:#f4f6f1}.portal-table th,.portal-table td{padding:15px 13px;border-bottom:1px solid #e3e6df;vertical-align:top}.portal-table td:first-child,.portal-table th:first-child{padding-left:0}.portal-table td:last-child,.portal-table th:last-child{padding-right:0}.portal-table td{color:#2d4338}.portal-table tbody tr:hover{background:#fcfcf8}.portal-table .note-cell{min-width:120px;max-width:220px;overflow-wrap:anywhere;white-space:normal}.portal-table td form{margin:0}.type-chip{font-size:.74rem;font-weight:700;color:#3b564a;background:#e9eee7;padding:5px 8px}.delta-positive{color:#ad5035;font-weight:700}.quiet-button,.file-actions button{border:0;background:none;padding:0;color:#a4513b;text-decoration:underline;text-underline-offset:3px;font-size:.79rem;cursor:pointer}.breakdown{border-top:1px solid #e3e6df;margin-top:27px;padding-top:23px}.breakdown-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;margin-top:16px}.breakdown-grid>div{padding:15px;background:#f6f7f3;display:flex;flex-direction:column;gap:7px}.breakdown-grid strong{font-size:.84rem;overflow-wrap:anywhere}.breakdown-grid span{font-size:.75rem;color:#637367}.upload-list{margin-top:5px}.upload-item{display:flex;gap:13px;border-bottom:1px solid #e5e7e0;padding:17px 0}.file-icon{display:flex;align-items:center;justify-content:center;min-width:44px;height:48px;border:1px solid #d6dfd2;background:#f0f3ec;color:#54715e;font-size:.7rem;font-weight:800}.file-details{min-width:0;flex:1}.file-details strong{display:block;font-size:.85rem;overflow-wrap:anywhere}.file-details small{display:block;color:#768378;font-size:.72rem;margin:5px 0}.file-actions{display:flex;align-items:center;gap:18px}.file-actions a{font-size:.8rem;text-decoration:underline;color:#3d634e}.file-actions form{margin:0}.portal-message{margin:0 0 25px;padding:15px 20px;font-size:.9rem}.portal-error{border-left:3px solid #b95640;background:#fae9e3}.portal-good{border-left:3px solid #427259;background:#e5efe4}.portal-footer{background:#e8ede5;border-top:1px solid #d4dfd3;padding:28px 0;font-size:.81rem;color:#68786c}.portal-footer>.container{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}.portal-footer a{color:#566d5b}.auth-layout{display:grid;grid-template-columns:minmax(0,1.14fr) minmax(0,.86fr);gap:65px;align-items:start;padding-top:23px}.auth-copy{padding-top:40px}.auth-copy h1{font-size:clamp(3.1rem,5vw,5.3rem)}.auth-perks{margin:65px 0 31px;border-top:1px solid #b5c3b5;max-width:560px}.auth-perks p{border-bottom:1px solid #c7d2c6;padding:18px 0;margin:0;font-size:.96rem;font-weight:600}.auth-card{padding:42px}.auth-card .btn{width:100%}.auth-card h2{font-size:2rem}.auth-card .checkbox-line{margin:18px 0 24px}.auth-card .checkbox-line input{margin-top:3px}.portal-swap{margin-top:22px!important;border-top:1px solid #e2e7df;padding-top:22px;font-size:.9rem}.portal-swap a,.auth-card a{color:#a4553e}.source-list{display:grid;gap:17px;margin:25px 0}.source-item{display:grid;grid-template-columns:minmax(0,150px) 1fr 32px;gap:16px;align-items:center;font-size:.84rem}.source-item>span:first-child{overflow-wrap:anywhere}.source-track{height:9px;background:#ebede7;overflow:hidden}.source-track i{display:block;height:100%;background:#b96e55}.source-item strong{text-align:right}.admin-amounts{grid-template-columns:repeat(3,1fr)}.subcell{display:block;margin-top:5px;font-size:.72rem;color:#879588;white-space:normal}.admin-table td strong{font-size:.8rem}.account-details{margin:25px 0}.account-details>summary{cursor:pointer;font-size:.88rem;color:#667969;text-decoration:underline}.account-details .portal-card{margin-top:16px}.btn-danger{background:#994c3a!important;border-color:#994c3a!important;color:#fff!important}
@media(max-width:1050px){.stats-grid{grid-template-columns:repeat(2,1fr)}.auth-layout{gap:30px}.dashboard-grid,.dashboard-grid.lower{grid-template-columns:1fr}.breakdown-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:720px){.portal-header-inner{align-items:flex-start;flex-direction:column;padding-top:16px;padding-bottom:16px}.portal-header nav{gap:14px}.portal-main{padding-top:25px}.portal-head{flex-direction:column;gap:6px}.portal-head h1{font-size:3.1rem}.stats-grid{gap:10px}.stat-box{padding:18px;min-height:130px}.stat-box strong{font-size:1.7rem}.auth-layout{grid-template-columns:1fr;gap:32px}.auth-copy{padding:0}.auth-copy h1{font-size:3.2rem}.auth-perks{margin:25px 0}.auth-card{padding:25px}.portal-card{padding:20px}.section-title{align-items:start;flex-direction:column;gap:5px}.admin-amounts{grid-template-columns:1fr}.portal-header nav a,.portal-header nav button{font-size:.8rem}}
@media(max-width:420px){.stats-grid{grid-template-columns:1fr 1fr}.stat-box strong{font-size:1.47rem}.breakdown-grid{grid-template-columns:1fr}.source-item{grid-template-columns:94px 1fr 20px;gap:9px}.portal-account{max-width:100%}}

.quiet-link{font-size:.8rem;text-decoration:underline;text-underline-offset:3px;color:#a4513b}.account-separator{border:0;border-top:1px solid #d9e0d7;margin:28px 0}
