/* Suite CyT: principal + account management */
.portal-home{display:grid;gap:24px}
.portal-hero{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,.75fr);gap:28px;align-items:stretch;padding:28px;border:1px solid var(--cyt-border);border-radius:14px;background:var(--cyt-surface)}
.portal-hero::after{content:"";position:absolute;right:-64px;top:-84px;width:210px;height:210px;border:1px solid var(--cyt-brand-100);border-radius:50%;box-shadow:0 0 0 28px rgba(221,238,233,.35),0 0 0 56px rgba(221,238,233,.18);pointer-events:none}
.portal-hero-copy{position:relative;z-index:1;display:flex;flex-direction:column;justify-content:center;min-height:190px}
.portal-eyebrow{display:flex;align-items:center;gap:8px;margin:0 0 14px;color:var(--cyt-brand-700);font-size:11px;font-weight:800;letter-spacing:.11em;text-transform:uppercase}
.portal-eyebrow::before{content:"";width:24px;height:2px;background:var(--cyt-copper-600)}
.portal-hero h1{max-width:780px;margin:0!important;font-size:clamp(30px,3.2vw,46px)!important;line-height:1.02!important;letter-spacing:-.04em!important}
.portal-hero-copy>p:not(.portal-eyebrow){max-width:720px;margin:14px 0 0;font-size:15px;line-height:1.6}
.portal-account-card{position:relative;z-index:1;align-self:stretch;display:flex;flex-direction:column;justify-content:space-between;gap:18px;padding:20px;border:1px solid var(--cyt-border);border-radius:10px;background:var(--cyt-surface-subtle)}
.portal-account-head{display:flex;gap:12px;align-items:center}
.portal-avatar{display:grid;place-items:center;width:42px;height:42px;border-radius:10px;background:var(--cyt-ink-950);color:#fff;font-size:14px;font-weight:800;letter-spacing:.04em}
.portal-account-meta strong{display:block;color:var(--cyt-ink-950);font-size:14px}
.portal-account-meta span{display:block;margin-top:2px;color:var(--cyt-ink-650);font-size:12px}
.portal-account-actions{display:flex;gap:8px;flex-wrap:wrap}
.portal-account-actions button{min-height:38px}
.portal-context{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--cyt-border);border-radius:10px;background:var(--cyt-surface)}
.portal-context-item{min-width:0;padding:15px 18px;border-right:1px solid var(--cyt-border)}
.portal-context-item:last-child{border-right:0}
.portal-context-item span{display:block;margin-bottom:5px;color:var(--cyt-ink-650);font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}
.portal-context-item strong{display:block;overflow:hidden;color:var(--cyt-ink-950);font-size:14px;text-overflow:ellipsis;white-space:nowrap}
.portal-context-item select{width:100%;min-height:38px;margin:0!important}
.portal-section-head{display:flex;align-items:end;justify-content:space-between;gap:20px;padding-top:4px}
.portal-section-head h2{margin:0!important;font-size:20px!important}
.portal-section-head p{margin:5px 0 0}
.portal-count{display:inline-flex;align-items:center;min-height:28px;padding:0 10px;border:1px solid var(--cyt-border);border-radius:999px;background:var(--cyt-surface);color:var(--cyt-ink-650);font-size:12px;font-weight:700}
.portal-module-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.portal-module-card{position:relative;min-height:220px;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;padding:18px;border:1px solid var(--cyt-border);border-radius:10px;background:var(--cyt-surface);transition:border-color var(--cyt-transition),transform var(--cyt-transition),box-shadow var(--cyt-transition)}
.portal-module-card:hover{transform:translateY(-1px);border-color:var(--cyt-border-strong);box-shadow:0 8px 24px rgba(12,32,37,.055)}
.portal-module-card.is-disabled{background:var(--cyt-surface-sunken);box-shadow:none;transform:none}
.portal-module-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.portal-module-mark{display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--cyt-brand-100);border-radius:8px;background:var(--cyt-brand-50);color:var(--cyt-brand-700);font-size:11px;font-weight:900;letter-spacing:.04em}
.portal-module-status{display:inline-flex;align-items:center;gap:6px;color:var(--cyt-success);font-size:11px;font-weight:800}
.portal-module-status::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.is-disabled .portal-module-status{color:var(--cyt-neutral)}
.portal-module-card h3{margin:22px 0 6px!important;font-size:18px!important}
.portal-module-card p{min-height:42px;margin:0;font-size:13px;line-height:1.55}
.portal-module-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:24px;padding-top:14px;border-top:1px solid var(--cyt-border)}
.portal-module-foot small{color:var(--cyt-ink-650);font-weight:650}
.portal-module-open{display:inline-flex;align-items:center;gap:7px;min-height:36px;padding:0 12px!important}
.portal-module-open::after{content:"→";font-size:15px}
.portal-module-open:disabled::after{display:none}
.account-dialog{width:min(590px,calc(100vw - 32px));max-height:min(760px,calc(100dvh - 32px));padding:0;border:1px solid var(--cyt-border-strong);border-radius:var(--cyt-radius-modal);background:var(--cyt-surface);box-shadow:var(--cyt-modal-shadow);color:var(--cyt-ink-950)}
.account-dialog::backdrop{background:rgba(12,32,37,.56);backdrop-filter:blur(2px)}
.account-dialog-shell{display:grid}
.account-dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:22px 24px 18px;border-bottom:1px solid var(--cyt-border)}
.account-dialog-head h2{margin:0!important;font-size:20px!important}
.account-dialog-head p{margin:5px 0 0;font-size:13px}
.account-dialog-close{display:grid;place-items:center;width:36px;height:36px;padding:0!important;border:1px solid var(--cyt-border)!important;border-radius:8px!important;background:var(--cyt-surface)!important;color:var(--cyt-ink-650)!important;font-size:20px!important}
.account-summary{display:grid;grid-template-columns:46px 1fr;gap:12px;align-items:center;margin:20px 24px 0;padding:14px;border:1px solid var(--cyt-border);border-radius:9px;background:var(--cyt-surface-subtle)}
.account-summary .portal-avatar{width:46px;height:46px}
.account-summary strong{display:block}
.account-summary span{display:block;margin-top:2px;color:var(--cyt-ink-650);font-size:12px}
.account-form{display:grid;gap:14px;padding:20px 24px 24px}
.account-form label{display:grid;gap:6px;color:var(--cyt-ink-800);font-size:12px;font-weight:700}
.account-form input{width:100%;min-height:42px;margin:0!important}
.account-form small{color:var(--cyt-ink-650);font-weight:500}
.account-inline-status{display:none;margin:0;padding:10px 12px;border-radius:8px;font-size:12px;font-weight:700}
.account-inline-status.is-error{display:block;background:var(--cyt-danger-bg);color:var(--cyt-danger)}
.account-inline-status.is-success{display:block;background:var(--cyt-success-bg);color:var(--cyt-success)}
.account-dialog-actions{display:flex;justify-content:flex-end;gap:8px;padding-top:4px}
body.cyt-dialog-open{overflow:hidden}
@media(max-width:1100px){.portal-module-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-hero{grid-template-columns:minmax(0,1.35fr) minmax(260px,.8fr)}}
@media(max-width:820px){.portal-hero{grid-template-columns:1fr}.portal-hero-copy{min-height:auto}.portal-context{grid-template-columns:1fr}.portal-context-item{border-right:0;border-bottom:1px solid var(--cyt-border)}.portal-context-item:last-child{border-bottom:0}}
@media(max-width:620px){.portal-module-grid{grid-template-columns:1fr}.portal-section-head{align-items:flex-start;flex-direction:column}.portal-hero{padding:20px}.portal-hero h1{font-size:32px!important}.account-dialog-head,.account-form{padding-left:18px;padding-right:18px}.account-summary{margin-left:18px;margin-right:18px}}
