/* Shared component measurements. Illustrated objects (TV, postcards, duck) keep their own silhouettes. */
:root{--radius-control:3px;--radius-panel:4px;--radius-soft:12px;--border-ui:1px solid var(--ink);--shadow-control:2px 2px 0 var(--ink);--space-control:12px;--space-panel:24px}
.window,dialog{border-radius:var(--radius-panel);border:var(--border-ui)}
body.window-soft .window{border-radius:var(--radius-soft)}
.window-bar{min-height:52px;padding:10px 16px;gap:12px;align-items:center}
.window-bar h2{line-height:1.3}
.window-pad{padding:var(--space-panel)}
.solid-button,.outline-button,.text-link,.tv-channel-button,.tv-key,.postcard-inks button,.gatherings-nav a,.archive-period button{border-radius:var(--radius-control)}
.solid-button,.outline-button,.text-link{min-height:44px;line-height:1.4;padding:10px 16px;display:inline-flex;align-items:center;justify-content:center;gap:8px;max-width:100%;white-space:normal}
.solid-button{box-shadow:var(--shadow-control)}
.window-control,.dialog-close,.roll-arrows button{border-radius:var(--radius-control);min-width:36px;min-height:36px;display:inline-grid;place-items:center;line-height:1;padding:4px}
.window-controls,.roll-arrows{gap:8px}
.view-buttons{border-radius:var(--radius-control)}
.view-buttons button{min-height:40px}
.contact-route,.membership-card,.member-shortcuts a,.shelf-starts a,.shelf-card,.dock{border-radius:var(--radius-panel)}
.page-directory a{border-radius:var(--radius-panel) var(--radius-panel) 0 0}
.club-form input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]),.club-form select,.club-form textarea,.setting-row select,.search-input,.postcard-note-label textarea,.account-form input{border-radius:var(--radius-control);min-height:44px;line-height:1.5}
button:disabled{cursor:not-allowed}
.solid-button:disabled,.outline-button:disabled,.window-control:disabled,.tv-key:disabled{opacity:.6;box-shadow:none}
:where(a,button,input,textarea,select,summary):focus-visible{outline:3px solid var(--blue);outline-offset:3px}
.form-feedback,[role=status]{overflow-wrap:anywhere}
.form-feedback:empty{margin:0;min-height:0}
.form-feedback.error{color:var(--tomato)}
.footer-link-row{flex-wrap:wrap;row-gap:0}
@media(max-width:760px){:root{--space-panel:20px}.window-bar{padding:10px 12px}.club-form input,.club-form textarea,.club-form select,.search-input,.setting-row select{font-size:16px}}
@media(pointer:coarse){.window-control,.dialog-close,.roll-arrows button{min-width:44px;min-height:44px}.view-buttons button{min-height:44px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Paper tabs: the same thin edge, paper stock and pressed state throughout. */
:root{--tab-shadow:2px 2px 0 var(--paper),3px 3px 0 var(--ink)}
.filter-button,.archive-sidebar .archive-period button,.gatherings-nav a,.guestbook-tags button{position:relative;min-height:44px;border:1px solid transparent;border-radius:4px 4px 2px 2px;background:transparent;color:var(--ink);box-shadow:none;transition:background-color .16s,box-shadow .16s,transform .16s}
.filter-button:hover,.archive-sidebar .archive-period button:hover,.gatherings-nav a:hover,.guestbook-tags button:hover{background:var(--paper);border-color:var(--line)}
.filter-button[aria-pressed=true],.archive-sidebar .archive-period button[aria-pressed=true],.gatherings-nav a[aria-current=page],.guestbook-tags button[aria-pressed=true]{background:var(--paper);color:var(--blue);border:1px solid var(--ink);box-shadow:var(--tab-shadow);font-weight:600}
.filter-button[aria-pressed=true] span{color:var(--blue)}
.page-directory{gap:8px;padding-top:12px}
.page-directory a{position:relative;background:var(--desktop);border:1px solid var(--ink);border-bottom:0;box-shadow:none}
.page-directory a[aria-current=page]{background:var(--paper);box-shadow:2px -2px 0 var(--desktop),3px -3px 0 var(--ink);color:var(--blue)}
.page-directory a[aria-current=page] strong{font-weight:650}
.page-directory a:first-child[aria-current=page]{border:1px solid var(--ink);border-radius:var(--radius-control);box-shadow:var(--tab-shadow);background:var(--paper)}
.record-tabs,.account-tabs{gap:8px;padding-top:4px}
.record-tabs button,.account-tabs button{min-height:44px;padding:10px 14px;border:1px solid var(--line);border-bottom:0;border-radius:4px 4px 0 0;background:var(--desktop);color:var(--ink)}
.record-tabs button[aria-selected=true],.account-tabs button[aria-selected=true]{border-color:var(--ink);background:var(--paper);color:var(--blue);box-shadow:2px -2px 0 var(--desktop),3px -3px 0 var(--ink);font-weight:600}
.view-buttons{border:0;overflow:visible;gap:6px;padding:1px 3px 3px 1px}
.view-buttons button{border:1px solid var(--line);border-radius:var(--radius-control);background:transparent;color:var(--ink)}
.view-buttons button[aria-pressed=true]{border-color:var(--ink);background:var(--paper);color:var(--blue);box-shadow:var(--tab-shadow);font-weight:600}
.solid-button,.outline-button,.text-link,.window-control,.dialog-close,.roll-arrows button{transition:background-color .16s,box-shadow .16s,transform .16s}
.outline-button,.text-link{background:var(--paper);box-shadow:1px 1px 0 var(--ink)}
.solid-button:active:not(:disabled),.outline-button:active:not(:disabled),.text-link:active:not(:disabled),.filter-button:active,.archive-period button:active,.view-buttons button:active{transform:translate(1px,1px);box-shadow:none}
/* Captions are notebook labels, rather than thick selection markers. */
.card-caption span,.gallery-card>span,.roll-caption,.reading-meta,.prep-label{border-left:0;padding-left:0}
.gallery-card>span,.roll-caption,.reading-meta{border-bottom:1px solid var(--line);padding-bottom:8px}
@media(max-width:760px){.page-directory{gap:5px;padding-inline:8px}.record-tabs{flex-wrap:wrap;gap:6px}.record-tabs button{padding-inline:10px}}
@media(prefers-reduced-motion:reduce){.filter-button,.archive-period button,.gatherings-nav a,.guestbook-tags button,.solid-button,.outline-button,.text-link,.window-control,.dialog-close,.roll-arrows button{transition:none}}
html.quiet-motion .filter-button,html.quiet-motion .archive-period button,html.quiet-motion .gatherings-nav a,html.quiet-motion .guestbook-tags button,html.quiet-motion .solid-button,html.quiet-motion .outline-button,html.quiet-motion .text-link,html.quiet-motion .window-control,html.quiet-motion .dialog-close,html.quiet-motion .roll-arrows button{transition:none}
@media(max-width:480px){.gatherings-nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.gatherings-nav a{padding:9px 5px;font-size:13px;text-align:center;display:flex;align-items:center;justify-content:center}}

/* Stable account slots: resolving permissions must not move the navigation. */
.system-nav .member-login{width:108px;flex:0 0 108px;white-space:nowrap}
.board-nav-slot{display:flex;align-items:center;justify-content:flex-end;width:104px;flex:0 0 104px;min-height:44px}
.system-nav .board-action-link{white-space:nowrap;display:inline-flex;align-items:center;min-height:44px;font-size:14px;margin:0}
html[data-has-membership=true] .membership-cards{display:none}
body[data-page=join] #member-state{min-height:300px}
.board-navigation{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 24px;padding:0 0 14px;border-bottom:1px solid var(--line)}
.board-navigation button{min-height:44px;padding:10px 16px;border:1px solid transparent;border-radius:4px 4px 2px 2px;background:none;color:var(--ink);font:inherit}
.board-navigation button[aria-pressed=true]{background:var(--paper);border-color:var(--ink);color:var(--blue);box-shadow:var(--tab-shadow);font-weight:600}
.board-panel[hidden],.board-panel [hidden],#collection-admin>.window[hidden]{display:none!important}
.board-starts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:24px}
.board-start{background:var(--paper);border:1px solid var(--ink);border-radius:4px;min-height:90px;text-align:left;padding:20px;font:600 20px/1.4 'Bricolage Grotesque',sans-serif;box-shadow:2px 2px var(--ink)}
.board-start:hover{background:var(--ice)}
.board-panel>.board-actions{margin-bottom:24px;min-height:130px}
.board-content-filters{display:grid;gap:12px;padding:16px;border-block:1px solid var(--line)}
.board-content-filters label{display:grid;gap:6px;font-size:13px}
.board-content-filters input,.board-content-filters select{width:100%;min-height:42px;border:1px solid var(--ink);border-radius:3px;padding:8px;background:var(--paper);color:var(--ink);font:inherit}
.board-content-filters p{font-size:13px;color:var(--muted);margin:0}
.board-panel .admin-grid{grid-template-columns:minmax(230px,.75fr) minmax(0,1.8fr);align-items:start}
.board-panel .admin-list{max-height:65vh;overflow:auto}
.editor-placeholder{padding:28px;background:var(--paper);border:1px solid var(--line);border-radius:4px}
.editor-placeholder h2{font-size:24px;margin-bottom:12px}
body[data-page=admin] .mise-contact,body[data-page=admin-collections] .mise-contact{display:none}
@media(max-width:760px){.system-nav{gap:12px;flex-wrap:nowrap}.system-nav .member-login{width:90px;flex-basis:90px}.board-nav-slot{width:80px;flex-basis:80px}.system-nav .board-action-link{display:inline-flex;font-size:12px}.board-panel .admin-grid{grid-template-columns:1fr}.board-panel .admin-list{max-height:280px}.board-navigation{gap:5px}.board-navigation button{padding:9px 10px;font-size:14px}.board-start{font-size:17px;padding:16px}}
@media(max-width:400px){.system-bar .system-nav{width:100%;justify-content:flex-end;gap:10px}.board-starts{grid-template-columns:1fr 1fr;gap:12px}}
.editor-advanced{border-block:1px solid var(--line);padding:14px 0}
.editor-advanced summary{cursor:pointer;min-height:30px;font-size:14px}
.board-panel .admin-list [data-edit][hidden]{display:none!important}
.board-panel .admin-list button:focus-visible{outline-offset:-3px}
body:has(#collection-admin) .mise-contact{display:none}
html[data-board-account=true] #member-admin-actions{display:block;min-height:130px}
#content-editor{scroll-margin-top:20px}
