:root{color-scheme:light;--ink:#1f2430;--muted:#6b7280;--line:#e2e5ea;--paper:#f7f8fa;--accent:#2f6fed;--accent-dark:#1f54c0;--gold:#f8c808;--gold-deep:#b88a00;--gold-ink:#7a5e00;--status-draft-bg:#e5e7eb;--status-invited-bg:#fef3c7;--status-confirmed-bg:#d1fae5;--status-danger-bg:#fee2e2;--status-danger-ink:#b91c1c}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--paper);line-height:1.5}a,body{color:var(--ink)}a{text-decoration:underline}.cell-link:focus-visible,a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--ink);outline-offset:2px}h1{font-size:1.75rem;font-weight:700}h2{font-size:1.15rem}.admin-shell{max-width:1100px;margin:0 auto;padding:0 1rem 3rem}.admin-nav{display:flex;align-items:center;gap:1rem;padding:.75rem 0;border-bottom:3px solid var(--gold);margin-bottom:1rem;flex-wrap:wrap}.admin-nav .brand{display:inline-flex;align-items:center;gap:.5rem;font-weight:700;margin-right:auto;padding:.25rem 0;color:var(--ink);text-decoration:none}.admin-nav .brand:hover{background:transparent}.admin-nav .brand img{display:block;height:28px;width:auto}.admin-nav a{text-decoration:none;color:var(--ink);padding:.25rem .5rem;border-radius:6px}.admin-nav a:hover{background:var(--line)}.admin-nav .whoami{color:var(--muted);font-size:.85rem}.admin-nav .nav-tab.active,.admin-nav .nav-tab.active:hover{background:var(--gold);color:#16181d;font-weight:700}.admin-subnav{display:flex;flex-wrap:wrap;gap:.25rem 1.25rem;padding:.1rem 0 .6rem;margin:-.5rem 0 1rem;border-bottom:1px solid var(--line);font-size:.9rem}.admin-subnav a{text-decoration:none;color:var(--muted);padding:.25rem 0}.admin-subnav a:hover{color:var(--ink)}.admin-subnav a.active{color:var(--ink);font-weight:600;box-shadow:inset 0 -2px 0 var(--gold-ink)}.attention-banner{background:var(--status-invited-bg);border:1px solid #f1d48a;border-radius:8px;padding:.6rem 1rem;margin-bottom:1rem;font-size:.9rem}.card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:1rem;margin-bottom:1rem}.card p{max-width:65ch}label{display:block;margin-bottom:.6rem;font-size:.9rem}input,select,textarea{display:block;width:100%;max-width:24rem;padding:.45rem .6rem;margin-top:.2rem}button,input,select,textarea{border:1px solid var(--line);border-radius:6px;font:inherit}button{color:var(--ink);padding:.4rem .9rem;background:#fff;cursor:pointer}button:hover{background:var(--paper)}.button-primary{background:var(--gold);border-color:var(--gold);color:#16181d;font-weight:700}.button-primary:hover{background:var(--gold-deep);border-color:var(--gold-deep);color:#16181d}.button-danger{border-color:var(--status-danger-ink)}.button-danger,.form-error{color:var(--status-danger-ink)}.form-error{font-size:.9rem}.form-row{display:flex;gap:.75rem;flex-wrap:wrap;align-items:flex-end}.form-row label{margin-bottom:0}.login-page{min-height:100vh;display:grid;place-items:center;padding:1rem}.login-card{width:100%;max-width:22rem}table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden;font-size:.95rem}td,th{text-align:left;padding:.5rem .65rem;border-bottom:1px solid var(--line);vertical-align:top}th{background:var(--paper);font-weight:600}.cell-entry{display:block;border-radius:6px;padding:.3rem .45rem;margin-bottom:.25rem;text-decoration:none;color:var(--ink);border:1px solid transparent}.cell-entry:hover{border-color:var(--ink)}.cell-entry .meta{display:block;font-size:.8125rem;color:var(--muted)}.cell-entry .cell-note{display:block;font-size:.8125rem;color:var(--ink);font-weight:500;margin-top:.1rem}.cell-link{display:block;text-decoration:none;color:inherit}.cell-title-input{display:block;width:100%;max-width:none;margin-top:.15rem;padding:.1rem .25rem;font-size:.8125rem;color:inherit;background:transparent;border:1px dashed transparent;border-radius:4px}.cell-title-input:hover{border-color:var(--muted)}.cell-title-input:focus{border:1px solid var(--gold-deep);background:#fff;color:var(--ink);outline:none}.cell-title-input::placeholder{color:transparent}.cell-entry:hover .cell-title-input::placeholder,.cell-title-input:focus::placeholder{color:var(--muted)}.status-draft{background:var(--status-draft-bg)}.status-invited{background:var(--status-invited-bg)}.status-confirmed{background:var(--status-confirmed-bg)}.status-declined,.status-unfilled{background:var(--status-danger-bg);color:var(--status-danger-ink)}.usher-member-status{display:inline-block;border-radius:4px;padding:0 .3rem;font-size:.75rem}.muted{color:var(--muted)}.badge-warning{background:var(--status-invited-bg);border-radius:4px;font-size:.8rem;padding:.1rem .4rem}details{margin-bottom:.75rem}details summary{cursor:pointer;font-weight:600}.confirm-page{max-width:560px;margin:0 auto;padding:24px 16px;color:#16181d}.confirm-brand{text-align:center;padding-bottom:16px;margin-bottom:22px;border-bottom:3px solid var(--gold)}.confirm-brand-logo{width:100%;max-width:230px;height:auto}.confirm-brand-name{font-size:20px;font-weight:700;color:var(--ink)}.confirm-eyebrow{margin:0 0 .35rem;font-size:.78rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--gold-ink)}.confirm-hero{margin:0 0 .3rem;font-size:1.75rem;line-height:1.15;font-weight:800}.confirm-hero:first-letter{text-transform:uppercase}.confirm-hero-sub{margin:0 0 1.4rem;color:var(--muted);font-size:.95rem}.confirm-details{display:grid;grid-template-columns:max-content 1fr;grid-gap:.55rem 1.1rem;gap:.55rem 1.1rem;margin:0 0 1rem}.confirm-details dt{font-size:.72rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);padding-top:.1rem}.confirm-details dd{margin:0;font-weight:500}textarea{max-width:40rem}.nav-links{display:flex;gap:1rem}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:10px}.table-scroll table{min-width:36rem}.schedule-table{overflow:visible;border-collapse:separate;border-spacing:0}.schedule-table td,.schedule-table th{min-width:9rem}.schedule-table td:first-child,.schedule-table th:first-child{position:-webkit-sticky;position:sticky;left:0;z-index:1;min-width:auto;white-space:nowrap;background:#fff;box-shadow:1px 0 0 var(--line)}.schedule-table th:first-child{background:var(--paper)}@media (max-width:700px){h1{font-size:1.25rem}.card{padding:.85rem}.admin-nav{gap:.5rem .75rem}.admin-nav a{padding:.5rem .6rem;white-space:nowrap}.nav-links{order:10;flex-basis:100%;gap:.25rem;flex-wrap:wrap}.form-row{align-items:stretch}.form-row>label{flex:1 1 100%}.form-row button{width:100%}input,select,textarea{max-width:none}}@media (hover:none) and (pointer:coarse){button,input,select,textarea{font-size:1rem}button{min-height:2.75rem}.admin-nav .nav-links a{min-height:2.75rem;display:inline-flex;align-items:center}.cell-title-input{font-size:1rem;border-color:var(--line)}.cell-title-input::placeholder{color:var(--muted)}}.print-only{display:none}@media print{.admin-nav,.attention-banner,.no-print{display:none!important}.print-only{display:block!important}.print-title{font-size:1.1rem;font-weight:700;margin-bottom:.5rem}.table-scroll{overflow:visible!important;border-radius:0}.schedule-table td,.schedule-table th{position:static!important;box-shadow:none!important}.cell-entry{-webkit-print-color-adjust:exact;print-color-adjust:exact}.status-confirmed{border:1px solid #10b981}.status-invited{border:1px solid #d97706}.status-declined,.status-unfilled{border:1px solid #b91c1c}.status-draft{border:1px solid #9ca3af}.cell-title-input,.schedule-table input{border:none!important;background:transparent!important;padding:0!important}.cell-entry,tr{page-break-inside:avoid;break-inside:avoid}@page{margin:1cm}}.availability-list{list-style:none;padding:0;margin:0 0 24px}.availability-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}.availability-form{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}.availability-form label{display:flex;flex-direction:column;gap:4px;font-size:14px}.availability-ok{color:#15803d}.availability-warn{color:#b45309}.availability-error{color:var(--status-danger-ink)}