/* Responsive layer. Desktop structure and existing application actions stay intact. */
:root { --registry-ink:#172b45; --registry-muted:#58687a; --registry-line:#dce3eb; }
.registry-app { color:var(--registry-ink); background:#f4f7fa; }
.registry-app main { background:#f4f7fa; padding-bottom:40px; }
.registry-app .container { max-width:1160px; }
.registry-app .page-header { gap:16px; flex-wrap:wrap; margin-bottom:24px; }
.registry-app .page-title { color:var(--registry-ink); letter-spacing:-.035em; }
.registry-app .page-subtitle { color:var(--registry-muted); line-height:1.65; }
.registry-app .form-section { border:1px solid #e5eaf0; box-shadow:0 4px 20px #172b4505; }
.registry-app :is(.apple-btn,.btn-submit,.btn-cancel,.icon-btn,.expand-all-btn) { min-height:44px; flex-shrink:0; white-space:nowrap; }
.registry-app :is(button,a,input,select,textarea,summary):focus-visible { outline:3px solid #2563eb; outline-offset:3px; }
.registry-app input:not([type=checkbox]):not([type=radio]), .registry-app select, .registry-app textarea { font-size:16px; }
.registry-app .nav-toggle { min-width:44px; min-height:44px; }
.registry-app .nav-links { margin:0; }
.registry-app .nav-link { display:flex; align-items:center; gap:6px; }
.registry-app .member-profile-layout { display:grid !important; grid-template-columns:minmax(0,1fr) minmax(240px,.65fr); }
.registry-app .member-profile-layout > * { min-width:0 !important; max-width:100% !important; }
.registry-app .detail-header { min-width:0; gap:20px; }
.registry-app .detail-title { min-width:0; }
.registry-app .detail-title h1 { overflow-wrap:anywhere; }
.registry-app .detail-actions { flex-wrap:wrap; gap:8px; }
.registry-app .detail-actions .icon-btn { min-width:44px; }
.registry-app .info-value { overflow-wrap:anywhere; }
.registry-app .organization-info-grid { grid-template-columns:repeat(2,minmax(0,1fr)) !important; }
.registry-app .member-card-header { flex-wrap:wrap; }
.registry-app .member-info { min-width:0; }
.registry-app .member-info h3, .registry-app .member-info p { overflow-wrap:anywhere; }
.registry-app .tree-search { min-width:0; font-size:16px; }
.registry-app .tree-toolbar { flex-wrap:wrap; }
.registry-app .attendance-card[hidden], .registry-app [hidden] { display:none !important; }
.registry-app .attendance-toolbar { gap:12px; flex-wrap:wrap; }
.registry-app .attendance-selection-count { font-size:14px; font-weight:600; color:var(--registry-ink); }
.registry-app .registry-notice { padding:12px 16px; border-radius:12px; background:#eef4fc; color:#29466a; font-size:14px; line-height:1.6; margin:12px 0; }
.registry-app .registry-review { color:#8d4b12; background:#fff6e8; padding:10px 12px; border-radius:8px; margin-top:8px; font-size:13px; }
.registry-app .registry-accordion > summary { cursor:pointer; min-height:44px; display:flex; align-items:center; justify-content:space-between; }
.registry-app .registry-accordion > summary::after { content:'＋'; font-size:20px; }
.registry-app .registry-accordion[open] > summary::after { content:'−'; }
.registry-app .mobile-bottom-nav { display:none; }
.registry-app .registry-filter-panel { display:flex; flex-wrap:wrap; gap:10px; align-items:end; }
.registry-app .registry-filter-toggle { display:none; }
.registry-app .registry-selection-chip { display:inline-flex; align-items:center; gap:6px; padding:2px 8px 2px 12px; background:#eaf1fb; border-radius:12px; font-size:14px; color:#244b80; }
.registry-app .registry-selection-chip button { min-width:44px; min-height:44px; border:0; background:transparent; color:inherit; cursor:pointer; font-size:20px; }
@media (max-width:1000px) {
 .registry-app .member-profile-layout { grid-template-columns:minmax(0,1fr); }
 .registry-app .nav-toggle { display:flex; align-items:center; justify-content:center; }
 .registry-app .nav-links { display:none; position:absolute; inset:52px 0 auto; background:#fff; flex-direction:column; padding:12px 16px; max-height:calc(100dvh - 100px); overflow-y:auto; border-bottom:1px solid var(--registry-line); }
 .registry-app .nav-links.show { display:flex; }
 .registry-app .nav-link { min-height:44px; padding:10px 16px; border-radius:10px; }
 .registry-app .detail-header { margin-bottom:0; }
}
@media (max-width:767px) {
 .registry-app .container { padding:20px 16px; }
 .registry-app main { padding-bottom:100px; }
 .registry-app .page-header { padding-bottom:16px; margin-bottom:18px; align-items:flex-start; }
 .registry-app .page-title { font-size:26px; line-height:1.3; }
 .registry-app .page-subtitle { font-size:14px; margin-top:8px; }
 .registry-app .form-section { padding:18px 16px; border-radius:16px; }
 .registry-app .form-grid { gap:16px; }
 .registry-app .detail-header { display:flex; flex-direction:row; align-items:flex-start; gap:12px; }
 .registry-app .detail-avatar { width:56px; height:56px; flex:0 0 56px; border-radius:18px; font-size:24px; }
 .registry-app .detail-title { flex:1; }
 .registry-app .detail-title h1 { font-size:22px; line-height:1.4; }
 .registry-app .detail-actions { margin-top:14px; }
 .registry-app .detail-actions :is(.apple-btn,.btn-submit,.btn-cancel) { padding:10px 14px; }
 .registry-app #memoContainer { width:100%; }
 .registry-app #memoContainer button { min-width:44px; min-height:44px; }
 .registry-app .info-grid, .registry-app .organization-info-grid { grid-template-columns:minmax(0,1fr) !important; gap:0; }
 .registry-app .info-item { display:grid; grid-template-columns:90px minmax(0,1fr); align-items:start; gap:10px; padding:12px 0; border-bottom:1px solid #edf0f4; background:none; }
 .registry-app .info-label { margin:0; font-size:13px; line-height:1.7; }
 .registry-app .info-value { font-size:15px; line-height:1.5; }
 .registry-app .empty-state { padding:28px 12px; }
 .registry-app .empty-state > i { font-size:36px !important; margin-bottom:16px; }
 .registry-app .card-grid { grid-template-columns:minmax(0,1fr); gap:12px; }
 .registry-app .member-card { padding:18px 16px; }
 .registry-app .member-avatar { width:44px; height:44px; }
 .registry-app .member-meta { flex-wrap:wrap; }
 .registry-app .tree-toolbar { gap:8px; }
 .registry-app .tree-search { flex:1 0 100%; }
 .registry-app .expand-all-btn { flex:1; justify-content:center; }
 .registry-app .tree-node-header { padding:14px 12px !important; gap:6px; }
 .registry-app .tree-node-header .node-name { min-width:0; overflow-wrap:anywhere; }
 .registry-app .tree-node-header .node-count { flex-shrink:0; white-space:nowrap; }
 .registry-app .member-chip { min-height:44px; display:inline-flex; align-items:center; flex-wrap:wrap; }
 .registry-app .tree-level-2 { margin-left:8px; }
 .registry-app .tree-level-3 { margin-left:8px; }
 .registry-app .registry-responsive, .registry-app .registry-responsive tbody { display:block; width:100%; }
 .registry-app .registry-responsive thead { position:absolute; width:1px; height:1px; clip-path:inset(50%); overflow:hidden; }
 .registry-app .registry-responsive tr { display:block; padding:12px; margin:0 0 12px; border:1px solid var(--registry-line); border-radius:12px; }
 .registry-app .registry-responsive td { display:grid; grid-template-columns:76px minmax(0,1fr); gap:10px; width:auto !important; padding:8px 0; border:0; white-space:normal; overflow-wrap:anywhere; text-align:left; }
 .registry-app .registry-responsive td::before { content:attr(data-label); color:var(--registry-muted); font-size:13px; }
 .registry-app .registry-responsive td[colspan] { display:block; }
 .registry-app .registry-responsive td[colspan]::before { display:none; }
 .registry-app .mobile-bottom-nav { display:flex; justify-content:space-around; position:fixed; inset:auto 0 0; z-index:950; background:#fff; border-top:1px solid var(--registry-line); padding:6px 8px calc(6px + env(safe-area-inset-bottom)); }
 .registry-app .mobile-bottom-nav a { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; min-height:48px; flex:1; color:#59697c; font-size:12px; text-decoration:none; border-radius:10px; }
 .registry-app .mobile-bottom-nav a[aria-current=page] { color:#125db1; background:#edf4fc; font-weight:700; }
 .registry-app .mobile-bottom-nav i { font-size:20px; }
 .registry-app .floating-chat-btn { bottom:calc(84px + env(safe-area-inset-bottom)); right:16px; width:48px; height:48px; }
 .registry-app .chat-modal { bottom:calc(70px + env(safe-area-inset-bottom)); right:8px; left:8px; width:auto; max-height:calc(100dvh - 140px); }
 .registry-app .chat-modal-messages { min-height:100px; max-height:40dvh; }
 .registry-app[data-page='attendance.attendance_list'] .mobile-bottom-nav { display:none; }
 .registry-app[data-page='attendance.attendance_list'] main { padding-bottom:175px; }
 .registry-app[data-page='attendance.attendance_list'] .floating-chat-btn { bottom:150px; }
 .registry-app .attendance-toolbar { position:fixed; left:0; right:0; bottom:0; z-index:960; background:#fff; padding:12px 16px calc(12px + env(safe-area-inset-bottom)) !important; border-top:1px solid var(--registry-line); box-shadow:0 -4px 18px #172b450a; }
 .registry-app .attendance-toolbar > div { flex-wrap:wrap; }
 .registry-app .attendance-toolbar .apple-btn { padding:8px 12px; }
 .registry-app .attendance-toolbar .btn-submit { margin-left:auto; padding:12px 16px; }
 .registry-app .registry-filter-toggle { display:inline-flex; }
 .registry-app .registry-filter-panel { width:100%; border-top:1px solid var(--registry-line); padding-top:12px; }
 .registry-app #filterForm .search-bar { min-width:0 !important; max-width:none !important; flex-basis:100% !important; }
 .registry-app #filterForm select { max-width:100%; flex:1 1 130px; }
 .registry-app .form-actions { flex-wrap:wrap; gap:8px; }
 .registry-app.keyboard-open .mobile-bottom-nav { display:none; }
}
@media (max-width:359px) {
 .registry-app .container { padding:16px 12px; }
 .registry-app .detail-header { flex-wrap:wrap; }
 .registry-app .detail-title { flex-basis:100%; }
}
.registry-filter-details { min-width:0; flex:1 1 240px; }
.registry-filter-details > summary { display:flex; align-items:center; min-height:44px; padding:10px 14px; border:1px solid var(--registry-line); border-radius:12px; cursor:pointer; font-size:14px; background:#fff; }
.registry-filter-details > summary::after { content:'⌄'; margin-left:auto; }
.registry-filter-options { display:flex; flex-wrap:wrap; gap:10px; padding-top:12px; }
.registry-app .registry-filter-options select { max-width:100%; }
.registry-app #selectedGroupsContainer button { min-width:44px !important; min-height:44px !important; }
.registry-app[data-page='groups.group_detail'] .row > div { min-width:0 !important; }
@media (max-width:767px) {
 .registry-app .registry-filter-details { flex:1 1 150px; }
 .registry-app .registry-filter-options { width:100%; }
 .registry-app[data-page='groups.group_detail'] .row > div { flex:1 1 100% !important; max-width:100%; }
 .registry-app .breadcrumb-path { flex-wrap:wrap; line-height:1.6; }
 .registry-app .member-row { padding:12px 14px; flex-wrap:wrap; gap:8px; }
 .registry-app .member-row-phone { min-width:140px; }
 .registry-app[data-page='attendance.attendance_list'] .form-section-title { flex-wrap:wrap; gap:8px; }
 .registry-app[data-page='attendance.attendance_list'] .form-section-title > span { flex-wrap:wrap; }
 .registry-app .form-section-title { min-width:0; }
 .registry-app .registry-responsive td > * { min-width:0; justify-self:start; }
 .registry-app .address-map-links a { display:inline-flex; align-items:center; min-height:44px; padding:4px 8px; }
 .registry-app .detail-title > p { font-size:14px; line-height:1.65; }
 .registry-app .tab-link { min-height:44px; }
 .registry-app .registry-accordion > summary { margin-bottom:0; }
 .registry-app .registry-accordion[open] > summary { margin-bottom:12px; }
}
@media (prefers-reduced-motion:reduce) {
 .registry-app *, .registry-app *::before, .registry-app *::after { scroll-behavior:auto !important; transition:none !important; animation:none !important; }
}
