body { background: #f5f7f6; color: #22302c; }
.member-header { padding: 1rem max(1rem, calc((100vw - 1180px)/2)); background:#fff; border-bottom:1px solid #e0e8e5; display:flex; align-items:center; justify-content:space-between; gap:2rem; }
.member-header img { max-width:180px; max-height:68px; object-fit:contain; }
.member-header nav,.actions { display:flex; flex-wrap:wrap; align-items:center; gap:.75rem; }
.member-header nav a { color:#126c59; font-weight:600; }
.member-main { max-width:1180px; padding:3rem 1.25rem; margin:auto; min-height:70vh; }
.member-main h1 { font-size:clamp(1.8rem,4vw,2.8rem); line-height:1.2; margin:.5rem 0 1.25rem; }
.member-main h2 { font-size:1.3rem; margin:0 0 1rem; }
.member-main p { line-height:1.7; margin-bottom:1rem; }
.member-card { margin:1.5rem 0; padding:1.75rem; background:#fff; border:1px solid #dce6e0; border-radius:16px; box-shadow:0 5px 20px #123a2210; }
.compact { max-width:560px; }
.member-main label { display:block; font-weight:600; margin:.75rem 0 .4rem; }
.member-main input,.member-main select { display:block; width:100%; box-sizing:border-box; padding:.8rem; border:1px solid #bccfc6; border-radius:8px; background:#fff; margin-bottom:1rem; font:inherit; }
.member-main .btn,.member-header .btn { font-size:.9rem; padding:.65rem 1rem; white-space:normal; }
.member-main .btn-outline,.member-header .btn-outline { color:#126c59; border:1px solid #126c59; }
.btn-danger { background:#a62e35; color:#fff; border:1px solid #a62e35; }
.notice { padding:1.25rem; background:#e7f5eb; border:1px solid #a9d1b7; border-radius:12px; margin:1rem 0; }
.error { padding:1rem; background:#fff0f0; color:#8d1b27; border:1px solid #dfb3b7; border-radius:10px; }
.muted,small { color:#57675f; font-size:.9rem; }
small { display:block; margin-top:.35rem; overflow-wrap:anywhere; }
.admin-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.5rem; }
.document-list { list-style:none; padding:0; margin:0; }
.document-list li { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1.2rem 0; border-bottom:1px solid #e0e8e5; }
.document-list li:last-child { border:0; }
.document-list strong { overflow-wrap:anywhere; }
.table-scroll { overflow-x:auto; }
table { width:100%; border-collapse:collapse; text-align:left; }
th,td { padding:1rem .6rem; border-bottom:1px solid #e0e8e5; vertical-align:middle; }
th { background:#f2f6f4; }
.member-footer { padding:1.5rem; text-align:center; font-size:.9rem; border-top:1px solid #dce6e0; }
.member-footer a { color:#126c59; }
code { font-size:1.1rem; overflow-wrap:anywhere; }
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible { outline:3px solid #168b70; outline-offset:3px; }
@media(max-width:800px) { .member-header { align-items:flex-start; flex-direction:column; gap:1rem; } .admin-grid { grid-template-columns:1fr; gap:0; } .document-list li { align-items:flex-start; flex-direction:column; } .member-card { padding:1.25rem; } }

.shift-frame { width:100%; height:1000px; border:1px solid #dce6e0; border-radius:12px; background:#fff; }
.shift-body { background:#fff; }
.shift-main { padding:1.25rem; max-width:1400px; margin:auto; }
.shift-main h1 { font-size:1.7rem; margin:0 0 .6rem; }
.shift-main h2 { font-size:1.2rem; margin:1.25rem 0 .6rem; }
.shift-main p { margin:0 0 1rem; line-height:1.6; }
.week-picker { display:flex; gap:.6rem; flex-wrap:wrap; align-items:center; margin:1rem 0; }
.week-picker label { width:100%; font-weight:600; }
.week-picker select { padding:.7rem; border:1px solid #bccfc6; border-radius:8px; max-width:100%; font:inherit; }
.week-links,.shift-save { display:flex; gap:1rem; flex-wrap:wrap; align-items:center; margin:1rem 0; }
.week-links a,.shift-save a { color:#126c59; text-decoration:underline; }
.shift-table-scroll { overflow-x:auto; }
.shift-table { min-width:780px; table-layout:fixed; }
.shift-table th { background:#eaf4ee; font-size:.95rem; }
.shift-table td,.shift-table th { padding:.65rem .45rem; }
.shift-table input { width:100%; min-width:0; padding:.65rem .4rem; border:1px solid #cbd8d0; border-radius:6px; font:inherit; background:#fff8e8; box-sizing:border-box; }
.shift-main .btn-outline { color:#126c59; border:1px solid #126c59; }
.unsaved { color:#8d1b27; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
