
/* Account surfaces extend the existing campus system. */
.auth-view{min-height:100dvh;display:grid;background:var(--color-paper);color:var(--color-ink)}
.auth-story{display:none}
.auth-panel{position:relative;display:flex;align-items:center;justify-content:center;padding:72px 24px 40px}
.auth-theme{position:absolute;top:16px;right:16px}
.auth-card{width:100%;max-width:390px}
.auth-mobile-brand{display:block;font:600 24px var(--font-display);letter-spacing:-1px;margin-bottom:36px}
.auth-card h1{font-size:clamp(1.7rem,3vw,2.1rem);line-height:1.25}
.auth-card>p{font-size:var(--text-sm);color:var(--color-muted);margin-top:12px}
.auth-card form{margin-top:28px}
.field{display:flex;flex-direction:column;gap:8px;margin-bottom:20px;min-width:0;font-size:var(--text-sm);font-weight:600}
.field input{width:100%;min-width:0;height:46px;border:var(--rule-default);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-ink);padding:0 12px;outline-offset:2px}
.field small{color:var(--color-muted);font-size:.68rem;font-weight:400;line-height:1.7}
.field input:disabled{opacity:.55;cursor:not-allowed}
.form-message{min-height:1.5em;font-size:var(--text-sm);color:var(--color-success);margin:8px 0}
.form-message.is-error{color:var(--color-error)}
.auth-submit{width:100%;min-height:48px}
.auth-switch{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:24px;font-size:var(--text-sm);flex-wrap:wrap}
.text-button{padding:8px 0;min-height:44px;background:var(--color-transparent);color:var(--color-accent);font-weight:700}
.auth-card .auth-session-note{padding-top:20px;border-top:var(--rule-default);margin-top:28px;font-size:.7rem;line-height:1.8}
.auth-card .auth-session-note::before{content:"";display:inline-block;width:6px;height:6px;background:var(--color-green-line);border-radius:50%;margin-right:8px}
.account-grid{display:grid;gap:20px}
.settings-card{padding:24px;background:var(--color-surface);border:var(--rule-default);border-radius:var(--radius-md);min-width:0}
.settings-card h2{font-size:var(--text-lg);font-weight:800;letter-spacing:-.035em}
.settings-card .section-title{flex-wrap:wrap}
.settings-caption{font-size:var(--text-sm);color:var(--color-muted);margin:8px 0 24px}
.settings-hint,.sync-times{font-size:.73rem;line-height:1.8;color:var(--color-muted);margin-top:16px;overflow-wrap:anywhere}
.theme-choices{display:flex;flex-wrap:wrap;gap:8px}
.theme-choices button{border:var(--rule-default);border-radius:var(--radius-sm);background:var(--color-paper);padding:10px 12px;min-height:44px;font-size:var(--text-sm)}
.theme-choices button[aria-pressed="true"]{background:var(--color-accent-soft);color:var(--color-accent);border-color:var(--color-accent)}
.profile-button{width:100%;text-align:left;background:var(--color-transparent);color:var(--color-rail-text);font:inherit;white-space:normal}
.profile-button>div{min-width:0}.profile-button strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.session-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;border-top:var(--rule-default);padding:20px 0}
.session-row>div{flex:1;min-width:180px}.session-row strong{font-size:var(--text-sm)}
.session-agent{font-size:.65rem;color:var(--color-muted);max-width:70ch;overflow-wrap:anywhere;margin:6px 0}
.session-row small{font-size:.65rem;color:var(--color-muted)}
.sync-status{display:block;font-size:var(--text-sm);font-weight:700}
.privacy-note{background:var(--color-wash);border-radius:var(--radius-sm);padding:16px;font-size:.72rem;line-height:1.8;color:var(--color-secondary);margin-top:24px}
.owner-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
#invitation-result{margin-top:24px;padding-block:20px;border-block:var(--rule-default)}
#invitation-code{font-size:.72rem;letter-spacing:.02em}
.members-heading{font-size:var(--text-base);margin-top:28px}
.member-row{display:flex;align-items:center;gap:12px;padding:16px 0;border-bottom:var(--rule-default)}
.member-avatar{width:36px;height:36px;display:grid;place-items:center;border-radius:50%;background:var(--color-wash);font-size:var(--text-sm)}
.member-row strong{font-size:var(--text-sm)}.member-row small{display:block;color:var(--color-muted);font-size:.68rem}
.member-row>.count-badge{margin-left:auto}
.upload-label{cursor:pointer}.upload-label:focus-within{outline:3px solid var(--color-focus);outline-offset:3px}
.topbar-right{display:flex;gap:8px;align-items:center}
.topbar .demo-badge{display:none}
.theme-toggle{width:44px;height:44px}
.nav-item [data-icon="user"] .icon{width:18px;height:18px}
@media(min-width:40rem){
 .auth-panel{padding:72px 40px}
 .account-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .settings-wide{grid-column:1 / -1}
 .topbar .demo-badge{display:inline}
}
@media(min-width:64rem){
 .auth-view{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}
 .auth-story{display:flex;flex-direction:column;justify-content:space-between;padding:44px 52px;background:var(--color-rail);color:var(--color-rail-text)}
 .auth-brand{font:600 30px var(--font-display);letter-spacing:-1.5px}.auth-brand span{font-weight:400}.auth-brand b{color:var(--color-mint)}
 .auth-story-tag{font-size:.78rem;color:var(--color-mint);margin-bottom:20px}
 .auth-story h2{font-size:clamp(2.2rem,4vw,3.4rem);letter-spacing:-.05em;line-height:1.15}
 .auth-story h2+p{font-size:var(--text-sm);line-height:1.9;color:var(--color-rail-muted);margin-top:24px}
 .auth-story-detail{display:flex;align-items:center;gap:20px;margin-top:48px;padding-top:28px;border-top:1px solid var(--color-rail-soft)}
 .auth-story-detail>span{font:500 58px var(--font-display);color:var(--color-mint);letter-spacing:-3px}
 .auth-story-detail>div{font-size:var(--text-base);line-height:1.7}.auth-story-detail small,.auth-story-footer{font-size:.7rem;color:var(--color-rail-muted)}
 .auth-mobile-brand{display:none}
 .profile-button{margin-inline:-18px;width:calc(100% + 36px)}
 .nav-item[data-nav="account"]{margin-top:4px}
}
@media(min-width:94rem){.profile-button{margin-inline:-23px;width:calc(100% + 46px)}}
@media(hover:hover){.field input:hover{background:var(--color-wash)}.theme-choices button:hover{border-color:var(--color-accent)}.profile-button:hover{background:var(--color-rail-soft)}}

