/* Compact list header, with clear space reserved for stories and personal status. */
.app.app .sidebar{position:relative;padding:18px 18px 0}
.app.app .sidebar-head{padding:0 2px 6px;background:none;position:relative;z-index:81}
.app.app .list-topbar{display:flex;align-items:center;gap:14px;min-height:56px;margin:0;padding:0}
.app.app .list-topbar>.list-profile{margin:0!important;display:grid;place-items:center;width:50px;height:50px;flex:0 0 50px;padding:0;border:0;background:none;box-shadow:none}
.app.app .list-profile>.avatar{width:48px;height:48px;font-size:17px}
.app.app .stories-space{flex:1;min-width:0;display:flex;flex-direction:column;gap:7px;padding-right:6px}
.app.app .status-caption{font-size:10px;letter-spacing:.3px;color:var(--soft)}
.app.app .status-line{display:flex;align-items:center;gap:7px;min-width:0;font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.app.app .status-line>i{width:6px;height:6px;border-radius:50%;flex:0 0 auto;background:#8b9d74}
.app.app .list-search-toggle{flex:0 0 44px;width:44px;height:44px;color:var(--text);background:color-mix(in srgb,var(--panel) 20%,transparent);box-shadow:none}
.app.app .list-search{display:none;margin:5px 0 2px;flex:none;animation:searchFieldArrival 180ms ease-out}
.app.app .list-search[data-open=true]{display:flex}
.app.app .folder-strip{margin:10px 0 0!important;min-height:52px;flex:none}
.app.app .filters.folder-tabs{background:color-mix(in srgb,var(--panel) var(--folder-opacity,38%),transparent)!important;backdrop-filter:blur(14px)!important;-webkit-backdrop-filter:blur(14px)!important}
.app.app .filters.folder-tabs .folder-tab{background:transparent!important}
.app.app .filters.folder-tabs .folder-tab.active{background:color-mix(in srgb,var(--panel) var(--folder-opacity,38%),transparent)!important}
.app.app .folder-strip>.folder-edit-button:not(.selection-mode){background:color-mix(in srgb,var(--panel) var(--folder-opacity,38%),transparent)!important;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.app.app .gesture-hint,.app.app .list-label{display:none!important}
/* The list continues under the floating folder tray, so scrolling chats show through its glass. */
.app.app .folder-viewport{margin:-64px -6px 0!important;isolation:isolate}
.app.app .folder-pages>.chat-list{padding:76px 5px 92px!important}
.app.app .list-compose{position:absolute;right:22px;bottom:calc(90px + env(safe-area-inset-bottom));width:54px;height:54px;display:grid;place-items:center;padding:0;z-index:85;box-shadow:var(--depth-accent);color:var(--accent-text)}
.app.app .profile-hero{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:10px 0 20px}
.app.app .profile-hero>.avatar{width:88px;height:88px;font-size:30px;flex:none}
.app.app .profile-hero>h2{margin:0;max-width:100%;overflow-wrap:anywhere;font-size:23px}
.app.app .profile-handle{font-size:13px;color:var(--muted)}
.app.app .profile-intro{text-align:center;margin:0 0 18px}
.app.app .folder-picker-heading{display:flex;align-items:center;gap:14px;padding-right:28px;margin-bottom:16px}
.app.app .folder-picker-heading .modal-symbol{margin:0;flex:none}
.app.app .folder-picker-heading h2{margin:0 0 6px;overflow-wrap:anywhere}
.app.app .folder-picker-heading p{margin:0;line-height:1.5}
.app.app .folder-picker-search{margin:0 0 12px!important;flex-direction:row!important;align-items:center}
.app.app .folder-picker-tools{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin:0 0 10px}
.app.app .folder-picker-tools>strong{font-size:12px;margin-right:auto}
.app.app .folder-picker-tools>button{font-size:11px;padding:7px 9px}
.app.app .folder-chat-picker{max-height:min(380px,43dvh);overflow:auto;overscroll-behavior:contain;margin:0 -4px;padding:0 4px}
.app.app .folder-chat-choice,.app.app .folder-destination{border:1px solid var(--line);padding:12px;margin:0 0 7px;border-radius:var(--ui-radius);gap:12px}
.app.app .folder-chat-choice.chosen,.app.app .folder-destination.chosen{background:var(--accent-faint);border-color:var(--accent)}
.app.app .folder-chat-choice .avatar{width:42px;height:42px}
.app.app .picker-check{width:24px;height:24px;display:grid;place-items:center;flex:0 0 24px;border:1.5px solid var(--line);border-radius:var(--ui-radius);color:var(--accent-text)}
.app.app .picker-check.checked{background:var(--accent);border-color:var(--accent)}
.app.app .folder-picker-footer{padding-top:14px;border-top:1px solid var(--line);margin-top:10px}
.app.app .folder-picker-footer>p{text-align:center;font-size:11px;margin:0}
.app.app .folder-destination-list{max-height:35dvh;overflow:auto;overscroll-behavior:contain}
.app.app .folder-inline-create{border:1px solid var(--line);border-radius:var(--ui-radius);padding:15px;background:var(--surface);margin-top:20px}
.app.app .folder-inline-create>h3{font-size:13px;margin-bottom:10px}
.app.app .folder-inline-create>form{margin:0}
.app.app .folder-inline-create input{width:100%}
.app.app .folder-empty-note{background:var(--accent-faint);border-radius:var(--ui-radius);padding:14px}
.app.app .folder-members-button{display:flex;align-items:center;gap:8px;color:var(--accent);padding:6px 0;min-height:30px}
@keyframes searchFieldArrival{from{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:none}}
@media(min-width:901px){.app.app .list-compose{bottom:128px}}
@media(orientation:landscape) and (max-height:600px){.app.app .sidebar{padding-top:8px}.app.app .sidebar-head{padding-bottom:0}.app.app .list-topbar{min-height:42px}.app.app .list-profile>.avatar{width:38px;height:38px}.app.app .list-topbar>.list-profile{width:40px;height:40px;flex-basis:40px}.app.app .stories-space{gap:3px}.app.app .folder-strip{min-height:38px;margin-top:4px!important}.app.app .folder-viewport{margin-top:-44px!important}.app.app .folder-pages>.chat-list{padding-top:54px!important}.app.app .list-compose{width:44px;height:44px;bottom:74px;right:14px}.app.app .profile-hero{padding:0 0 10px;gap:5px}.app.app .profile-hero>.avatar{width:68px;height:68px;font-size:24px}.app.app .folder-chat-picker{max-height:34dvh}.app.app .folder-destination-list{max-height:27dvh}}
@media(prefers-reduced-motion:reduce){.app.app .list-search{animation:none}}
.app.app .list-compose{background-color:var(--accent)!important;background-image:linear-gradient(145deg,color-mix(in srgb,var(--accent-text) 12%,transparent),transparent 70%)!important;color:var(--accent-text)!important}
.app.app .list-compose>svg{color:inherit;stroke:currentColor}
/* Confirmation messages must never cover the next form action. */
.app.app>.toast{pointer-events:none}
.app.app>.toast>.icon-button{pointer-events:auto}
.app.app:has(>.modal-backdrop)>.toast{top:calc(12px + env(safe-area-inset-top));bottom:auto}

/* The search button and input are one persistent surface, anchored to the right. */
.app.app .list-topbar{position:relative}
.app.app .list-search-shell{position:absolute;right:0;top:50%;transform:translateY(-50%);width:44px;height:44px;border:1px solid var(--line);border-radius:var(--ui-radius);background:color-mix(in srgb,var(--panel) 20%,transparent);overflow:hidden;z-index:2;transition:width 360ms cubic-bezier(.22,.8,.22,1),background-color 280ms ease,border-color 280ms ease,box-shadow 280ms ease;will-change:width}
.app.app .list-search-shell[data-open=true]{width:calc(100% - 64px);background:color-mix(in srgb,var(--input) 84%,transparent);border-color:color-mix(in srgb,var(--accent) 38%,var(--line));box-shadow:var(--edge-hi)}
.app.app .list-search-shell>.list-search-toggle{position:absolute;left:0;top:0;width:42px;height:42px;min-width:42px;min-height:42px;margin:0;border:0;background:none;box-shadow:none;padding:0;color:var(--muted)}
.app.app .list-search-content{position:absolute;left:42px;right:5px;top:0;bottom:0;display:flex;align-items:center;gap:2px;min-width:0;opacity:0;visibility:hidden;pointer-events:none;transform:translateX(8px);transition:opacity 140ms ease,transform 240ms ease,visibility 0s linear 180ms}
.app.app .list-search-shell[data-open=true]>.list-search-content{opacity:1;visibility:visible;pointer-events:auto;transform:translateX(0);transition:opacity 210ms ease 70ms,transform 300ms cubic-bezier(.22,.8,.22,1),visibility 0s}
.app.app .list-search-content>input{width:100%;flex:1;min-width:0;height:100%;padding:0 2px;border:0;background:none;box-shadow:none;outline:none;font-size:13px}
.app.app .list-search-content>.list-search-close{width:32px;height:32px;min-width:32px;min-height:32px;padding:0;flex:0 0 32px;background:none;border:0;box-shadow:none}
.app.app .list-topbar>.stories-space{padding-right:54px;transition:opacity 170ms ease,transform 280ms cubic-bezier(.22,.8,.22,1);}
.app.app .list-topbar[data-search-open=true]>.stories-space{opacity:0;transform:translateX(-6px);pointer-events:none}
@media(orientation:landscape) and (max-height:600px){.app.app .list-search-shell[data-open=true]{width:calc(100% - 54px)}}
@media(prefers-reduced-motion:reduce){.app.app .list-search-shell,.app.app .list-search-content,.app.app .list-topbar>.stories-space{transition:none!important}}

/* Decorative descendants cannot restore hit testing over live controls. */
.app.app .closing-shell,.app.app .closing-shell *{pointer-events:none!important}

/* Selection controls use the folder bar; they never sit on top of a chat to be dragged. */
.app.app .folder-strip>.selection-toolbar{top:0;right:54px;width:calc(100% - 54px);height:100%;display:flex;align-items:center;gap:4px;padding:4px;overflow:hidden;transform-origin:right center}
.app.app .selection-toolbar>.selection-count{display:flex;align-items:center;gap:4px;flex:1;min-width:0;margin:0}
.app.app .selection-toolbar .selection-count>.icon-button{width:30px;height:34px;min-width:30px;min-height:34px;flex:none;padding:0}
.app.app .selection-toolbar .selection-count>strong{font-size:11px;white-space:nowrap}
.app.app .selection-toolbar .selection-count>.quiet-button{padding:5px;font-size:10px;min-width:25px}
.app.app .selection-toolbar>.selection-actions{flex:none;gap:4px;margin:0}
.app.app .selection-toolbar .selection-actions>button{width:34px;min-width:34px;min-height:36px;padding:5px;gap:0}
.app.app .selection-toolbar .selection-actions>button>span{display:none}
@media(max-width:340px){.app.app .selection-toolbar .selection-count>.quiet-button{display:none}.app.app .selection-toolbar .selection-count>strong{font-size:10px}}
