/* Mobile layouts shared by both account types. Account permissions never depend on screen width. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
.member-only-label{color:#7d8695;font-size:14px}
.mobile-records{display:none}
.definition dd{min-width:0;overflow-wrap:anywhere}
.definition dt{flex-shrink:0}
.mobile-shell{min-height:100dvh;padding-bottom:calc(90px + env(safe-area-inset-bottom))}
.mobile-top{height:auto;min-height:66px;padding-top:env(safe-area-inset-top);gap:12px}
.mobile-main{font-size:16px}
.mobile-main .info,.mobile-main .member-welcome p,.mobile-main .record-card p,.mobile-main .timeline small{font-size:14px;line-height:1.7}
.mobile-tabs{gap:0;justify-content:space-evenly}
.mobile-tab{min-width:80px;min-height:48px;font-size:14px}
.bill-top,.record-top{gap:12px;flex-wrap:wrap}
.bill-bottom{gap:12px;flex-wrap:wrap}
.mobile-main .input{font-size:16px;min-height:48px}
.mobile-main .btn,.mobile-top .btn{min-height:46px}
.check-line{font-size:14px;min-height:44px;align-items:flex-start}
.check-line input{width:20px;height:20px;flex-shrink:0}
.modal{max-height:calc(100dvh - 32px);overscroll-behavior:contain}
.modal-content .info{overflow-wrap:anywhere}
.modal-actions{flex-wrap:wrap}
@media(max-width:650px){
  .main,.mobile-main{padding:20px 16px}
  .topbar{height:auto;min-height:64px;flex-wrap:wrap;padding:12px 16px;gap:10px}
  .top-actions .btn{font-size:14px;min-height:44px}
  .breadcrumb{font-size:14px}
  .admin-mobile-nav{padding:8px;gap:4px;scrollbar-width:thin}
  .admin-mobile-nav button{min-height:44px;font-size:14px}
  .desktop-table{display:none}
  .mobile-records{display:block;padding:0 14px}
  .mobile-admin-record{border:1px solid var(--line);border-radius:9px;padding:16px;margin-bottom:12px}
  .mobile-record-heading{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
  .mobile-record-heading>strong{font-size:16px}
  .mobile-record-heading .badge{font-size:13px}
  .mobile-record-amounts{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:18px 0}
  .mobile-record-amounts span{display:block;color:var(--muted);font-size:14px;margin-bottom:7px}
  .mobile-record-amounts strong{font-size:20px;font-weight:600;font-variant-numeric:tabular-nums}
  .mobile-record-meta{display:flex;gap:8px;flex-wrap:wrap;justify-content:space-between;font-size:12px;color:var(--muted);line-height:1.8;margin-bottom:14px}
  .mobile-admin-record>.btn{width:100%;min-height:44px;font-size:14px;justify-content:space-between}
  .table-footer{flex-wrap:wrap;gap:15px;padding:16px}
  .pagination{flex-wrap:wrap}
  .pagination button{min-width:32px;height:40px}
  .tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}
  .tab{font-size:14px;min-height:44px}
  .search{min-height:46px}
  .search input,.input,.quarter-select{font-size:16px}
  .page-heading .actions,.body-pad .actions{flex-wrap:wrap;gap:10px}
  .page-heading .actions>.btn,.page-heading .actions>.quarter-select{flex:1;min-width:0;min-height:44px}
  .banner{flex-wrap:wrap;gap:12px}
  .banner h3{line-height:1.8}
  .banner>.btn{min-height:44px}
  .stat{padding:16px 12px}
  .stat-top{font-size:14px;gap:4px;flex-wrap:wrap}
  .stat-icon{width:27px;height:27px}
  .stat-value{font-size:clamp(20px,6vw,27px);letter-spacing:0;overflow-wrap:anywhere}
  .stat-value>span{font-size:14px}
  .progress-body{gap:20px;flex-wrap:wrap}
  .legend{flex-basis:190px}
  .legend-label,.todo-content{font-size:14px}
  .modal-overlay{padding:12px;padding-top:max(12px,env(safe-area-inset-top));padding-bottom:max(12px,env(safe-area-inset-bottom))}
  .modal-actions .btn{min-height:46px;flex:1}
  .icon-button{width:44px;height:44px}
  .sign-canvas{height:210px}
  .bill-card{padding:22px}
  .bill-card .bill-amount{font-size:40px}
  .mobile-section .panel{padding:20px 17px}
  .definition div{font-size:14px;gap:12px}
  .body-pad{padding-inline:17px}
}
@media(max-width:359px){.mobile-main{padding-inline:12px}.bill-card{padding:18px}.mobile-top{padding-inline:12px}.mobile-main .badge{font-size:12px}.mobile-record-amounts strong{font-size:18px}}
@media print{.mobile-records{display:none!important}}

/* Shared entry: the role selection is a prototype-only walkthrough control. */
.role-entry{min-height:100dvh;background:#f5f6f8;display:flex;flex-direction:column;padding:max(26px,env(safe-area-inset-top)) 24px max(22px,env(safe-area-inset-bottom))}
.role-brand{display:flex;align-items:center;gap:12px;width:100%;max-width:900px;margin:0 auto}
.role-brand strong{font-size:24px;letter-spacing:2px;display:block}
.role-brand>div>span{font-size:13px;color:#88929f;display:block;margin-top:5px}
.role-entry-main{width:100%;max-width:540px;margin:auto;padding:50px 0}
.role-title{text-align:center;margin-bottom:32px}
.role-title>span{font-size:14px;color:var(--red);letter-spacing:2px}
.role-title h1{font-size:29px;font-weight:600;margin:12px 0}
.role-title p{color:#7d8795;font-size:15px;line-height:1.8;margin:0}
.role-options{display:grid;gap:18px}
.role-option{display:flex;width:100%;align-items:center;gap:18px;text-align:left;background:white;border:1px solid #e4e8ec;border-radius:14px;padding:25px;min-height:112px;box-shadow:0 3px 15px #29384904;transition:border-color .15s,transform .15s}
.role-option:hover{border-color:#c8837d;transform:translateY(-2px)}
.role-option-icon{width:54px;height:54px;border-radius:13px;flex-shrink:0;display:grid;place-items:center;background:#fbefee;color:var(--red)}
.role-option-icon svg{width:26px;height:26px}
.manager-option .role-option-icon{background:#edf2f7;color:#526e8b}
.role-option-copy{flex:1;min-width:0}
.role-option-copy strong{display:block;font-size:21px;margin-bottom:9px;font-weight:600}
.role-option-copy>span{display:block;font-size:14px;color:#858f9c;line-height:1.7}
.role-option>svg{color:#99a3af;width:18px}
.role-entry-note{display:flex;gap:9px;justify-content:center;margin-top:26px;color:#949ca6;font-size:12px;line-height:1.8}
.role-entry-note>svg{margin-top:2px;width:16px;height:16px}
.role-entry-footer{text-align:center;color:#a1a9b3;font-size:12px;letter-spacing:1px}
@media(max-width:650px){.role-entry{padding-inline:20px}.role-brand{max-width:460px}.role-entry-main{padding:40px 0;max-width:460px}.role-title h1{font-size:26px}.role-option{padding:22px 18px;gap:14px}.role-option-icon{width:46px;height:46px}.role-entry-note{font-size:12px}.role-brand strong{font-size:22px}}
@media(max-width:359px){.role-entry{padding-inline:16px}.role-option{gap:10px;padding:20px 14px}.role-option-icon{width:40px;height:40px}.role-title h1{font-size:24px}}

.topbar-left{display:flex;align-items:center;gap:12px;min-width:0}
.mobile-menu-button,.mobile-drawer-layer{display:none}
@media(max-width:900px){
 .mobile-menu-button{display:inline-flex;flex-shrink:0;min-height:44px;font-size:14px;padding:8px 10px}
 .admin-mobile-nav{display:none!important}
 .mobile-drawer-layer{display:block;position:fixed;inset:0;z-index:45}
 .drawer-scrim{position:absolute;inset:0;background:#14223670;width:100%;height:100%;cursor:default}
 .mobile-drawer{position:absolute;inset:0 auto 0 0;width:min(300px,84vw);background:white;display:flex;flex-direction:column;padding:max(22px,env(safe-area-inset-top)) 18px max(22px,env(safe-area-inset-bottom));box-shadow:10px 0 50px #14223630;animation:drawer-enter .18s ease-out;overflow-y:auto}
 .drawer-heading{display:flex;justify-content:space-between;align-items:center;font-size:19px;gap:12px}
 .mobile-drawer>p{color:var(--muted);font-size:13px;margin:12px 0 28px}
 .mobile-drawer .nav-item{font-size:16px;min-height:52px;margin:8px 0}
 .drawer-bottom{color:#8793a1;font-size:13px;margin-top:auto;padding:24px 12px 0;line-height:1.8}
 .drawer-bottom svg{width:17px;margin-right:6px}
 .topbar{position:sticky;top:0;z-index:8;padding-top:max(12px,env(safe-area-inset-top));box-shadow:0 2px 8px #25394c05}
 .breadcrumb{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 .breadcrumb>span{display:none}
 .breadcrumb{font-size:0}.breadcrumb>b{font-size:16px}
 .topbar .top-actions{margin-left:auto}
 .topbar .top-actions .btn{font-size:13px;padding:8px 9px}
 .main{padding-top:22px}
}
@keyframes drawer-enter{from{transform:translateX(-100%)}to{transform:translateX(0)}}
@media(prefers-reduced-motion:reduce){.mobile-drawer{animation:none}}
@media print{.mobile-drawer-layer,.mobile-menu-button{display:none!important}}

.web-install-link{display:block;margin-top:16px;min-height:44px;line-height:44px;font-size:14px;letter-spacing:0}.native-app .web-install-link{display:none}

/* Shared notice editor and read-only member notice. */
.notice-editor{max-width:1000px}.notice-actions{display:flex;gap:10px;flex-wrap:wrap}.notice-note{font-size:13px;line-height:1.8}.notice-saved{font-size:13px}.notice-content{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.85;color:#475363;font-size:14px}.notice-meta{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;margin-bottom:14px;font-size:13px}.notice-meta span{color:var(--muted);font-size:12px}.member-notice{margin-bottom:22px}.member-notice h2{display:flex;align-items:center;gap:6px}.member-notice h2 svg{color:var(--red)}
@media(max-width:600px){.notice-editor .panel-head{flex-wrap:wrap;gap:12px}.notice-editor .body-pad{padding:18px}.notice-editor textarea{font-size:16px}.notice-actions .btn{flex:1;min-height:44px}}
.login-card{width:min(440px,calc(100% - 32px));padding:28px;margin:10vh auto}.login-card h1{font-size:24px}.login-card .btn{margin:8px 6px 0 0;min-height:44px}.error-text{color:#aa302e;min-height:20px}.badge.blue{background:#e8f1fc;color:#2468b8}.block{display:block}.row-signature{display:block;width:112px;height:42px;object-fit:contain}.signature-cell small{display:block;font-size:11px;color:#7d8695;white-space:normal}.signature-history{padding:16px 0;border-top:1px solid #eee}.signature-history p{line-height:1.8;font-size:13px}.legend-row{width:100%;text-align:left;gap:12px}.legend-row b{white-space:nowrap}.export-actions{flex-wrap:wrap;gap:10px;display:flex}.tabs{flex-wrap:wrap}.login-card input{font-size:16px}.upload-zone{display:flex;flex-direction:column;gap:16px;padding:28px;border:1px dashed #c9a8a6;border-radius:10px;cursor:pointer}.upload-zone input{max-width:100%}.print-report{background:white;padding:24px}.print-report table{width:100%;border-collapse:collapse}.print-report th,.print-report td{padding:8px;border:1px solid #bbb;font-size:11px}.print-report img{width:100px;height:40px;object-fit:contain}
@media(max-width:650px){.mobile-record-amounts{grid-template-columns:repeat(3,1fr)}.mobile-record-amounts strong{font-size:16px}.progress-body{gap:15px;padding:20px 14px}.legend-row{font-size:12px}.legend-row b{font-size:12px}.legend-label{gap:6px}.tab{font-size:11px}.signature-cell{padding:10px 0}.login-card{margin-top:8vh}.export-actions .btn{flex:1}.notice-editor textarea{min-height:250px}}

.member-quarter{display:flex;justify-content:flex-end;margin-bottom:20px}.member-quarter select{max-width:100%;font-size:16px}.people-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(265px,1fr));gap:16px}.person-card{padding:20px}.person-card-heading{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.person-card-heading strong{font-size:18px}.person-card-heading p{color:var(--muted);font-size:14px}.person-card .actions{flex-wrap:wrap}.person-card .btn{min-height:44px}.quarter-select{font-size:14px;max-width:100%}@media(max-width:650px){.people-grid{grid-template-columns:1fr}.quarter-select{font-size:16px}.member-welcome h1{overflow-wrap:anywhere}}
