:root{font-family:"DM Sans","Noto Sans SC",-apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif;color:#23342e;background:#f4f3ed;font-synthesis:none;font-optical-sizing:auto;font-weight:400;--ink:#233c34;--ink-2:#3e5b4e;--muted:#7d8981;--line:#e4e5dd;--paper:#fbfaf6;--sage:#dce7dc;--coral:#bd674e;--gold:#b79456;--radius:5px}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select,textarea{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #b79456;outline-offset:2px}.hidden{display:none!important}.login-shell{min-height:100vh;display:grid;grid-template-columns:minmax(460px,610px) 1fr;background:#e9e7de}.login-card{align-self:center;width:min(430px,calc(100% - 64px));margin:auto;padding:58px 0}.brand{display:flex;align-items:center;gap:12px;font-size:13px;letter-spacing:2.6px;font-weight:700;color:var(--ink)}.brand small{display:block;margin-top:5px;font-size:11px;letter-spacing:1px;font-weight:500;color:#758078}.brand-stamp{width:42px;height:42px;border:1px solid var(--coral);color:var(--coral);display:grid;place-items:center;font:22px Georgia,serif}.eyebrow{margin:48px 0 15px;font-size:10px;letter-spacing:2.3px;color:var(--coral);font-weight:700}.login-card h1{font-family:"Noto Serif SC","Songti SC",serif;font-weight:500;font-size:38px;line-height:1.5;letter-spacing:2px;margin:0;color:#243b32}.login-lead{max-width:350px;color:#718077;line-height:1.9;font-size:13px;margin:14px 0 27px}.login-card label{display:block;color:#52635a;font-size:12px;margin-top:17px}.login-card input{display:block;margin-top:9px;width:100%;height:46px;border:1px solid #dce1d8;background:#f8f8f3;padding:0 13px;border-radius:3px;color:var(--ink)}.button{border:0;padding:12px 18px;border-radius:3px;font-weight:600}.button-dark{background:var(--ink);color:white}.button-wide{width:100%;height:48px;margin-top:24px;text-align:left;display:flex;justify-content:space-between;align-items:center}.demo-box{border-top:1px solid #d9ddd4;margin-top:31px;padding-top:17px}.demo-head{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:#43564c;margin-bottom:10px}.demo-head span,.demo-box>small{font-size:10px;color:#89938c}.demo-box button{display:flex;justify-content:space-between;width:100%;padding:9px 0;border:0;border-bottom:1px solid #dfe2d9;background:transparent;color:#40594c;text-align:left;font-size:12px}.demo-box code{font:11px "DM Sans",sans-serif;color:#78837b}.demo-box>small{display:block;margin-top:10px}.login-note{font-size:10px;color:#939c93;margin-top:27px;line-height:1.7}.login-art{position:relative;min-height:100vh;background:linear-gradient(180deg,rgba(29,46,37,.05),rgba(29,46,37,.7)),url('/static/museum/exhibitions/open-secret-atmosphere.jpg') center/cover no-repeat;display:flex;align-items:end;padding:7vw}.art-caption{color:#fff;display:flex;flex-direction:column;gap:20px}.art-caption span{font-size:10px;letter-spacing:3px;color:#ecd1a4}.art-caption b{font:400 clamp(27px,3vw,48px)/1.55 "Noto Serif SC","Songti SC",serif;letter-spacing:2px}.art-caption small{font-size:12px;letter-spacing:3px;color:#e4e2d8}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:238px;background:#233c34;color:#fff;padding:27px 15px 18px;display:flex;flex-direction:column;z-index:5}.side-brand{padding:0 9px 28px;color:#f6f3e9}.side-brand small{color:#a9b9ae}.side-brand .brand-stamp{border-color:#c8866b;color:#ecc1a7}.side-label{padding:17px 12px 10px;text-transform:uppercase;font-size:10px;letter-spacing:1.5px;color:#91a49a}#nav{display:grid;gap:4px}.nav-item{height:43px;border:0;background:transparent;color:#c5d0c8;text-align:left;padding:0 12px;display:flex;align-items:center;gap:12px;border-radius:4px;font-size:12px}.nav-item i{width:20px;text-align:center;font-style:normal;font-size:17px;color:#9aafa1}.nav-item:hover,.nav-item.active{background:#355447;color:#fff}.nav-item.active i{color:#f0bd98}.sidebar-bottom{margin-top:auto;border-top:1px solid #3c564a;padding:18px 8px 0;display:flex;align-items:flex-start;gap:9px;font-size:11px;color:#d9e0da}.sidebar-bottom small{display:block;margin-top:5px;font-size:10px;color:#97a99e}.local-dot{width:7px;height:7px;border-radius:50%;background:#9ac99e;margin-top:4px;box-shadow:0 0 0 4px rgba(154,201,158,.12)}.main-area{margin-left:238px;min-height:100vh}.topbar{height:64px;position:sticky;top:0;z-index:4;background:rgba(251,250,246,.95);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 36px}.crumb{display:flex;gap:11px;align-items:center;font-size:11px;color:#869188}.crumb b{font-weight:400;color:#c3c9c1}.crumb strong{font-size:12px;color:#344d40}.top-actions{display:flex;align-items:center;gap:18px}.date-chip{font-size:10px;color:#78857b;letter-spacing:.6px}.user-chip{display:flex;align-items:center;gap:9px;background:none;border:0;text-align:left;color:#304b3f}.user-avatar{width:29px;height:29px;border-radius:50%;background:#dce6db;display:grid;place-items:center;font:14px Georgia;color:#315141}.user-chip b,.user-chip small{display:block;font-size:10px}.user-chip small{margin-top:3px;color:#849087}.chevron{color:#849087}.logout-link{border:0;background:none;color:#818b83;font-size:11px}.view{display:none;padding:35px 38px 70px;max-width:1500px;margin:0 auto}.view.active{display:block;animation:enter .24s ease-out}@keyframes enter{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.page-intro{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:27px}.page-intro h1{margin:7px 0 6px;font:500 29px/1.35 "Noto Serif SC","Songti SC",serif;color:#273e34;letter-spacing:.6px}.page-intro p{margin:0;color:#829087;font-size:12px;line-height:1.7}.page-kicker{font-size:9px;letter-spacing:2px;color:var(--coral);font-weight:700}.button-primary{background:#294b3d;color:white;border:1px solid #294b3d}.button-light{background:#fff;border:1px solid var(--line);color:#42594e}.button-danger{background:#fff;border:1px solid #e9d7d1;color:#a55243}.button-small{padding:8px 11px;font-size:10px;border-radius:3px}.button:hover{filter:brightness(1.06)}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:13px;margin-bottom:23px}.stat-card{background:#fbfaf6;border:1px solid var(--line);padding:17px 18px;min-height:104px;position:relative;overflow:hidden}.stat-card:after{content:"";position:absolute;right:-22px;bottom:-40px;width:88px;height:88px;border:1px solid #e2e7df;border-radius:50%}.stat-card small{display:block;color:#88938b;font-size:10px}.stat-card strong{display:block;font:500 29px "DM Sans",sans-serif;color:#2b493b;margin-top:13px}.stat-card em{font-style:normal;color:#a76d51;font-size:10px;margin-left:6px}.panel{background:#fbfaf6;border:1px solid var(--line);margin-bottom:18px}.panel-head{padding:17px 20px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:16px}.panel-head h2{font:500 15px "Noto Serif SC","Songti SC",serif;margin:0;color:#30483d}.panel-head small{display:block;color:#89948d;font-size:10px;margin-top:5px}.panel-body{padding:18px 20px}.split{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(270px,.8fr);gap:17px}.quick-actions{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.quick-action{padding:16px;background:#f2f3ec;border:1px solid #e5e8df;text-align:left;color:#405a4c}.quick-action b{display:block;font-size:12px;font-weight:600}.quick-action small{display:block;font-size:10px;color:#879187;margin-top:6px}.quick-action:hover{background:#e9efe6}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left}th{font-size:9px;font-weight:600;color:#88948a;padding:10px 12px;border-bottom:1px solid var(--line);white-space:nowrap}td{font-size:11px;color:#405449;padding:12px;border-bottom:1px solid #ecece6;white-space:nowrap}tbody tr:last-child td{border-bottom:0}.title-cell{font-weight:600;color:#30463a}.sub-cell{display:block;font-weight:400;color:#929c93;font-size:9px;margin-top:4px}.tag{display:inline-flex;align-items:center;gap:5px;padding:4px 7px;font-size:9px;background:#e8efe7;color:#54725d;border-radius:20px}.tag:before{content:"";width:5px;height:5px;background:currentColor;border-radius:50%}.tag.off{background:#f1ece5;color:#9a8167}.tag.activity{background:#f6ebe0;color:#a46b43}.tag.admin{background:#e9e9f4;color:#6b6496}.tag.staff{background:#e7eff0;color:#56777a}.tag.used{background:#e6efe7;color:#4b7657}.tag.refunded,.tag.cancelled{background:#f3e8e5;color:#9e6153}.actions{display:flex;gap:6px;align-items:center}.text-action{border:0;background:none;padding:5px;color:#547161;font-size:10px}.text-action.danger{color:#a55c4d}.toolbar{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:13px}.toolbar input,.toolbar select{height:36px;border:1px solid #dfe3dc;background:#fbfaf6;color:#53635a;padding:0 10px;border-radius:3px;font-size:11px}.toolbar input{min-width:220px}.toolbar .spacer{flex:1}.empty{padding:35px 15px;text-align:center;color:#8b968e;font-size:12px}.two-col{display:grid;grid-template-columns:310px minmax(0,1fr);gap:16px}.event-list{display:grid;gap:8px;align-content:start}.event-choice{padding:14px;border:1px solid var(--line);background:#fbfaf6;text-align:left;color:#395448}.event-choice.selected{border-color:#72917c;box-shadow:inset 3px 0 #61806a;background:#f1f4ed}.event-choice b{display:block;font-size:11px;font-weight:600;line-height:1.5}.event-choice small{display:block;margin-top:5px;color:#8c978e;font-size:9px}.session-date{font-weight:600;color:#345243}.capacity-cell{min-width:135px}.capacity-track{height:4px;background:#e8eae3;margin-top:6px}.capacity-track i{height:4px;display:block;background:#8ca790}.modal-backdrop{position:fixed;inset:0;background:rgba(23,36,29,.42);z-index:20;display:grid;place-items:center;padding:20px;animation:enter .15s}.modal{width:min(680px,100%);max-height:min(88vh,900px);overflow:auto;background:#fbfaf6;box-shadow:0 20px 80px #15261c33}.modal-header{position:sticky;top:0;background:#fbfaf6;padding:18px 22px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;z-index:1}.modal-header h2{margin:0;font:500 18px "Noto Serif SC","Songti SC",serif}.modal-close{border:0;background:none;font-size:22px;color:#87938a}.modal-body{padding:20px 22px}.modal-footer{padding:14px 22px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:8px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.field.full{grid-column:1/-1}.field label{display:block;color:#66766c;font-size:10px;margin-bottom:7px}.field input,.field select,.field textarea{width:100%;border:1px solid #dfe3dc;background:white;border-radius:3px;padding:10px;color:#34493e;font-size:11px}.field textarea{min-height:90px;resize:vertical}.field input[type=checkbox]{width:auto}.check-field{display:flex;align-items:center;gap:8px;padding-top:17px;font-size:11px;color:#506358}.toast{position:fixed;top:75px;left:50%;transform:translateX(-50%) translateY(-10px);opacity:0;z-index:50;background:#294b3d;color:#fff;padding:11px 18px;font-size:11px;pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}.error-text{min-height:16px;color:#ad594c;font-size:11px}.notice{padding:11px 13px;background:#f3f0e8;border-left:2px solid #bd9b60;color:#7a725d;font-size:10px;line-height:1.6;margin-bottom:13px}.role-note{padding:12px;background:#f0f3ed;color:#708078;font-size:10px;line-height:1.6;margin-bottom:12px}.detail-list{display:grid;grid-template-columns:140px 1fr;border-top:1px solid var(--line)}.detail-list dt,.detail-list dd{margin:0;padding:11px 8px;border-bottom:1px solid #ecece6;font-size:11px}.detail-list dt{color:#87928a}.detail-list dd{color:#354c40}.role-locked{opacity:.62}@media(max-width:1050px){.sidebar{width:205px}.main-area{margin-left:205px}.topbar{padding:0 22px}.view{padding:28px 22px 55px}.stat-grid{grid-template-columns:repeat(2,minmax(130px,1fr))}.split{grid-template-columns:1fr}.two-col{grid-template-columns:1fr}.event-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.login-shell{grid-template-columns:1fr}.login-art{display:none}.login-card{padding:34px 0;width:min(430px,calc(100% - 42px))}.sidebar{position:static;width:100%;height:auto;padding:13px 14px 8px}.side-brand{padding:0 4px 11px}.side-brand .brand-stamp{width:34px;height:34px;font-size:18px}.side-label,.sidebar-bottom{display:none}#nav{display:flex;overflow:auto;gap:4px;padding-bottom:3px}.nav-item{white-space:nowrap;height:38px;padding:0 10px;font-size:10px}.nav-item i{display:none}.main-area{margin-left:0}.topbar{height:54px;padding:0 13px}.date-chip{display:none}.top-actions{gap:10px}.user-chip{gap:6px}.user-chip small{display:none}.view{padding:22px 13px 45px}.page-intro{align-items:flex-start;flex-direction:column;margin-bottom:18px}.page-intro h1{font-size:25px}.stat-grid{gap:8px}.stat-card{padding:13px;min-height:88px}.stat-card strong{font-size:24px}.panel-head{padding:14px}.panel-body{padding:12px}.quick-actions{grid-template-columns:1fr 1fr}.event-list{grid-template-columns:1fr 1fr}.toolbar input{min-width:160px;flex:1}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.modal{max-height:94vh}.modal-body{padding:15px}.detail-list{grid-template-columns:105px 1fr}.table-wrap{margin:0 -12px;padding:0 12px}}

/* Member records and forms retain the operations palette and readable controls. */
#view-growth .toolbar{gap:12px}
#view-growth .toolbar label{font-size:14px;color:var(--ink-2)}
#view-growth .toolbar input{height:44px;font-size:14px;flex:1;min-width:180px}
#view-growth .toolbar select{height:44px;font-size:14px}
#member-identity-notice{font-size:14px;line-height:1.7}
#view-growth .button,.member-dialog .button{min-height:44px;font-size:14px}
#view-growth td,#view-growth th{font-size:14px}
#view-growth .text-action{font-size:14px;min-height:44px;padding:8px}
#member-list table{min-width:880px}
#member-list[aria-busy=true]{padding:24px 0;color:var(--ink-2)}
.member-pagination{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:16px;font-size:14px;color:var(--ink-2)}
.member-pagination>div{display:flex;gap:8px}
#view-growth button:disabled,.member-dialog button:disabled{opacity:.5;cursor:default;filter:none}
.member-dialog{border:1px solid var(--line);padding:0;color:var(--ink);font-size:14px;max-width:calc(100vw - 32px)}
.member-dialog::backdrop{background:rgba(23,36,29,.42)}
.member-dialog .modal-close{min-width:44px;min-height:44px}
.member-dialog .field label{font-size:14px;color:var(--ink-2)}
.member-dialog .field input,.member-dialog .field textarea{font-size:16px;min-height:44px}
.member-dialog .field input[readonly]{background:#f0f3ed;color:var(--ink-2)}
.member-dialog .full{grid-column:1/-1}
.member-dialog .notice,.member-dialog .error-text{font-size:14px;line-height:1.7}
.member-dialog .error-text{margin:0}
.member-dialog .detail-list dt,.member-dialog .detail-list dd,.member-dialog td,.member-dialog th{font-size:14px}
.member-dialog h3{margin:24px 0 12px;font-size:16px;font-weight:600}
.member-dialog .member-notes{white-space:pre-wrap;overflow-wrap:anywhere}
.member-dialog .table-wrap table{min-width:420px}
@media(max-width:720px){
 #view-growth .toolbar input{font-size:16px;width:100%;flex-basis:100%}
 .member-pagination{align-items:flex-start;flex-direction:column}
 .member-dialog{max-width:calc(100vw - 24px)}
 .member-dialog .detail-list{grid-template-columns:100px minmax(0,1fr)}
 .member-dialog .modal-header,.member-dialog .modal-footer{padding:12px 15px}
 .member-dialog .notice{margin-bottom:0}
}
