/* Canonical Portal navigation. Geometry is shared by Home and module menus. */
.portal-menu-page .portal-menu-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; align-items:stretch; }
.portal-menu-page .portal-menu-card { display:flex; flex-direction:row; align-items:center; gap:16px; min-width:0; min-height:88px; padding:20px 22px; border:1px solid transparent; border-radius:var(--portal-radius,8px); background:var(--portal-surface); color:var(--portal-text); box-shadow:var(--portal-shadow); text-decoration:none; cursor:pointer; transition:transform .18s ease,box-shadow .18s ease; }
.portal-menu-card[hidden] { display:none !important; }
.portal-menu-page .portal-menu-icon { display:flex; align-items:center; justify-content:center; flex:0 0 46px; width:46px; height:46px; border-radius:50%; color:#fff; }
.portal-menu-page .portal-menu-text { display:block; min-width:0; }
.portal-menu-page .portal-menu-text h3 { margin:0 0 4px; font-size:17px; font-weight:600; line-height:1.3; letter-spacing:0; color:var(--portal-text); }
.portal-menu-page .portal-menu-text p { margin:0; font-size:13px; font-weight:400; line-height:1.35; color:var(--portal-muted); overflow-wrap:anywhere; }
.portal-menu-page .portal-menu-card:focus-visible { outline:3px solid var(--portal-blue); outline-offset:3px; }
.portal-menu-page .portal-menu-card:hover { transform:translateY(-2px); box-shadow:var(--portal-shadow-hover); }
.portal-menu-page .portal-menu-card.is-launching { opacity:.72; pointer-events:none; }
.portal-menu-page .portal-menu-card.has-inline-actions { cursor:default; }
.portal-menu-page .portal-menu-card.has-inline-actions:hover { transform:none; }
.portal-menu-page .portal-menu-card[data-portal-card="notion"] .portal-menu-icon { background:var(--portal-text); color:var(--portal-surface) !important; }
.portal-menu-page .portal-menu-card[data-portal-card="health"] .portal-menu-icon { background:linear-gradient(135deg,#0891b2,#06b6d4); }
.portal-menu-page .portal-menu-card[data-portal-card="calendar"] .portal-menu-icon { background:linear-gradient(135deg,#7c3aed,#a855f7); }
@media (max-width:768px) { .portal-menu-page .portal-menu-grid { grid-template-columns:minmax(0,1fr); } }
@media (prefers-reduced-motion:reduce) { .portal-menu-page .portal-menu-card { transition:none; } .portal-menu-page .portal-menu-card:hover { transform:none; } }

/* Opt-in Home variant; the canonical Classic card geometry stays intact. */
.portal-home-areas[hidden], .portal-menu-grid[hidden] { display:none !important; }
.portal-home-areas { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:30px 40px; align-items:start; }
.portal-home-area { min-width:0; padding:0 0 18px; }
.portal-area-number { display:block; position:relative; padding:0 0 8px; border-bottom:1px solid var(--portal-border); font-size:11px; color:var(--portal-muted); }
.portal-area-number::after { content:''; position:absolute; left:24px; top:3px; width:26px; height:4px; border-radius:1px; background:var(--portal-blue); }
.portal-home-area:nth-child(even) .portal-area-number::after { background:var(--portal-yellow,#e9a900); }
.portal-home-area h2 { margin:12px 0 14px; color:var(--portal-text); font-size:24px; font-weight:700; line-height:1.25; }
.portal-home-area .portal-area-link { display:flex; align-items:center; gap:10px; box-sizing:border-box; width:100%; min-width:0; min-height:40px; padding:8px 6px; border:0; border-radius:6px; background:transparent; color:var(--portal-text); text-align:left; font:inherit; font-size:14px; line-height:1.4; text-decoration:none; cursor:pointer; overflow-wrap:anywhere; }
.portal-area-link > span:last-child { min-width:0; }
.portal-home-area .portal-area-link:hover { background:var(--portal-surface); color:var(--portal-blue); }
.portal-area-link:focus-visible { outline:3px solid var(--portal-blue); outline-offset:2px; }
.portal-area-icon { display:inline-flex; flex:0 0 20px; width:20px; height:20px; align-items:center; justify-content:center; color:var(--portal-blue); }
.portal-area-icon svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.portal-area-branch > summary { list-style:none; }
.portal-area-branch > summary::-webkit-details-marker { display:none; }
.portal-area-branch > summary::after { content:''; margin-left:auto; flex:0 0 7px; width:7px; height:7px; border-right:2px solid var(--portal-muted); border-bottom:2px solid var(--portal-muted); transform:rotate(-45deg); }
.portal-area-branch[open] > summary::after { transform:rotate(45deg); }
.portal-area-children { margin:2px 0 8px 16px; padding-left:12px; border-left:1px solid var(--portal-border); min-width:0; }
.portal-area-children .portal-area-link { font-size:13px; }
.portal-area-children .ssh-installer-picker { display:grid; min-width:0; margin:10px 0; gap:8px; }
.portal-area-children select, .portal-area-children button { max-width:100%; }
#home-layout-status { color:var(--portal-muted); font-size:14px; }
@media (max-width:1100px) { .portal-home-areas { grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; } }
@media (max-width:600px) { .portal-home-areas { grid-template-columns:minmax(0,1fr); gap:20px; } .portal-home-area h2 { font-size:22px; } }

/* Keep the canonical menu geometry independent of legacy mobile card overrides. */
.portal-menu-page .portal-menu-card .portal-menu-icon { width:46px !important; height:46px !important; flex-basis:46px !important; }
.portal-menu-page .portal-menu-card .portal-menu-text h3 { font-size:17px !important; font-weight:600 !important; }
.portal-menu-page .portal-menu-card .portal-menu-text p { font-size:13px !important; }
