/* Account management: one clear hierarchy, shared by desktop and mobile. */
[data-account-workspace] { --account-soft:#f2f2eb; --account-green:#405440; --account-amber:#875c24; }
[data-account-workspace] :where(a,button,input,select,summary):focus-visible { outline:2px solid #405440; outline-offset:4px; }
[data-account-workspace] .account-workspace-rail { padding-top:24px; }
.account-navigation-summary { display:none; }
[data-account-workspace] .account-workspace-rail nav { display:block; overflow:visible; }
.account-navigation .account-nav-group { margin-top:25px; }
.account-navigation .account-nav-label { margin:0 12px 8px; color:var(--muted); font-size:10px; font-weight:650; letter-spacing:.09em; line-height:1.7; text-transform:uppercase; }
.account-navigation nav a { display:flex; gap:10px; align-items:center; justify-content:space-between; min-height:44px; padding:10px 12px; border-radius:5px; color:var(--muted); font-size:13px; line-height:1.5; }
.account-navigation nav a>span { color:#8c9285; }
.account-navigation nav a:hover { background:#f0f0e9; color:var(--ink); }
.account-navigation nav a[aria-current=page] { background:#e9ece2; color:#354a35; font-weight:650; }
.account-workspace-content .account-settings-page { max-width:1120px!important; }
.account-identity-strip.settings-account-summary { padding:18px 0 24px; margin:0 0 28px; background:transparent; border:0; border-bottom:1px solid var(--line); border-radius:0; gap:16px; }
.account-identity-strip .account-settings-identity>span { width:40px; height:40px; font-size:17px; }
.account-identity-strip .account-settings-identity strong { font-size:14px; }
.account-identity-strip .account-settings-identity small { font-size:12px; }
.account-identity-strip .settings-summary-meta { width:auto; padding:0; border:0; margin-left:auto; }
.account-organization.account-settings-directory { display:block; }
.account-albums-feature { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:22px 32px; padding:30px; background:#edefe5; border:1px solid #d9dfcf; border-radius:8px; }
.account-albums-feature-copy { display:flex; align-items:flex-start; gap:18px; min-width:0; }
.account-feature-icon { display:grid; place-items:center; flex:none; width:44px; height:48px; border:1px solid #bcc8b0; border-radius:5px; color:#405440; }
.account-albums-feature .settings-eyebrow { margin:0 0 6px; color:#53654c; }
.account-albums-feature h2 { font-size:24px; line-height:1.4; letter-spacing:-.02em; }
.account-albums-feature-copy p:last-child { margin:10px 0 0; max-width:490px; font-size:13px; line-height:1.8; color:#596251; }
.account-albums-feature-action.ui-button { min-height:46px; border-radius:5px; padding:12px 18px; background:#354635; color:white; border:1px solid #354635; font-size:12px; font-weight:650; text-align:center; line-height:1.7; }
.account-albums-feature-action:hover { background:#273827; }
.account-albums-feature-signals { grid-column:1/-1; display:flex; flex-wrap:wrap; gap:12px 25px; margin:0; padding:18px 0 0 62px; list-style:none; border-top:1px solid #d6ddcb; color:#596251; font-size:11px; }
.account-albums-feature-signals li::before { content:'✓'; margin-right:8px; color:#506944; }
.account-settings-lower { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); gap:40px; margin-top:38px; }
.account-settings-group-heading { margin-bottom:17px; }
.account-settings-group-heading h2 { font-size:17px; font-weight:650; }
.account-settings-group-heading p { margin:7px 0 0; color:var(--muted); font-size:12px; line-height:1.8; }
.account-settings-rows,.account-tool-rows { border-top:1px solid var(--line); }
.account-settings-row,.account-tool-row { display:flex; align-items:center; gap:15px; padding:20px 6px; border-bottom:1px solid var(--line); min-height:87px; transition:background .15s; }
.account-settings-row:hover,.account-tool-row:hover { background:#f1f2eb; }
.account-settings-row .account-settings-icon,.account-tool-row .account-settings-icon { flex:none; display:grid; place-items:center; width:32px; color:#65715e; }
.account-settings-link-copy { min-width:0; flex:1; }
.account-settings-link-copy h3 { font-size:14px; font-weight:650; }
.account-settings-link-copy p { margin:5px 0 0; color:var(--muted); font-size:12px; line-height:1.7; }
.account-settings-arrow { margin-left:auto; padding:0 6px; color:#838b7e; font-size:22px; }
.account-context-note { padding:21px 0; color:var(--muted); }
.account-context-note h3 { color:#5f6958; font-size:12px; font-weight:650; }
.account-context-note p { margin:8px 0 0; font-size:12px; line-height:1.9; }
.account-context-note a { display:inline-flex; align-items:center; min-height:44px; margin-top:7px; font-size:12px; color:#405440; text-decoration:underline; text-underline-offset:4px; }
[data-account-menu-panel] { max-height:calc(100dvh - 6rem); overflow-y:auto; overscroll-behavior:contain; }
.account-menu-divider { margin:7px 10px; border:0; border-top:1px solid var(--line); }
/* Album states keep access, payment and retention distinct. */
.account-albums-page,.account-trash-page { max-width:1240px!important; width:100%; padding:0!important; }
.account-albums-header,.account-trash-header { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; margin-bottom:28px; }
.account-albums-header .page-title,.account-trash-header h1 { font-size:30px; font-weight:650; line-height:1.4; letter-spacing:-.025em; margin:7px 0 10px; }
.account-albums-header .page-subtitle,.account-trash-header p:last-child { max-width:690px; font-size:13px; color:var(--muted); line-height:1.9; }
.album-library-link { min-height:44px; display:flex; align-items:center; flex:none; color:#4d6045; font-size:12px; text-decoration:underline; text-underline-offset:4px; }
.account-album-summary,.account-trash-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; padding:22px 0; margin-bottom:24px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.account-album-summary>a,.account-trash-summary>div { padding:2px 22px; display:flex; flex-direction:column; gap:7px; border-right:1px solid var(--line); }
.account-album-summary>a:first-child,.account-trash-summary>div:first-child { padding-left:0; }
.account-album-summary>a:last-child,.account-trash-summary>div:last-child { border:0; }
.account-album-summary strong,.account-trash-summary dd { font-size:29px; line-height:1.2; font-weight:600; font-variant-numeric:tabular-nums; }
.account-album-summary span,.account-trash-summary dt { font-size:12px; color:var(--muted); line-height:1.7; }
.account-trash-summary dd { order:-1; margin:0; }
.account-album-summary .has-deadline strong { color:var(--account-amber); }
.account-album-summary>a:hover span { text-decoration:underline; text-underline-offset:4px; }
.account-album-filters,.account-trash-tabs { display:flex; flex-wrap:wrap; gap:6px; padding-bottom:20px; }
.account-album-filters a,.account-trash-tabs a { min-height:40px; display:inline-flex; align-items:center; gap:9px; padding:8px 13px; font-size:12px; border:1px solid transparent; border-radius:5px; color:var(--muted); }
.account-album-filters a:hover,.account-trash-tabs a:hover { border-color:#ced3c5; }
.account-album-filters a[aria-current=page],.account-trash-tabs a[aria-current=page] { color:#354a35; background:#e9ece2; border-color:#d5dccb; font-weight:650; }
.account-album-filters a>span,.account-trash-tabs a>span { font-size:10px; padding:1px 5px; background:#fff9; border-radius:3px; }
.account-album-search,.account-trash-filters { display:flex; align-items:end; flex-wrap:wrap; gap:12px; padding:17px; background:#f0f1eb; border-radius:6px; }
.account-album-search>label:first-of-type { flex:1; min-width:180px; }
.account-album-search label,.account-trash-filters label { display:grid; gap:7px; min-width:0; font-size:11px; }
.account-album-search .ui-field,.account-trash-filters select { min-height:44px; width:100%; padding:10px 12px; border:1px solid #cbd0c2; border-radius:4px; background:white; color:var(--ink); font-size:12px; }
.account-album-search button,.account-trash-filters button,.account-trash-controls button { min-height:44px; padding:10px 16px; border:1px solid #bdc5b4; background:transparent; border-radius:4px; color:#405440; font-size:12px; font-weight:600; }
.account-album-search>a,.account-trash-filters>a { display:inline-flex; align-items:center; min-height:44px; font-size:12px; text-decoration:underline; }
.account-album-result-count { font-size:11px; color:var(--muted); margin:20px 0 12px; }
.account-albums-table { width:100%; border-collapse:collapse; table-layout:fixed; }
.account-albums-table thead th { text-align:left; color:var(--muted); font-size:10px; font-weight:650; padding:13px 12px; background:#f2f3ed; }
.account-albums-table th:first-child { width:25%; }
.account-albums-table th:nth-child(2) { width:16%; }
.account-albums-table th:nth-child(3) { width:20%; }
.account-albums-table th:nth-child(4) { width:24%; }
.account-albums-table th:last-child { width:15%; }
.account-albums-table tbody th,.account-albums-table td { vertical-align:top; padding:23px 12px; text-align:left; border-bottom:1px solid var(--line); overflow-wrap:anywhere; }
.account-albums-table tbody th { font-weight:400; }
.album-row-title { display:inline-block; font-size:14px; font-weight:650; line-height:1.6; }
.album-row-title:hover { text-decoration:underline; text-underline-offset:4px; }
.album-row-type { display:block; margin-top:7px; font-size:11px; color:var(--muted); }
.album-status { display:inline-flex; padding:5px 8px; font-size:10px; line-height:1.6; font-weight:600; border-radius:4px; background:#efeee8; color:#63675d; }
.album-status--active { background:#eaf0e1; color:#3f5735; }
.album-status--expired { background:#f3e9df; color:#85552b; }
.album-plan-name { display:block; font-size:12px; line-height:1.7; }
.album-payment,.album-activation-pending { display:block; margin-top:5px; font-size:11px; color:var(--muted); line-height:1.7; }
.album-payment.is-paid { color:#405c34; }
.album-payment.is-paid::before { content:'✓ '; }
.album-activation-pending { color:#875c24; }
.album-deadlines { display:grid; gap:13px; }
.album-deadline { display:grid; gap:2px; font-size:11px; line-height:1.6; }
.album-deadline>span { color:var(--muted); font-size:10px; }
.album-deadline strong { font-weight:600; }
.album-deadline small { font-size:10px; }
.album-deadline.is-soon { color:#875c24; }
.album-deadline.is-elapsed { color:#91664c; }
.album-no-deadline,.album-deadlines+small { font-size:11px; color:var(--muted); line-height:1.7; }
.album-manage-link { display:inline-flex; align-items:center; min-height:44px; gap:4px; font-size:11px; color:#405440; line-height:1.7; text-decoration:underline; text-underline-offset:4px; }
.account-album-explainer { padding:25px 0 0; max-width:850px; }
.account-album-explainer strong { font-size:12px; font-weight:600; }
.account-album-explainer p { font-size:11px; color:var(--muted); line-height:1.9; margin-top:7px; }
.account-albums-empty,.account-trash-empty { padding:48px 20px; text-align:center; border-bottom:1px solid var(--line); }
.account-albums-empty h2,.account-trash-empty h2 { font-size:20px; }
.account-albums-empty p,.account-trash-empty p { margin:12px auto 20px; max-width:560px; color:var(--muted); font-size:13px; line-height:1.9; }
.account-albums-empty .ui-button { display:inline-flex; align-items:center; min-height:44px; padding:10px 18px; background:#354635; color:white; border-radius:4px; font-size:12px; }
/* Recovery actions stay prominent; permanent deletion requires confirmation. */
.account-trash-page [hidden] { display:none!important; }
.account-trash-header { display:block; }
.account-trash-retention { padding:16px 20px; margin:0 0 24px; background:#f2f0e7; border-left:2px solid #b2a47d; }
.account-trash-retention strong { font-size:12px; }
.account-trash-retention p { margin:6px 0 0; font-size:12px; line-height:1.8; color:#71664f; }
.account-trash-filters { margin:0 0 28px; }
.account-trash-filters label { flex:1; min-width:160px; }
.account-trash-section { margin:0 0 35px; }
.account-trash-section>header { display:flex; align-items:center; justify-content:space-between; gap:15px; flex-wrap:wrap; margin:0 0 16px; }
.account-trash-section h2 { font-size:18px; font-weight:600; }
.account-trash-section h2>span { margin-left:8px; color:var(--muted); font-size:12px; }
.account-trash-controls { display:flex; align-items:center; flex-wrap:wrap; gap:10px; }
.account-trash-event-list { display:grid; gap:12px; }
.account-trash-event { display:flex; align-items:center; gap:18px; justify-content:space-between; border:1px solid var(--line); border-radius:6px; background:white; padding:21px; }
.account-trash-card-copy { flex:1; min-width:0; }
.account-trash-card-copy h3,.account-trash-media-copy h3 { font-size:14px; font-weight:600; overflow-wrap:anywhere; }
.account-trash-card-copy p,.account-trash-media-copy p { font-size:11px; line-height:1.8; color:var(--muted); margin-top:6px; }
.account-trash-deadline { display:block; margin-top:10px; font-size:11px; color:#69745e; line-height:1.8; }
.account-trash-deadline.is-urgent { color:#895b2a; }
.account-trash-actions { display:flex; flex-wrap:wrap; align-items:center; gap:8px 14px; }
.account-trash-actions form { margin:0; }
.account-trash-restore { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:9px 14px; font-size:12px; font-weight:600; background:#eaf0e3; color:#3a5233; border:1px solid #c5d0b8; border-radius:4px; }
.account-trash-delete { min-height:44px; padding:8px 0; font-size:11px; color:#8a5345; background:transparent; }
.account-trash-delete:hover { text-decoration:underline; text-underline-offset:4px; }
.account-trash-media-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.account-trash-media { position:relative; min-width:0; border:1px solid var(--line); background:white; border-radius:6px; overflow:hidden; }
.account-trash-preview { display:block; position:relative; background:#eceee5; aspect-ratio:4/3; width:100%; overflow:hidden; color:#7c8970; }
.account-trash-preview img,.account-trash-preview video { width:100%; height:100%; object-fit:cover; }
.account-trash-media-copy { padding:16px; }
.account-trash-media .account-trash-actions { padding:0 16px 14px; }
.account-trash-selector,.account-trash-select-all { display:flex; align-items:center; gap:9px; font-size:12px; min-height:36px; cursor:pointer; }
.account-trash-selector input,.account-trash-select-all input { width:18px; height:18px; accent-color:#405440; }
.account-trash-media>.account-trash-selector { padding:10px 14px; background:#f3f5ed; }
.account-trash-select-all { margin-bottom:14px; }
.account-trash-page article[data-selected=true] { outline:2px solid #617752; outline-offset:1px; }
.account-trash-scope { border-top:1px solid var(--line); padding-top:20px; font-size:12px; line-height:1.9; color:var(--muted); }
.account-trash-scope a { display:inline-flex; align-items:center; min-height:44px; color:#405440; text-decoration:underline; text-underline-offset:4px; }
@media(max-width:1200px) {
 .account-albums-feature { grid-template-columns:1fr; }
 .account-albums-feature-action { justify-self:start; margin-left:62px; }
 .account-settings-lower { gap:26px; }
 .account-albums-header { flex-direction:column; gap:8px; }
 .account-trash-media-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:980px) {
 .account-settings-lower { grid-template-columns:1fr; gap:30px; }
 .account-identity-strip .settings-summary-meta { width:100%; margin-left:0; justify-content:space-between; }
 .account-albums-table,.account-albums-table tbody { display:block; width:100%; }
 .account-albums-table thead { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
 .account-albums-table tr { display:grid; grid-template-columns:1fr 1fr; gap:0 20px; padding:20px 0; border-bottom:1px solid var(--line); }
 .account-albums-table tbody th { display:block; grid-column:1/-1; width:auto!important; padding:0 0 15px; border:0; }
 .account-albums-table td { padding:10px 0; border:0; }
 .account-albums-table td::before { content:attr(data-label); display:block; margin:0 0 8px; color:var(--muted); font-size:10px; }
 .account-albums-table td:last-child { display:flex; flex-direction:column; align-items:flex-start; justify-content:flex-end; }
 .account-album-search label:nth-of-type(2) { flex:1; }
 .account-trash-event { align-items:flex-start; flex-wrap:wrap; }
 .account-trash-event .account-trash-actions { width:100%; }
}
@media(max-width:700px) {
 [data-account-workspace] .account-workspace-rail { padding:12px 16px; background:#f7f7f1; }
 [data-account-workspace] .account-workspace-rail>h2 { display:none; }
 .account-navigation { margin-top:9px; }
 .account-navigation-summary { display:flex; align-items:center; justify-content:space-between; gap:15px; list-style:none; min-height:50px; cursor:pointer; }
 .account-navigation-summary::-webkit-details-marker { display:none; }
 .account-navigation-summary>span:first-child { display:grid; gap:3px; }
 .account-navigation-summary small { font-size:10px; color:var(--muted); }
 .account-navigation-summary strong { font-size:13px; font-weight:650; }
 .account-navigation[open] .account-navigation-summary>span:last-child { transform:rotate(180deg); }
 [data-account-workspace] .account-navigation nav { display:block; padding:14px 0 4px; border-top:1px solid var(--line); margin-top:10px; }
 [data-account-workspace] .account-navigation:not([open]) nav { display:none; }
 [data-account-workspace] .account-navigation nav a { padding:10px 12px; min-height:44px; border-radius:4px; font-size:13px; }
 [data-account-workspace] .account-navigation nav a[aria-current=page] { background:#e9ece2; border:0; }
 [data-account-workspace] .account-navigation nav a>span { display:inline; }
 .account-navigation .account-nav-group { margin-top:19px; }
 .account-identity-strip.settings-account-summary { padding:0 0 20px; margin-bottom:22px; }
 .account-albums-feature { padding:23px 20px 18px; gap:20px; }
 .account-albums-feature-copy { gap:13px; }
 .account-feature-icon { width:34px; height:38px; }
 .account-albums-feature h2 { font-size:21px; }
 .account-albums-feature-copy p:last-child { font-size:12px; }
 .account-albums-feature-action.ui-button { margin-left:0; width:100%; }
 .account-albums-feature-signals { padding:16px 0 0; gap:9px 16px; font-size:10px; }
 .account-settings-lower { margin-top:28px; }
 .account-settings-row,.account-tool-row { padding:18px 2px; gap:10px; }
 .account-albums-header .page-title,.account-trash-header h1 { font-size:26px; }
 .account-album-summary,.account-trash-summary { padding:18px 0; }
 .account-album-summary>a,.account-trash-summary>div { padding:0 10px; }
 .account-album-summary strong,.account-trash-summary dd { font-size:24px; }
 .account-album-summary span,.account-trash-summary dt { font-size:10px; }
 .account-album-filters,.account-trash-tabs { gap:5px; }
 .account-album-filters a,.account-trash-tabs a { padding:8px 10px; font-size:11px; }
 .account-album-search,.account-trash-filters { padding:13px; gap:10px; }
 .account-album-search>label:first-of-type { flex-basis:100%; }
 .account-album-search label:nth-of-type(2) { width:calc(100% - 95px); }
 .account-albums-table tr { gap:0 14px; }
 .account-trash-section>header { align-items:flex-start; }
 .account-trash-controls { width:100%; }
 .account-trash-event { padding:18px; gap:12px; }
 .account-trash-media-grid { gap:12px; }
 .account-trash-media-copy { padding:12px; }
 .account-trash-media .account-trash-actions { padding:0 12px 12px; }
 .account-trash-media .account-trash-actions form { width:100%; }
 .account-trash-media .account-trash-restore { width:100%; }
}
@media(max-width:380px) { .account-trash-media-grid { grid-template-columns:1fr; } .account-album-filters a { padding:8px; } }
@media(prefers-reduced-motion:reduce) { .account-settings-row,.account-tool-row { transition:none; } }

.account-trash-preview>span { position:absolute; bottom:10px; left:10px; padding:3px 7px; background:#f8f8f0ed; color:#43553b; border-radius:3px; font-size:10px; }
.account-trash-deadline>strong,.account-trash-deadline>span,.account-trash-deadline>small { display:block; }

.account-trash-retention summary { cursor:pointer; min-height:30px; line-height:30px; font-size:12px; }
.account-trash-retention summary:focus-visible { outline:2px solid #405440; outline-offset:4px; }
.account-trash-section header .account-trash-scope { border:0; padding-top:6px; margin-top:0; }
