/* Official letters: readable, quiet and consistent with the association website. */
.ann-page,.ann-admin { --ann-paper:var(--cmuaa-paper,#fbfafc); --ann-white:var(--cmuaa-white,#fff); --ann-ink:var(--cmuaa-ink,#302836); --ann-purple:var(--cmuaa-purple,#47265e); --ann-muted:var(--cmuaa-muted,#706575); --ann-line:var(--cmuaa-line,#e4dfe7); --ann-soft:var(--cmuaa-purple-soft,#f1edf5); --ann-gold:var(--cmuaa-gold,#8b6426); color:var(--ann-ink); font-family:'Google Sans',sans-serif; font-size:16px; line-height:1.75; }
.ann-page *,.ann-admin * { box-sizing:border-box; }
.ann-page { padding-top:32px; padding-bottom:100px; }
.ann-page a { color:var(--ann-purple); }
.ann-page a:hover { text-decoration:underline; text-underline-offset:5px; }
.ann-page :is(h1,h2,h3,p) { margin:0; }
.ann-page :is(a,button,input,select,textarea):focus-visible { outline:3px solid var(--ann-gold); outline-offset:4px; }
.ann-crumb { display:flex; gap:12px; flex-wrap:wrap; font-size:13px; color:var(--ann-muted); margin-bottom:60px; }
.ann-intro { display:grid; grid-template-columns:1.1fr 1fr; gap:48px; align-items:end; padding-bottom:48px; }
.ann-page .ann-eyebrow { color:var(--ann-gold); font-size:12px; font-weight:600; letter-spacing:.1em; margin-bottom:16px; }
.ann-intro h1 { font-size:clamp(42px,4.5vw,68px); font-weight:600; line-height:1.45; letter-spacing:-.025em; color:var(--ann-ink); }
.ann-intro h1 span { display:block; color:var(--ann-purple); }
.ann-intro>p { color:var(--ann-muted); font-size:17px; padding-bottom:10px; }
.ann-intro>p span { display:block; margin-top:16px; font-size:14px; }
.ann-search { display:grid; grid-template-columns:minmax(0,1fr) minmax(180px,.4fr) auto; gap:20px; align-items:end; padding:24px 0 30px; border-top:1px solid var(--ann-line); border-bottom:1px solid var(--ann-line); margin-bottom:36px; }
.ann-field { display:flex; flex-direction:column; gap:8px; min-width:0; font-weight:400; margin:0; }
.ann-field>span { font-size:14px; color:var(--ann-muted); }
.ann-field :is(input,select,textarea) { width:100%; min-width:0; min-height:48px; padding:10px 14px; border:1px solid var(--ann-line); border-radius:9px; background:var(--ann-white); color:var(--ann-ink); font:inherit; font-size:16px; line-height:1.6; }
.ann-field textarea { resize:vertical; min-height:150px; }
.ann-field small,.ann-help { color:var(--ann-muted); font-size:13px; }
.ann-button { display:inline-flex; justify-content:center; align-items:center; gap:24px; min-height:48px; padding:11px 22px; border:1px solid var(--ann-purple); border-radius:9px; background:var(--ann-purple); color:var(--ann-white)!important; font:inherit; font-size:14px; font-weight:600; text-decoration:none!important; cursor:pointer; transition:opacity .18s,transform .18s; }
.ann-button:hover { opacity:.85; }
.ann-button:active { transform:translateY(1px); }
.ann-button:disabled { opacity:.65; cursor:wait; }
.ann-button.ann-button-quiet { background:transparent; border-color:var(--ann-line); color:var(--ann-purple)!important; }
.ann-list-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:24px; }
.ann-list-heading h2 { font-size:23px; font-weight:600; }
.ann-list-heading>span { font-size:13px; color:var(--ann-muted); }
.ann-row { display:grid; grid-template-columns:76px minmax(0,1fr) auto; gap:26px; padding:30px 0; border-bottom:1px solid var(--ann-line); align-items:start; }
.ann-document-mark { aspect-ratio:3/4; border:1px solid var(--ann-line); border-top:3px solid var(--ann-gold); border-radius:2px; background:var(--ann-white); display:flex; flex-direction:column; justify-content:space-between; padding:10px; color:var(--ann-purple); }
.ann-document-mark span { font-size:9px; letter-spacing:.05em; }
.ann-document-mark strong { font-size:15px; font-weight:500; }
.ann-page .ann-meta { display:flex; gap:10px 24px; flex-wrap:wrap; color:var(--ann-muted); font-size:13px; margin-bottom:9px; font-variant-numeric:tabular-nums; }
.ann-row h3 { font-size:22px; font-weight:500; line-height:1.6; overflow-wrap:anywhere; }
.ann-page .ann-excerpt { margin-top:8px; color:var(--ann-muted); font-size:14px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; overflow-wrap:anywhere; }
.ann-row-copy small { display:block; margin-top:12px; color:var(--ann-muted); font-size:12px; }
.ann-read { display:flex; align-items:center; gap:26px; white-space:nowrap; font-size:14px; margin-top:30px; }
.ann-empty { padding:64px 24px; background:var(--ann-soft); text-align:center; border-radius:12px; }
.ann-empty h3 { font-size:24px; margin:14px 0; }
.ann-empty p { color:var(--ann-muted); margin-bottom:20px; }
.ann-paper-icon { font-size:36px; color:var(--ann-gold); }
.ann-pagination { display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:20px; margin-top:36px; font-size:14px; }
.ann-detail-header { max-width:960px; margin-bottom:28px; }
.ann-detail-header h1 { font-size:clamp(28px,3.5vw,44px); line-height:1.6; font-weight:600; margin-bottom:22px; overflow-wrap:anywhere; }
.ann-description { max-width:850px; margin-bottom:28px; overflow-wrap:anywhere; }
.ann-detail-actions { display:flex; flex-wrap:wrap; gap:12px; margin-bottom:28px; }
.ann-viewer { padding:16px; border:1px solid var(--ann-line); border-radius:12px; background:var(--ann-white); }
.ann-viewer iframe { display:block; width:100%; height:75vh; min-height:420px; border:0; background:var(--ann-soft); }
.ann-viewer img { display:block; width:auto; max-width:100%; height:auto; margin:0 auto; }
.ann-viewer p { font-size:13px; color:var(--ann-muted); padding:14px 2px 0; }
.ann-back { display:inline-block; margin-top:28px; }
.ann-admin { margin:0; background:var(--ann-paper); }
.ann-admin [hidden] { display:none!important; }
.ann-admin-header { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:20px max(24px,calc((100vw - 1200px)/2)); border-bottom:1px solid var(--ann-line); background:var(--ann-white); font-size:14px; }
.ann-admin a { color:var(--ann-purple); }
.ann-admin-main { max-width:1248px; margin:0 auto; padding:40px 24px 80px; }
.ann-admin h1 { font-size:32px; line-height:1.5; }
.ann-panel { padding:28px; border:1px solid var(--ann-line); background:var(--ann-white); border-radius:14px; margin-bottom:24px; }
.ann-panel h2 { font-size:21px; margin-bottom:20px; line-height:1.65; font-weight:600; }
.ann-panel>p { color:var(--ann-muted); margin-bottom:18px; }
.ann-panel .ann-eyebrow { margin-bottom:8px; }
.ann-form-layout { display:grid; grid-template-columns:minmax(0,1fr) 290px; gap:24px; }
.ann-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.ann-span { grid-column:1/-1; }
.ann-upload { padding:22px; border:1px dashed var(--ann-line); border-radius:10px; background:var(--ann-paper); }
.ann-upload input { border:0; padding:8px 0; font-size:14px; }
.ann-upload input::file-selector-button { background:var(--ann-purple); color:#fff; border:0; border-radius:6px; padding:10px 14px; margin-right:12px; font:inherit; cursor:pointer; }
.ann-current-file { padding:16px 0; border-block:1px solid var(--ann-line); margin-bottom:20px; display:flex; gap:12px; flex-wrap:wrap; justify-content:space-between; font-size:14px; }
.ann-panel .ann-file-feedback { overflow-wrap:anywhere; font-size:13px; margin-top:12px; margin-bottom:0; }
.ann-file-feedback.has-error { color:#a33131; }
.ann-help { margin-top:18px; }
.ann-save-bar { position:sticky; bottom:0; display:flex; align-items:center; gap:22px; justify-content:flex-end; padding:18px 22px; border:1px solid var(--ann-line); border-radius:12px; background:var(--ann-white); box-shadow:0 -4px 20px #47265e06; z-index:3; }
.ann-save-bar>span { margin-right:auto; font-size:13px; color:var(--ann-muted); }
.ann-success,.ann-notice { padding:22px; margin-bottom:24px; border:1px solid #c7ded1; border-radius:10px; background:#edf7f1; color:#24553c; }
.ann-notice { border-color:#e8cbcb; background:#fff4f2; color:#863c35; }
.ann-notice h2 { font-size:20px; }
.ann-notice p { font-size:13px; }
.ann-table-wrap { overflow-x:auto; background:var(--ann-white); border:1px solid var(--ann-line); border-radius:12px; }
.ann-table { width:100%; border-collapse:collapse; min-width:650px; text-align:left; font-size:14px; }
.ann-table :is(th,td) { padding:20px; border-bottom:1px solid var(--ann-line); vertical-align:top; }
.ann-table th { font-weight:500; color:var(--ann-muted); background:var(--ann-soft); }
.ann-table td:first-child { width:48%; }
.ann-table strong { font-weight:500; }
.ann-table small { display:block; color:var(--ann-muted); }
.ann-status { display:inline-block; padding:3px 9px; background:var(--ann-soft); font-size:12px; white-space:nowrap; }
.ann-status.is-published { color:#24553c; background:#edf7f1; }
.ann-saving { position:fixed; inset:0; background:#25182d66; display:flex; align-items:center; justify-content:center; padding:20px; z-index:99999; }
.ann-saving>div { width:420px; max-width:100%; padding:36px; background:#fff; border-radius:16px; text-align:center; color:#302836; box-shadow:0 16px 60px #21112b20; }
.ann-saving h2 { font-size:24px; margin:16px 0 10px; }
.ann-saving p { color:#706575; font-size:14px; }
.ann-saving-line { display:block; width:100%; height:3px; background:linear-gradient(90deg,#eee7f2 25%,#47265e 50%,#eee7f2 75%); background-size:200%; animation:ann-saving 1.4s linear infinite; }
@keyframes ann-saving { to { background-position:-200% 0; } }
.cmuaa-page[data-color-theme=dark] .ann-button:not(.ann-button-quiet) { color:#25152f!important; }
@media(max-width:900px) { .ann-form-layout { grid-template-columns:1fr; } .ann-form-layout>aside { display:grid; grid-template-columns:1fr 1fr; gap:24px; } .ann-intro { gap:28px; } .ann-intro>p { font-size:15px; } }
@media(max-width:650px) {
  .ann-page { padding-top:22px; padding-bottom:60px; }
  .ann-crumb { margin-bottom:32px; }
  .ann-intro { grid-template-columns:1fr; gap:20px; padding-bottom:30px; }
  .ann-intro h1 { font-size:42px; }
  .ann-search { grid-template-columns:1fr 110px; gap:16px; }
  .ann-search>.ann-field:first-child { grid-column:1/-1; }
  .ann-search .ann-button { padding-inline:14px; gap:10px; }
  .ann-row { grid-template-columns:48px minmax(0,1fr); gap:18px; padding:24px 0; }
  .ann-document-mark { padding:6px; }
  .ann-document-mark span { font-size:6px; }
  .ann-document-mark strong { font-size:11px; }
  .ann-row h3 { font-size:19px; }
  .ann-read { grid-column:2; margin-top:0; justify-self:start; }
  .ann-meta { gap:4px 16px!important; }
  .ann-detail-actions { flex-direction:column; }
  .ann-viewer { padding:8px; }
  .ann-viewer iframe { min-height:400px; height:65vh; }
  .ann-admin-main { padding:28px 16px 50px; }
  .ann-admin-header { flex-wrap:wrap; padding:16px; font-size:13px; }
  .ann-admin-header strong { order:-1; width:100%; }
  .ann-admin h1 { font-size:27px; }
  .ann-list-heading { gap:12px; flex-wrap:wrap; }
  .ann-list-heading .ann-button { padding:10px 15px; }
  .ann-panel { padding:22px 18px; }
  .ann-form-grid,.ann-form-layout>aside { grid-template-columns:1fr; }
  .ann-form-layout>aside { gap:0; }
  .ann-save-bar { padding:14px; gap:12px; flex-wrap:wrap; }
  .ann-save-bar>span { width:100%; }
  .ann-save-bar .ann-button { flex:1; }
}
@media(prefers-reduced-motion:reduce) { .ann-saving-line { animation:none; } .ann-button { transition:none; } }
