.account-button{height:40px;padding:0 13px;border:1px solid var(--line);border-radius:6px;background:var(--panel);color:var(--ink);font-size:11px;font-weight:800}
.account-button[title]{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.notice.auth-error{background:#f8e7e5;color:#8b2f29;border-color:#e8c4c0}
.workspace{max-width:none}.dashboard-grid{column-count:var(--display-columns,2);column-gap:16px}.dashboard-grid .category-panel{display:inline-block;width:100%;margin:0 0 16px;break-inside:avoid}.single-category .category-panel{margin:0}.category-panel{transition:opacity .15s,transform .15s,box-shadow .15s}.category-panel>header[draggable=true]{cursor:grab}.category-panel>header[draggable=true]:active{cursor:grabbing}.category-panel.dragging{opacity:.35}.category-panel.drag-target{box-shadow:0 0 0 2px var(--category),var(--shadow)}.drag-handle{color:var(--muted);font-size:16px;line-height:1;user-select:none}.single-category .drag-handle{display:none}
.portal-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:20px;align-items:start}.portal-main{min-width:0}.activity-sidebar{position:sticky;top:92px;background:var(--surface);border:1px solid var(--line);border-radius:9px;overflow:hidden}.activity-head{display:flex;align-items:center;justify-content:space-between;padding:15px 16px;border-bottom:1px solid var(--line)}.activity-head>div{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:3px 8px}.activity-head strong{font-size:13px}.activity-head small{grid-column:2;color:var(--muted);font-size:9px}.live-dot{width:7px;height:7px;border-radius:50%;background:#2e9d61;box-shadow:0 0 0 3px color-mix(in srgb,#2e9d61 15%,transparent);grid-row:1/3}.activity-head button{width:30px;height:30px;border:1px solid var(--line);border-radius:5px;background:var(--panel);color:var(--muted);font-size:17px}.activity-head button.spinning{animation:spin .8s linear infinite}.activity-section{padding:14px 16px;border-bottom:1px solid var(--line)}.activity-section>header{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px}.activity-section h2{margin:0;font-size:11px;text-transform:uppercase;letter-spacing:.08em}.activity-section header span{color:var(--muted);font-size:9px}.activity-list{display:flex;flex-direction:column;gap:3px;max-height:330px;overflow:auto}.calendar-item,.mail-item{display:flex;flex-direction:column;gap:3px;padding:9px;border-radius:6px;color:var(--ink);text-decoration:none}.calendar-item:hover,.mail-item:hover{background:var(--hover)}.calendar-item strong,.mail-item strong{font-size:11px;line-height:1.25}.calendar-item small,.event-date,.mail-item time{font-size:8px;color:var(--muted)}.event-date{color:#d9623f;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.mail-item>span{display:flex;justify-content:space-between;gap:8px}.mail-item time{white-space:nowrap}.mail-item p{margin:0;color:var(--muted);font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mail-item.unread{background:color-mix(in srgb,#d9623f 7%,transparent)}.mail-item.unread strong:before{content:"";display:inline-block;width:5px;height:5px;border-radius:50%;background:#d9623f;margin-right:6px;vertical-align:1px}.activity-empty,.activity-error{padding:14px 8px;color:var(--muted);font-size:10px;line-height:1.5;text-align:center}.activity-error{color:#a13c35}.activity-signin{margin:14px;width:calc(100% - 28px);height:38px;border:0;border-radius:6px;background:#1d2d3e;color:#fff;font-size:10px;font-weight:800}.activity-signin[hidden]{display:none}@keyframes spin{to{transform:rotate(360deg)}}
.pinned-panel{column-break-before:avoid}.most-used-card{overflow:hidden}.most-used-card:before{content:"";position:absolute;z-index:2;left:-1px;right:-1px;top:-1px;height:4px;background:var(--source-color)}
.link-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,var(--card-min,190px)),1fr));grid-auto-flow:dense;grid-auto-rows:.5px;column-gap:9px;row-gap:0;align-items:start}.single-category .link-grid{--card-min:172px}.link-card{min-width:0;height:67.5px;grid-row:span 153;margin-bottom:9px;align-self:start}.link-card>a{height:100%;min-height:0;padding:7px 10px;align-items:center}.link-copy{align-self:center}.link-copy strong{font-size:12px}.link-copy small{font-size:9px}.description{white-space:normal!important;line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.logo{width:42px;height:42px}.logo img{width:30px;height:30px}
.link-card.size-large{height:144px;grid-row:span 306}.link-card.size-large>a{height:100%;min-height:0;padding:12px;flex-direction:column;align-items:flex-start;gap:8px}.link-card.size-large .logo{width:62px;height:62px}.link-card.size-large .logo img{width:46px;height:46px}.link-card.size-large .link-copy{align-self:stretch;gap:3px}.link-card.size-large .link-copy strong{font-size:15px}.link-card.size-large .link-copy small{font-size:10px}.link-card.size-large .description{-webkit-line-clamp:1}.link-card.size-large .open{position:absolute;right:12px;bottom:12px}.link-card.size-small{height:42px;grid-row:span 102}.link-card.size-small>a{height:100%;min-height:0;padding:4px 8px;align-items:center}.link-card.size-small .logo{width:34px;height:34px}.link-card.size-small .logo img{width:24px;height:24px}.link-card.size-small .link-address,.link-card.size-small .description,.link-card.size-small .open{display:none}.link-card.size-small .link-copy strong{font-size:11px}
.remove,.edit,.card-drag{position:absolute;z-index:3;top:4px;width:22px;height:22px;border:0;background:transparent;color:transparent;border-radius:50%;line-height:1}.remove{right:4px}.edit{right:28px}.card-drag{right:52px}.link-card:hover .remove,.link-card:hover .edit,.link-card:hover .card-drag,.remove:focus,.edit:focus,.card-drag:focus{color:var(--muted);background:var(--hover)}.card-drag{cursor:grab}.card-drag:active{cursor:grabbing}.remove:hover{color:#c13e36!important}.edit:hover{color:var(--accent)!important}.link-card.dragging{opacity:.35}.link-card.card-drag-target{box-shadow:0 0 0 2px var(--accent),var(--shadow)}.optional{font-size:8px;font-weight:500;letter-spacing:0;color:var(--muted);margin-left:5px}.modal textarea{min-height:76px;resize:vertical;border:1px solid var(--line);border-radius:5px;background:var(--panel);color:var(--ink);padding:11px 12px;font:inherit;font-size:12px}.range-label{display:grid!important;grid-template-columns:1fr auto;gap:10px!important}.range-label input{grid-column:1/-1;padding:0}.range-label output{font-size:16px;color:var(--ink)}.account-panel{display:flex;align-items:center;justify-content:space-between;padding:15px;border:1px solid var(--line);border-radius:7px}.account-panel strong{font-size:13px}.account-panel p,.sync-note{margin:3px 0 0!important;font-size:10px!important;color:var(--muted)}.sync-note{margin-top:12px!important}
.check-label{flex-direction:row!important;align-items:center;gap:8px!important}.check-label input{width:16px;height:16px}.category-form{padding:15px 0;border-top:1px solid var(--line);margin-top:15px}.category-form>strong{display:block;font-size:12px;margin-bottom:9px}.category-form>div{display:grid;grid-template-columns:1fr 44px auto;gap:8px}.category-form input{min-width:0;border:1px solid var(--line);border-radius:5px;background:var(--panel);color:var(--ink);padding:10px}.category-form input[type=color]{padding:3px}.category-form button{border:0;border-radius:5px;background:#d9623f;color:#fff;padding:0 14px;font-weight:800}
@media(max-width:1250px){.portal-layout{grid-template-columns:minmax(0,1fr) 300px}.dashboard-grid{column-count:2}.single-category .link-grid{--card-min:180px}}
@media(max-width:980px){.portal-layout{grid-template-columns:1fr}.activity-sidebar{position:static;display:grid;grid-template-columns:1fr 1fr}.activity-head{grid-column:1/-1}.activity-section{border-right:1px solid var(--line)}.activity-signin{grid-column:1/-1}}
@media(max-width:800px){.activity-sidebar{grid-template-columns:1fr}.activity-head,.activity-signin{grid-column:1}.activity-section{border-right:0}.dashboard-grid{column-count:1}.link-grid,.single-category .link-grid{--card-min:158px}.account-button{display:none}}
@media(max-width:520px){.link-grid,.single-category .link-grid{--card-min:140px}}

/* Fluid card contents ------------------------------------------------------
   Each card is its own query container, so type and logo scale with the width
   the card actually got — which depends on the viewport, the panel column
   count and the user's --display-columns setting, not the viewport alone. */
.link-card{container-type:inline-size;container-name:card}
.link-card.size-standard .link-copy strong{font-size:clamp(10px,6.1px + 2.8cqi,12.5px)}
.link-card.size-standard .link-copy small{font-size:clamp(8px,4.7px + 2.1cqi,9.5px)}
.link-card.size-standard .logo{width:clamp(30px,10px + 13.9cqi,42px);height:clamp(30px,10px + 13.9cqi,42px)}
.link-card.size-standard .logo img{width:clamp(21px,7px + 9.9cqi,30px);height:clamp(21px,7px + 9.9cqi,30px)}
.link-card.size-standard .description{-webkit-line-clamp:1}
.link-card.size-large .link-copy strong{font-size:clamp(12px,6.5px + 4.2cqi,16px)}
.link-card.size-large .link-copy small{font-size:clamp(8.5px,5px + 2.2cqi,10.5px)}
.link-card.size-large .logo{width:clamp(46px,16px + 20cqi,62px);height:clamp(46px,16px + 20cqi,62px)}
.link-card.size-large .logo img{width:clamp(34px,12px + 15cqi,46px);height:clamp(34px,12px + 15cqi,46px)}
.link-card.size-small .link-copy strong{font-size:clamp(9.5px,4.6px + 3.1cqi,11.5px)}
.link-card.size-small .logo{width:clamp(26px,9px + 11.5cqi,34px);height:clamp(26px,9px + 11.5cqi,34px)}
.link-card.size-small .logo img{width:clamp(19px,6px + 8.5cqi,24px);height:clamp(19px,6px + 8.5cqi,24px)}

/* Shed the least important line before anything is allowed to clip. */
@container card (max-width:186px){.link-card.size-standard .open{display:none}}
@container card (max-width:250px){.link-card.size-standard .description{display:none}}
@container card (max-width:132px){.link-card.size-standard .link-address{display:none}}
@container card (max-width:150px){.link-card.size-large .description{display:none}}
/* A long name may take two lines; never a third, and never past the card. */
.link-card.size-standard .link-copy strong{line-height:1.18;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.link-card.size-standard .link-copy small{line-height:1.2}
.link-card.size-standard .link-copy{gap:2px}
/* The initials are a stand-in for a missing logo, not a backdrop for one. */
.logo.has-logo .fallback{display:none}
/* Per-user module visibility and shared-vs-personal affordances in the modal. */
.module-microsoft365-off .activity-sidebar{display:none}
.module-microsoft365-off .portal-layout{grid-template-columns:minmax(0,1fr)}
.module-list{padding:15px 0;border-top:1px solid var(--line);margin-top:15px}
.module-list>strong{display:block;font-size:12px;margin-bottom:9px}
.shared-note{margin:0 0 16px!important;padding:10px 12px;border:1px solid var(--line);border-radius:6px;background:var(--hover);color:var(--muted);font-size:10px!important;line-height:1.45}
.shared-note[hidden]{display:none}
.locked-field{opacity:.55}
.locked-field input,.locked-field select,.locked-field textarea{cursor:not-allowed}
.catalog-panel{padding:15px 0;border-top:1px solid var(--line);margin-top:15px}
.catalog-panel>strong{display:block;font-size:12px;margin-bottom:6px}
.catalog-panel p{margin:0 0 10px!important;font-size:10px!important;color:var(--muted);line-height:1.5}
.catalog-panel p.catalog-error{color:#a13c35}
#seedCatalog[hidden]{display:none}
/* A centred modal taller than the viewport gets clipped at both edges with no
 * way to scroll to either. Let the modal scroll inside itself instead. */
.modal{max-height:calc(100vh - 40px);overflow-y:auto}
.modal-backdrop{align-items:safe center}
