:root{--bh-navy:#0d2a3f;--bh-navy-2:#143c58;--bh-blue:#2196df;--bh-blue-dark:#137fc2;--bh-bg:#f5f7fa;--bh-text:#142236;--bh-muted:#728092;--bh-border:#e3e9ef;--bh-success:#1f9d72;--sidebar-width:268px}
*{box-sizing:border-box}html,body{min-height:100%}body{margin:0;color:var(--bh-text);font-family:Inter,"Segoe UI",Arial,sans-serif;background:var(--bh-bg)}a{text-decoration:none}.portal-body{overflow-x:hidden}.app-shell{min-height:100vh;display:flex}.sidebar{position:fixed;z-index:1030;inset:0 auto 0 0;width:var(--sidebar-width);display:flex;flex-direction:column;padding:20px 14px;color:#dce8f2;background:var(--bh-navy);transition:transform .22s ease}.brand{display:flex;align-items:center;gap:11px;color:#fff}.brand:hover{color:#fff}.brand-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;font-weight:800;color:#fff;background:var(--bh-blue);box-shadow:0 8px 22px rgba(33,150,223,.25)}.brand strong,.brand small{display:block;line-height:1.05}.brand strong{font-size:1.12rem}.brand small{margin-top:5px;font-size:.58rem;letter-spacing:.16em;color:#93aabd}.account-chip{display:flex;align-items:center;gap:12px;margin:38px 0 24px;padding:12px;border:1px solid rgba(255,255,255,.09);border-radius:13px;background:rgba(255,255,255,.045)}.account-chip span:last-child{min-width:0}.account-chip small,.account-chip strong{display:block}.account-chip small{font-size:.57rem;letter-spacing:.14em;color:#8ea7ba}.account-chip strong{max-width:155px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;color:#fff}.avatar{display:grid;flex:0 0 auto;place-items:center;width:36px;height:36px;border-radius:10px;font-size:.68rem;font-weight:800;color:#176e9f;background:#f2f8fc}.avatar.small{width:35px;height:35px}.side-nav{display:flex;flex-direction:column;gap:4px}.nav-section{margin:16px 8px 5px;font-size:.59rem;font-weight:800;letter-spacing:.16em;color:#7892a6}.side-nav a{display:flex;align-items:center;gap:13px;padding:11px 12px;border-radius:10px;color:#c1d1de;font-size:.92rem}.side-nav a span{width:21px;font-size:1.05rem;color:#9cc1d8}.side-nav a:hover,.side-nav a:focus{color:#fff;background:rgba(33,150,223,.16)}.sidebar-footer{margin-top:auto;display:flex;flex-direction:column;gap:9px;padding:18px 8px 2px;border-top:1px solid rgba(255,255,255,.08)}.sidebar-footer small{color:#7f99ac}.sidebar-footer a{color:#dce8f2}.app-main{min-width:0;min-height:100vh;margin-left:var(--sidebar-width);width:calc(100% - var(--sidebar-width))}.topbar{height:72px;display:flex;align-items:center;gap:12px;padding:0 32px;border-bottom:1px solid var(--bh-border);background:#fff}.topbar>span{font-size:.88rem;color:#405164}.top-account{display:flex;align-items:center;gap:10px;margin-left:auto;color:var(--bh-text);font-size:.8rem}.sidebar-toggle{display:none;border:0;background:transparent;font-size:1.3rem}.content-area{padding:34px 32px 54px;max-width:1500px}.page-kicker,.eyebrow{display:block;margin-bottom:5px;font-size:.68rem;font-weight:800;letter-spacing:.16em;color:var(--bh-blue)}.page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:26px}.page-heading h1{margin:0;font-size:2rem;letter-spacing:-.035em}.page-heading p{margin:.35rem 0 0;color:var(--bh-muted)}.btn-primary{--bs-btn-bg:var(--bh-blue);--bs-btn-border-color:var(--bh-blue);--bs-btn-hover-bg:var(--bh-blue-dark);--bs-btn-hover-border-color:var(--bh-blue-dark);font-weight:700}.btn-outline-primary{--bs-btn-color:var(--bh-blue-dark);--bs-btn-border-color:var(--bh-blue);--bs-btn-hover-bg:var(--bh-blue);--bs-btn-hover-border-color:var(--bh-blue)}.surface-card,.stat-card{border:1px solid rgba(225,231,238,.95);border-radius:15px;background:#fff;box-shadow:0 12px 28px rgba(29,52,73,.06)}.stat-card{height:100%;padding:20px}.stat-icon{display:grid;place-items:center;width:38px;height:38px;margin-bottom:14px;border-radius:10px;color:var(--bh-blue-dark);background:#eaf6fd}.stat-label{font-size:.66rem;font-weight:800;letter-spacing:.11em;color:var(--bh-muted)}.stat-value{margin-top:5px;font-size:1.7rem;font-weight:800;letter-spacing:-.04em}.surface-card{padding:22px}.section-title{margin:0;font-size:1.08rem}.section-subtitle{margin:3px 0 0;color:var(--bh-muted);font-size:.86rem}.table{--bs-table-bg:transparent;margin-bottom:0}.table thead th{padding:.75rem;border-bottom-color:var(--bh-border);font-size:.65rem;letter-spacing:.09em;color:#7b8797}.table tbody td{padding:.9rem .75rem;border-bottom-color:#edf1f4;vertical-align:middle}.badge-soft-success{color:#177957;background:#e7f7f1}.badge-soft-muted{color:#647383;background:#eef2f5}.badge-soft-warning{color:#8b6400;background:#fff4cf}.badge-soft-danger{color:#a43f3f;background:#fdeaea}.badge{padding:.48em .7em}.license-key,code,pre{font-family:"Cascadia Code",Consolas,monospace}.license-key{font-size:.8rem;word-break:break-all}.code-panel{position:relative;padding:20px;border-radius:13px;color:#e8f2f8;background:#102335;overflow:auto}.code-panel pre{margin:0;color:inherit;white-space:pre-wrap;word-break:break-word;font-size:.79rem}.copy-button{position:absolute;top:12px;right:12px}.form-label{font-weight:700;font-size:.83rem}.form-control,.form-select{border-color:#dbe3ea;border-radius:9px;padding:.65rem .75rem}.form-control:focus,.form-select:focus{border-color:#7fc5ef;box-shadow:0 0 0 .22rem rgba(33,150,223,.13)}.field-error{display:block;margin-top:.3rem;color:#b33a3a;font-size:.78rem}.validation-summary-errors{padding:12px 14px;margin-bottom:18px;border-radius:10px;color:#8b2f2f;background:#fdecec}.validation-summary-errors ul{margin:0;padding-left:1.2rem}.empty-state{padding:52px 20px;text-align:center;color:var(--bh-muted)}.empty-icon{display:grid;place-items:center;width:56px;height:56px;margin:0 auto 13px;border-radius:50%;color:var(--bh-blue);background:#eef8fe;font-size:1.5rem}.color-dot{display:inline-block;width:16px;height:16px;margin-right:6px;border:1px solid rgba(0,0,0,.15);border-radius:50%;vertical-align:-3px}.auth-body{background:#fff}.auth-shell{display:grid;grid-template-columns:minmax(420px,47%) 1fr;min-height:100vh}.auth-brand-panel{position:relative;display:flex;flex-direction:column;padding:44px 54px;color:#fff;background:radial-gradient(circle at 22% 14%,rgba(33,150,223,.34),transparent 30%),linear-gradient(145deg,#0c2b42,#071d2d)}.auth-pitch{max-width:580px;margin:auto 0}.auth-pitch h1{max-width:640px;margin:16px 0 18px;font-size:clamp(2.15rem,4vw,4.4rem);font-weight:800;line-height:1.02;letter-spacing:-.05em}.auth-pitch p{max-width:550px;color:#b8cddd;font-size:1.08rem}.eyebrow.light{color:#5bc0fa}.auth-security{color:#8fa9bc}.auth-content{display:grid;place-items:center;padding:38px}.auth-card{width:100%;max-width:470px}.auth-card h1{margin-bottom:7px;font-size:2rem;font-weight:800;letter-spacing:-.04em}.auth-card .intro{margin-bottom:26px;color:var(--bh-muted)}.auth-links{display:flex;justify-content:space-between;gap:12px;margin-top:18px;font-size:.87rem}.config-preview{width:46px;height:46px;border-radius:50%;box-shadow:0 0 0 5px #f2f5f7}.payment-choice{display:block;height:100%;padding:18px;border:1px solid var(--bh-border);border-radius:12px;cursor:pointer}.payment-choice:has(input:checked){border-color:var(--bh-blue);box-shadow:0 0 0 3px rgba(33,150,223,.1)}
@media(max-width:991.98px){.sidebar{transform:translateX(-100%)}body.sidebar-open .sidebar{transform:translateX(0)}body.sidebar-open:after{content:"";position:fixed;z-index:1020;inset:0;background:rgba(5,20,31,.45)}.app-main{width:100%;margin-left:0}.sidebar-toggle{display:block}.content-area{padding:28px 20px}.topbar{padding:0 20px}.auth-shell{grid-template-columns:1fr}.auth-brand-panel{min-height:300px;padding:30px}.auth-pitch{margin:55px 0 38px}.auth-pitch h1{font-size:2.35rem}.auth-content{padding:34px 20px}}
@media(max-width:575.98px){.page-heading{display:block}.page-heading .btn{margin-top:16px}.top-account strong{display:none}.content-area{padding:24px 14px}.surface-card{padding:16px}.auth-brand-panel{min-height:250px;padding:24px}.auth-pitch{margin:38px 0 20px}.auth-pitch h1{font-size:1.9rem}.auth-content{padding:30px 18px}.table-responsive-stack thead{display:none}.table-responsive-stack tr{display:block;padding:12px 0}.table-responsive-stack td{display:flex;justify-content:space-between;gap:15px;border:0;padding:.32rem 0}.table-responsive-stack td:before{content:attr(data-label);font-weight:700;color:#6c7886}}

:root{--billing-border:var(--bh-border);--billing-accent:var(--bh-blue-dark);--billing-surface:#fff;--billing-highlight:#f0f8ff}
/* Piani mensile / annuale: importi sempre letti dalla configurazione server. */
.billing-plans{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:24px 0}
.billing-plan{position:relative;padding:28px;border:1px solid var(--billing-border);border-radius:16px;background:var(--billing-surface);display:flex;flex-direction:column;align-items:flex-start}
.billing-plan-annual{border:2px solid var(--billing-accent);background:var(--billing-highlight)}
.billing-plan-name{font-size:13px;font-weight:800;letter-spacing:.1em;margin-bottom:18px}
.billing-plan-price{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px;margin-bottom:8px}
.billing-plan-price strong{font-size:36px;line-height:1.2;letter-spacing:-.04em}
.billing-plan-price span{font-size:16px}
.billing-plan p{margin:0 0 12px;font-size:14px}
.billing-saving{display:inline-block;border-radius:20px;padding:5px 12px;background:var(--billing-accent);color:#fff;font-size:12px;font-weight:700;margin-bottom:14px}
.billing-saving-detail{font-weight:600}
.billing-plan .btn{margin-top:auto;padding:10px 22px}
.billing-trial{padding:18px 22px;border-radius:12px;background:var(--billing-highlight);border:1px solid var(--billing-border);margin:18px 0}
.billing-trial strong{display:block;font-size:18px;margin-bottom:4px}
.billing-cycle-choice{display:block;width:100%;margin-top:auto;padding-top:12px;font-weight:700}
.billing-cycle-choice input{margin-right:8px;accent-color:var(--billing-accent)}
.billing-cycle-choice:focus-within{outline:2px solid var(--billing-accent);outline-offset:4px}
@media(max-width:650px){.billing-plans{grid-template-columns:1fr}.billing-plan{padding:22px}.billing-plan-price strong{font-size:32px}}
