.portal-dashboard-page{min-height:100vh;}
.portal-dashboard-app{min-height:100vh;display:grid;grid-template-columns:390px minmax(0,1fr);background:var(--ink,#0A0E1A);}
.portal-dashboard-sidebar{min-height:100vh;border-right:1px solid var(--line,rgba(148,163,184,.14));background:linear-gradient(180deg,#0c1321 0%,#10192a 100%);display:flex;flex-direction:column;padding:0 26px 26px;}
.portal-dashboard-brand{height:132px;display:flex;align-items:center;gap:18px;border-bottom:1px solid var(--line,rgba(148,163,184,.14));margin:0 -26px 28px;padding:0 36px;}
.portal-dashboard-brand .mark{width:52px;height:52px;}
.portal-dashboard-brand-copy{display:flex;flex-direction:column;line-height:1.02;}
.portal-dashboard-brand-copy strong{font-family:'Space Grotesk',sans-serif;font-size:1.9rem;color:var(--white,#F8FAFC);}
.portal-dashboard-brand-copy span{font-family:'Space Grotesk',sans-serif;font-size:1.65rem;color:var(--cyan,#2DD4BF);margin-top:8px;}
.portal-dashboard-nav{display:flex;flex-direction:column;gap:12px;}
.portal-shell .portal-dashboard-nav-item{width:100%;min-height:76px;display:grid;grid-template-columns:48px minmax(0,1fr) 18px;align-items:center;gap:16px;padding:15px 18px;border:1px solid transparent;border-radius:14px;background:transparent;color:var(--white,#F8FAFC);text-decoration:none;font-weight:600;font-size:1.12rem;transition:border-color .18s,background .18s,transform .18s;}
.portal-shell .portal-dashboard-nav-item:hover{border-color:rgba(45,212,191,.25);background:rgba(255,255,255,.035);transform:translateX(2px);}
.portal-shell .portal-dashboard-nav-primary{background:linear-gradient(120deg,#22cdbd,#347ff3);color:#fff;border-color:rgba(255,255,255,.08);box-shadow:0 12px 30px -20px rgba(45,212,191,.75);}
.portal-shell .portal-dashboard-nav-primary .portal-dashboard-nav-icon,.portal-shell .portal-dashboard-nav-primary .portal-dashboard-nav-arrow{color:#fff;}
.portal-dashboard-nav-icon{width:42px;height:42px;display:flex;align-items:center;justify-content:center;color:var(--cyan,#2DD4BF);}
.portal-dashboard-nav-icon svg{width:34px;height:34px;}
.portal-dashboard-nav-arrow{color:var(--slate,#94A3B8);font-size:1.7rem;line-height:1;text-align:right;}
.portal-dashboard-workspace{min-width:0;display:flex;flex-direction:column;}
.portal-dashboard-accountbar{height:132px;border-bottom:1px solid var(--line,rgba(148,163,184,.14));display:flex;justify-content:flex-end;align-items:center;gap:20px;padding:0 58px;color:var(--slate,#94A3B8);font-size:1rem;}
.portal-dashboard-avatar{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#19263a;color:var(--cyan,#2DD4BF);font-family:'Space Grotesk',sans-serif;font-size:1.3rem;font-weight:700;border:1px solid rgba(148,163,184,.1);}
.portal-dashboard-main{flex:1;padding:58px 58px 76px;min-width:0;}
.portal-dashboard-hero-grid{display:grid;grid-template-columns:minmax(760px,900px) minmax(430px,1fr);gap:54px;align-items:center;width:100%;max-width:1540px;}
.portal-dashboard-welcome{min-width:0;}
.portal-dashboard-welcome h1{font-size:clamp(3.2rem,4.3vw,4.65rem);line-height:1.02;margin:0 0 36px;letter-spacing:-.045em;max-width:940px;}
.portal-dashboard-welcome h1 span{overflow-wrap:normal;word-break:normal;}
.portal-dashboard-customer-card{width:100%;max-width:900px;min-height:238px;padding:36px 40px;margin-bottom:32px;display:flex;flex-direction:column;justify-content:center;}
.portal-dashboard-customer-card h3{font-size:1.55rem;margin:20px 0 8px;}.portal-dashboard-customer-card .meta{margin:0;font-size:1.08rem;}.portal-dashboard-intro{max-width:880px;font-size:1.16rem;line-height:1.75;}
.portal-dashboard-visual{position:relative;min-height:500px;display:flex;align-items:center;justify-content:center;isolation:isolate;}
.portal-dashboard-glow{position:absolute;width:390px;height:160px;bottom:38px;border-radius:50%;background:radial-gradient(ellipse,rgba(20,103,255,.24),rgba(20,103,255,0) 70%);filter:blur(6px);z-index:-1;}
.portal-dashboard-doc{width:300px;height:375px;border-radius:28px;background:linear-gradient(145deg,#17243a,#26344c);border:1px solid rgba(120,159,235,.42);box-shadow:0 34px 70px -28px rgba(0,0,0,.9),0 0 45px -28px rgba(59,130,246,.8);transform:rotate(8deg);padding:82px 40px 34px;position:relative;}
.portal-dashboard-doc:after{content:"";position:absolute;right:-1px;top:-1px;width:84px;height:84px;background:linear-gradient(145deg,#7891c3,#26344c);clip-path:polygon(0 0,100% 100%,0 100%);border-bottom-left-radius:12px;}
.portal-dashboard-doc>span{display:block;height:6px;border-radius:99px;background:linear-gradient(90deg,#19d7d0,#3293e5);margin-bottom:22px;opacity:.95;box-shadow:0 0 12px rgba(45,212,191,.16);}.portal-dashboard-doc>span:nth-child(1){width:70%;}.portal-dashboard-doc>span:nth-child(2){width:55%;}.portal-dashboard-doc>span:nth-child(3){width:88%;}.portal-dashboard-doc>span:nth-child(4){width:68%;}
.portal-dashboard-signature{position:absolute;left:40px;bottom:34px;font-size:4rem;color:#20b8d0;transform:rotate(-13deg);text-shadow:0 0 18px rgba(32,184,208,.22);}
.portal-dashboard-shield{position:absolute;right:2%;bottom:10%;width:164px;height:184px;display:flex;align-items:center;justify-content:center;clip-path:polygon(50% 0,91% 17%,91% 64%,76% 86%,50% 100%,24% 86%,9% 64%,9% 17%);background:linear-gradient(150deg,#25d4dc,#096c94);border:1px solid rgba(255,255,255,.35);box-shadow:0 24px 48px -18px rgba(45,212,191,.8),inset 0 0 24px rgba(255,255,255,.12);font-size:4.6rem;color:#c8fff9;font-weight:700;}
.portal-dashboard-star{position:absolute;font-style:normal;color:#22bff1;text-shadow:0 0 16px rgba(34,191,241,.7);z-index:3}.star-one{font-size:2.6rem;left:5%;top:13%}.star-two{font-size:1.5rem;right:12%;top:12%;color:#2d8ed7}.star-three{font-size:2rem;right:0;top:42%}.star-four{font-size:1.8rem;left:2%;bottom:18%;color:#3996ee}.star-five{font-size:1.5rem;right:13%;bottom:4%;color:#1a74c8}.portal-dashboard-dot{position:absolute;width:6px;height:6px;border-radius:50%;background:#25d4dc;box-shadow:0 0 10px rgba(37,212,220,.8)}.dot-one{left:9%;top:34%}.dot-two{right:5%;top:25%;background:#3b82f6}.dot-three{left:14%;bottom:5%;background:#3b82f6}
.portal-dashboard-mobile-nav,.portal-dashboard-mobile-brand{display:none;}

/* Shared shell for authenticated inner Portal screens. */
.portal-inner-page .portal-dashboard-app{min-height:100vh;}
.portal-inner-page .portal-dashboard-sidebar{position:sticky;top:0;height:100vh;min-height:100vh;overflow-y:auto;}
.portal-inner-workspace{flex:1;min-width:0;padding:48px 56px 72px;}
.portal-inner-workspace>.portal-shell{min-height:0;width:100%;}
.portal-inner-workspace .portal-topbar{display:none;}
.portal-inner-workspace .portal-content{padding:0;width:100%;max-width:none;}
.portal-inner-mobile-nav{display:none;}

/* B2B reseller customer directory */
.reseller-customers-page,.reseller-customers-page .portal-content,.reseller-customers-content{width:100%;max-width:none;}
.reseller-customers-content{max-width:1500px;}
.reseller-customers-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:26px;}
.reseller-customers-heading h1{margin:0 0 8px;}
.reseller-customers-heading p{margin:0;}
.reseller-primary-action{width:auto;min-width:190px;}
.reseller-customers-search-card,.reseller-customers-form-card,.reseller-customers-list,.reseller-customer-row{width:100%;max-width:none;}
.reseller-customers-search-card{padding:24px 28px;margin-bottom:22px;}
.reseller-customers-search-grid{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px;align-items:end;width:100%;}
.reseller-customers-count{padding-bottom:12px;white-space:nowrap;}
.reseller-customers-form-card{padding:30px 32px;margin-bottom:24px;}
.reseller-customers-form-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:22px;}
.reseller-customers-form-heading h3{margin:0;}
.reseller-customers-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;}
.reseller-customers-span{grid-column:1/-1;}
.reseller-customers-form-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px;}
.reseller-customers-list{display:grid;gap:14px;}
.reseller-customers-empty{padding:34px;text-align:center;width:100%;}
.reseller-customers-empty p{margin-bottom:0;}
.reseller-customer-row{padding:26px 28px;margin-bottom:0;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:26px;align-items:center;}
.reseller-customer-main{display:grid;grid-template-columns:minmax(260px,1.35fr) minmax(220px,.8fr) minmax(280px,1fr);gap:28px;align-items:center;min-width:0;}
.reseller-customer-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.reseller-customer-title h3{margin:0;}
.reseller-customer-afm,.reseller-customer-secondary{margin-top:7px;}
.reseller-customer-actions{display:flex;gap:9px;flex-wrap:wrap;justify-content:flex-end;align-items:center;}
.reseller-contract-shortcut{width:auto;min-width:165px;padding:10px 16px;}
.reseller-contract-shortcut:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none;}

@media (max-width:1550px){.portal-dashboard-app{grid-template-columns:350px minmax(0,1fr)}.portal-dashboard-main{padding-left:44px;padding-right:44px}.portal-dashboard-hero-grid{grid-template-columns:minmax(650px,1fr) 360px;gap:36px}.portal-dashboard-doc{width:250px;height:315px}.portal-dashboard-shield{width:138px;height:154px}.portal-dashboard-customer-card{max-width:none}.portal-dashboard-intro{max-width:none}.portal-inner-workspace{padding-left:44px;padding-right:44px}.reseller-customer-main{grid-template-columns:minmax(220px,1.25fr) minmax(190px,.8fr) minmax(220px,1fr);gap:20px}}
@media (max-width:1180px){.portal-dashboard-app{grid-template-columns:290px minmax(0,1fr)}.portal-dashboard-main{padding:42px 38px 58px}.portal-dashboard-accountbar{padding:0 36px}.portal-dashboard-hero-grid{grid-template-columns:1fr}.portal-dashboard-visual{display:none}.portal-dashboard-welcome h1{font-size:clamp(2.5rem,5vw,3.6rem);max-width:none}.portal-dashboard-customer-card{max-width:none}.portal-shell .portal-dashboard-nav-item{font-size:1rem;grid-template-columns:40px minmax(0,1fr) 16px}.portal-dashboard-nav-icon svg{width:30px;height:30px}.portal-inner-workspace{padding:38px 32px 56px}.reseller-customer-row{grid-template-columns:1fr}.reseller-customer-actions{justify-content:flex-start}.reseller-customer-main{grid-template-columns:repeat(2,minmax(0,1fr))}.reseller-customer-main>div:last-child{grid-column:1/-1}}
@media (max-width:760px){.portal-dashboard-app{display:block;min-height:100vh}.portal-dashboard-sidebar{display:none}.portal-dashboard-accountbar{height:70px;padding:0 18px;font-size:.83rem}.portal-dashboard-avatar{width:38px;height:38px;font-size:1rem}.portal-dashboard-main{padding:22px 18px 42px}.portal-dashboard-mobile-brand{display:block;margin-bottom:26px}.portal-dashboard-mobile-brand .portal-dashboard-brand{height:auto;border:0;margin:0;padding:0}.portal-dashboard-mobile-brand .portal-dashboard-brand-copy strong{font-size:1.2rem}.portal-dashboard-mobile-brand .portal-dashboard-brand-copy span{font-size:1.05rem;margin-top:4px}.portal-dashboard-hero-grid{display:block}.portal-dashboard-welcome h1{font-size:clamp(2rem,10vw,3rem);margin-bottom:24px}.portal-dashboard-customer-card{max-width:none;min-height:0;padding:24px 22px;margin-bottom:24px}.portal-dashboard-intro{font-size:1rem;margin-bottom:24px}.portal-dashboard-mobile-nav{display:block}.portal-dashboard-mobile-nav .portal-dashboard-nav{width:100%;gap:12px}.portal-dashboard-mobile-nav .portal-dashboard-nav-item{min-height:66px;border:1px solid var(--line,rgba(148,163,184,.14));background:var(--panel,#0F1626);border-radius:13px;padding:14px 16px;font-size:1rem;grid-template-columns:42px minmax(0,1fr) 16px}.portal-dashboard-mobile-nav .portal-dashboard-nav-icon svg{width:30px;height:30px}.portal-dashboard-mobile-nav .portal-dashboard-nav-primary{background:linear-gradient(120deg,#22cdbd,#347ff3)}.portal-inner-mobile-nav{display:block;padding:16px 18px 0}.portal-inner-mobile-nav .portal-dashboard-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.portal-inner-mobile-nav .portal-dashboard-nav-item{min-height:58px;border:1px solid var(--line,rgba(148,163,184,.14));background:var(--panel,#0F1626);border-radius:12px;padding:10px 12px;font-size:.88rem;grid-template-columns:34px minmax(0,1fr);gap:8px}.portal-inner-mobile-nav .portal-dashboard-nav-arrow{display:none}.portal-inner-mobile-nav .portal-dashboard-nav-icon{width:32px;height:32px}.portal-inner-mobile-nav .portal-dashboard-nav-icon svg{width:25px;height:25px}.portal-inner-workspace{padding:24px 18px 42px}.portal-inner-workspace .portal-content{padding:0}.reseller-customers-heading{display:grid;grid-template-columns:1fr}.reseller-primary-action{width:100%}.reseller-customers-search-grid{grid-template-columns:1fr}.reseller-customers-count{padding:0}.reseller-customers-form-grid,.reseller-customer-main{grid-template-columns:1fr}.reseller-customers-span,.reseller-customer-main>div:last-child{grid-column:auto}.reseller-customer-row{padding:20px}.reseller-customer-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.reseller-contract-shortcut{grid-column:1/-1;width:100%}.reseller-customer-actions .portal-btn-outline{width:100%;text-align:center}.reseller-customers-search-card,.reseller-customers-form-card{padding:20px}}
@media (max-width:520px){.portal-inner-mobile-nav .portal-dashboard-nav{grid-template-columns:1fr}.portal-inner-mobile-nav .portal-dashboard-nav-item{min-height:56px}.reseller-customer-actions{grid-template-columns:1fr}.reseller-contract-shortcut{grid-column:auto}}
@media (max-width:420px){.portal-dashboard-accountbar{padding-left:14px;padding-right:14px;gap:10px}.portal-dashboard-accountbar>span{max-width:235px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.portal-dashboard-main{padding-left:14px;padding-right:14px}.portal-inner-workspace{padding-left:14px;padding-right:14px}.portal-inner-mobile-nav{padding-left:14px;padding-right:14px}}

/* ── Μενού λογαριασμού (avatar πάνω δεξιά) ───────────────────────────────── */
.portal-account{position:relative;}
.portal-account-trigger{display:flex;align-items:center;gap:20px;background:transparent;border:0;padding:6px;border-radius:999px;cursor:pointer;color:inherit;font:inherit;}
.portal-account-trigger:hover .portal-dashboard-avatar{border-color:rgba(45,212,191,.55);}
.portal-account-trigger:focus-visible{outline:2px solid var(--cyan,#2DD4BF);outline-offset:3px;}
.portal-account-name{color:var(--slate,#94A3B8);font-size:1rem;}
/* Αόρατη επιφάνεια που πιάνει το κλικ έξω από το μενού. Κάτω από το μενού
   στη στοίβαξη, ώστε να μην εμποδίζει τα ίδια τα κουμπιά του. */
.portal-account-dismiss{position:fixed;inset:0;z-index:40;}
.portal-account-menu{position:absolute;top:calc(100% + 10px);right:0;z-index:41;min-width:330px;white-space:nowrap;padding:8px;border-radius:14px;border:1px solid rgba(148,163,184,.2);background:#111b2e;box-shadow:0 30px 70px -30px rgba(0,0,0,.85);display:grid;gap:2px;}
.portal-account-menu button,.portal-account-menu a{width:100%;display:flex;align-items:center;gap:12px;background:transparent;border:0;color:#C3CEDE;font:inherit;font-size:.95rem;text-align:left;padding:12px 14px;border-radius:10px;cursor:pointer;}
.portal-account-menu button:hover,.portal-account-menu a:hover{background:rgba(148,163,184,.1);color:#F8FAFC;}
.portal-account-menu button:focus-visible,.portal-account-menu a:focus-visible{outline:2px solid var(--cyan,#2DD4BF);outline-offset:-2px;}
.portal-account-menu svg{width:19px;height:19px;flex:none;opacity:.8;}
.portal-account-menu form{margin:0;border-top:1px solid rgba(148,163,184,.14);padding-top:2px;margin-top:2px;}

/* ── Modal στοιχείων λογαριασμού ─────────────────────────────────────────── */
.portal-modal-backdrop{position:fixed;inset:0;z-index:60;background:rgba(4,7,14,.72);}
.portal-modal{position:fixed;z-index:61;top:50%;left:50%;transform:translate(-50%,-50%);width:min(880px,calc(100vw - 32px));max-height:min(90vh,940px);display:flex;flex-direction:column;border-radius:18px;border:1px solid rgba(148,163,184,.2);background:#0D1524;box-shadow:0 50px 120px -40px rgba(0,0,0,.9);}
.portal-modal-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px 26px;border-bottom:1px solid rgba(148,163,184,.14);}
.portal-modal-head h2{margin:0;font-size:1.15rem;}
.portal-modal-close{background:transparent;border:0;color:var(--slate,#94A3B8);font-size:1.6rem;line-height:1;cursor:pointer;padding:0 6px;}
.portal-modal-close:hover{color:#F8FAFC;}
/* Η κύλιση μένει μέσα στο modal: μια μακριά φόρμα δεν πρέπει να σπρώχνει
   τη σελίδα από κάτω ούτε να ξεφεύγει από την οθόνη. */
.portal-modal-body{overflow-y:auto;padding:24px 26px 28px;}
.portal-modal-body .portal-info-card{margin-bottom:18px;}
.portal-modal-body .portal-info-card:last-child{margin-bottom:0;}

/* ── Διάταξη της φόρμας στοιχείων ────────────────────────────────────────── */
.portal-profile-channel{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;padding:26px 30px;}
.portal-profile-fields{display:grid;gap:24px;width:100%;padding:34px 38px;}
.portal-profile-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;}
.portal-profile-pair-narrow{grid-template-columns:minmax(180px,.45fr) minmax(240px,1fr);}

@media (max-width:760px){
    .portal-account-name{display:none}
    .portal-account-menu{min-width:min(280px,calc(100vw - 36px))}
    .portal-modal{width:calc(100vw - 20px);max-height:calc(100vh - 20px)}
    .portal-modal-head{padding:16px 18px}
    .portal-modal-body{padding:18px}
    .portal-profile-channel{padding:20px}
    .portal-profile-fields{padding:22px 20px;gap:18px}
    .portal-profile-pair,.portal-profile-pair-narrow{grid-template-columns:1fr;gap:16px}
}
.portal-modal-narrow{width:min(560px,calc(100vw - 32px));}
/* Πιο φαρδύ, γιατί οι κωδικοί συμβολαίων είναι μακριοί και έσπρωχναν τη
   στήλη του ποσού να σπάει σε δύο γραμμές. */
.portal-modal-wide{width:min(1060px,calc(100vw - 32px));}
.portal-payments-table td:last-child,
.portal-payments-table th:last-child{white-space:nowrap;}
.portal-payments-table td:first-child{white-space:nowrap;}
@media (max-width:760px){
    .portal-payments-table td:last-child,.portal-payments-table td:first-child{white-space:normal}
}
