
:root{--bg:#f6f4f4;--surface:#fff;--fg:#211b1c;--muted:#716467;--line:#e4dada;--garnet:#7a1f2b;--gold:#a9822d;--soft:#f4ead2}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg);font:14px/1.5 'Public Sans',sans-serif}header{background:var(--garnet);color:white;position:sticky;top:0;z-index:3}header .inner,main{max-width:1000px;margin:auto;padding:16px}h1,h2,h3{font-family:'Big Shoulders Display',Impact,sans-serif;text-transform:uppercase;letter-spacing:.02em}h1{font-size:32px;margin:0}h1 span{color:#ebc777}h2{font-size:29px;margin:0 0 12px}h3{font-size:22px;margin:0 0 8px}.top{display:flex;justify-content:space-between;align-items:center;gap:12px}.nav{display:flex;overflow-x:auto;gap:5px;padding-top:12px}.nav button{white-space:nowrap;background:transparent;color:#fff;border:0;border-bottom:3px solid transparent;border-radius:0;opacity:.78}.nav button.active{border-color:#ebc777;opacity:1}main{padding-top:24px;padding-bottom:65px}.card{background:var(--surface);border:1px solid var(--line);border-radius:13px;padding:17px;margin-bottom:14px}.bar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:12px}button{border:1px solid var(--line);border-radius:8px;background:#fff;padding:9px 12px;font:600 13px 'Public Sans',sans-serif;cursor:pointer;color:var(--fg)}button.primary{background:var(--garnet);border-color:var(--garnet);color:white}button:disabled{opacity:.5;cursor:default}button.danger{color:#ad2929}.muted{color:var(--muted);font-size:12px}.chip{display:inline-block;background:var(--soft);color:#80621f;border-radius:30px;padding:3px 9px;font-size:11px;font-weight:700;margin:2px}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}label{display:grid;gap:5px;font-size:12px;font-weight:700;color:var(--muted)}input,textarea,select{width:100%;border:1px solid var(--line);border-radius:8px;padding:10px;background:var(--surface);color:var(--fg);font:14px 'Public Sans',sans-serif}textarea{min-height:95px;resize:vertical}.full{grid-column:1/-1}.actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;margin-top:10px}.checks{display:flex;flex-wrap:wrap;gap:8px}.checks label{display:flex;align-items:center;gap:5px;background:var(--bg);border:1px solid var(--line);padding:8px;border-radius:8px;color:var(--fg);text-transform:none}.checks input{width:auto}.calendar-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.calendar-head strong{font-family:'Big Shoulders Display';font-size:27px}.cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--line);gap:1px}.dow{background:var(--soft);padding:7px 2px;text-align:center;font-weight:700;font-size:11px}.day{min-height:100px;background:var(--surface);padding:5px;cursor:pointer;overflow:hidden}.day.other{background:var(--bg);opacity:.5}.day.today{outline:2px solid var(--gold);outline-offset:-2px}.num{font-weight:700;font-size:12px}.evtag{font-size:10px;background:var(--soft);color:#6b481a;padding:3px 4px;border-radius:4px;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row{border-top:1px solid var(--line);padding:12px 0}.row:first-child{border:0}.line{display:flex;justify-content:space-between;gap:12px;align-items:center}.notice{padding:12px;background:var(--soft);border-radius:8px;margin-bottom:15px}.login{max-width:430px;margin:9vh auto}.login h1{color:var(--garnet);font-size:42px}.pollopt{display:flex;align-items:center;gap:9px;margin:8px 0}.pollopt input{width:auto}.meter{height:8px;background:var(--line);border-radius:8px;overflow:hidden}.meter i{display:block;background:var(--garnet);height:100%}a{color:var(--garnet)}@media(max-width:620px){.grid{grid-template-columns:1fr}.day{min-height:75px}.evtag{font-size:9px}.top small{display:none}header .inner,main{padding-left:12px;padding-right:12px}}

/* IFC-inspired month calendar interactions, retaining PIKE colors */
.day:not(.other){transition:background-color .16s ease,box-shadow .16s ease;outline-offset:-2px}
.day:not(.other):hover,.day:not(.other):focus-visible{background:#eadcde;box-shadow:inset 0 0 0 2px var(--garnet);outline:none}
.day.selected{background:#f1e3e5;box-shadow:inset 0 0 0 2px var(--garnet)}
.day[role="button"]{cursor:pointer}
.calendar-modal-backdrop{position:fixed;inset:0;background:rgba(24,13,17,.66);z-index:50;display:flex;align-items:center;justify-content:center;padding:18px}
.calendar-modal{background:var(--bg);color:var(--fg);width:min(680px,100%);max-height:min(85vh,850px);overflow:auto;border-radius:16px;box-shadow:0 18px 70px rgba(0,0,0,.3);padding:20px}
.calendar-modal-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.calendar-modal-header h2{margin:0}
.calendar-modal .card{margin-bottom:12px}
.calendar-modal .close-day{font-size:20px;min-width:42px}
@media(max-width:620px){.calendar-modal{padding:14px;max-height:90vh}.day{min-height:75px}}

/* Interface refinements */
button{transition:background-color .18s ease,border-color .18s ease,color .18s ease,box-shadow .18s ease,transform .18s ease}
button:not(:disabled):hover{background:#f0e3e5;border-color:#b9959b;box-shadow:0 2px 8px rgba(60,24,32,.09);transform:translateY(-1px)}
button.primary:not(:disabled):hover{background:#5e1520;border-color:#5e1520;color:#fff;box-shadow:0 4px 12px rgba(122,31,43,.22)}
button.danger:not(:disabled):hover{background:#fff0f0;border-color:#d8a5a5}
button:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.nav button:not(:disabled):hover{background:rgba(255,255,255,.14);border-color:transparent;color:#fff;box-shadow:none;transform:none;opacity:1}
.nav button.active:hover{border-color:#ebc777}
.card{box-shadow:0 2px 10px rgba(41,24,27,.035)}
input,textarea,select{transition:border-color .18s ease,box-shadow .18s ease}
input:focus,textarea:focus,select:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(169,130,45,.1)}
.expandable{margin-top:12px;border-top:1px solid var(--line);padding-top:12px}
.expandable summary{display:inline-flex;align-items:center;gap:7px;cursor:pointer;color:var(--garnet);font-weight:700;padding:8px 12px;border:1px solid var(--line);border-radius:8px;list-style:none;background:var(--surface);transition:background-color .18s ease,border-color .18s ease}
.expandable summary::-webkit-details-marker{display:none}
.expandable summary:hover{background:#f0e3e5;border-color:#b9959b}
.expandable summary::after{content:'⌄';font-size:16px;line-height:1;transition:transform .18s ease}
.expandable details[open] summary::after{transform:rotate(180deg)}
.expandable .label-less{display:none}
.expandable details[open] .label-more{display:none}
.expandable details[open] .label-less{display:inline}
.expandable .rich-text{padding:12px 0 3px}
.rich-text{line-height:1.65;overflow-wrap:anywhere}
.rich-text strong{font-weight:700;color:var(--fg)}
.rich-text h1,.rich-text h2,.rich-text h3{font-family:'Public Sans',sans-serif;text-transform:none;letter-spacing:normal;line-height:1.35;color:var(--fg)}
.rich-text h1{font-size:20px;margin:18px 0 10px}
.rich-text h2{font-size:17px;margin:20px 0 9px;padding-bottom:6px;border-bottom:1px solid var(--line)}
.rich-text h3{font-size:15px;margin:16px 0 8px}
.rich-text h1:first-child,.rich-text h2:first-child,.rich-text h3:first-child{margin-top:0}
.rich-text p{margin:0 0 12px}
.rich-text ul,.rich-text ol{margin:0 0 14px;padding-left:24px}
.rich-text li{margin:4px 0}
.rich-text code{background:var(--soft);padding:1px 4px;border-radius:4px}
.content-preview{color:var(--muted);line-height:1.5;overflow-wrap:anywhere;margin-bottom:10px}
.expandable:has(details[open]) .content-preview{display:none}
@media(prefers-reduced-motion:reduce){button,.day,input,textarea,select,.expandable summary,.expandable summary::after{transition:none!important}}
/* Roster position fields and IFC membership badge */
.ifc-chair-field,.other-position-field{display:none}
#record-form:has(input[name="Positions"][value="IFC Member"]:checked) .ifc-chair-field{display:grid}
#record-form:has(input[name="Positions"][value="Other"]:checked) .other-position-field{display:grid}
.ifc-badge{display:inline-flex;vertical-align:middle;align-items:center;margin-left:7px;padding:2px 8px;border-radius:20px;background:#e9d7a9;color:#593d0a;border:1px solid #d6ba72;font-size:10px;font-weight:800;letter-spacing:.07em}
.eboard-badge{display:inline-block;margin-left:6px;padding:2px 8px;border-radius:999px;background:#7a1f2b;color:#fff;font-size:10px;font-weight:700;letter-spacing:.02em;vertical-align:middle;white-space:nowrap}