.auth-boot{display:grid;place-items:center;min-height:100dvh;color:var(--color-muted);font-size:var(--text-sm)}
/* Three mobile destinations retain full touch targets at narrow widths. */
.main-nav .nav-item{position:relative;min-width:0;flex-direction:column;gap:4px;font-size:.65rem;min-height:52px}
.main-nav .nav-count{position:absolute;top:2px;right:7px;font-size:.58rem;padding:0 4px}
@media(min-width:40rem){.main-nav .nav-item{flex-direction:row;gap:9px;font-size:.75rem}.main-nav .nav-count{position:static;padding:1px 6px;font-size:.7rem;margin-left:4px}}
@media(min-width:64rem){.main-nav .nav-item{min-height:44px}.main-nav .nav-count{margin-left:auto}}

/* Keep all status filters readable on the narrowest phones. */
.filter-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}
.filter-tab{min-width:0}
@media(min-width:22rem){.filter-tabs{display:flex;gap:2px}}

/* Keep password checks usable with the iPhone keyboard and password managers. */
.password-control{display:flex;align-items:stretch;min-width:0;border:var(--rule-default);border-radius:var(--radius-sm);background:var(--color-surface)}
.password-control input{flex:1;border:0;background:transparent;width:0;min-width:0}
.password-toggle{flex:0 0 auto;min-width:78px;min-height:46px;padding:0 12px;background:transparent;color:var(--color-accent);font-size:.75rem;font-weight:700;border-radius:var(--radius-sm)}
.field .input-hint{color:var(--color-error)}
.input-hint:empty{display:none}
@media(max-width:40rem){.auth-card input{font-size:16px}}
