/* Theme-aware navigation and editing surfaces, adapted for Maison's web UI. */
.maison-dialog {border:1px solid var(--mint-light,#eadde4);border-radius:24px;background:var(--card-solid,var(--bg,#fff8fb));color:var(--text,#42333d);padding:0;width:min(94vw,600px);max-height:88dvh;margin:auto;box-shadow:0 16px 64px #0003;}
.maison-dialog::backdrop {background:#17122266;}
.maison-dialog[open] {display:flex;flex-direction:column;}
.maison-dialog .dialog-bar {display:flex;align-items:center;gap:8px;padding:4px 12px;flex-shrink:0;border-bottom:1px solid var(--mint-light,#eadde4);}
.maison-dialog .dialog-bar h3 {margin:0;flex:1;font-size:15px;}
.maison-dialog .dialog-bar button {min-height:44px;padding:8px 12px;border-radius:14px;border:0;background:var(--mint-light,#f7e5ed);color:var(--text,#42333d);font:inherit;}
.maison-dialog .dialog-content {overflow-y:auto;padding:18px;overscroll-behavior:contain;}
.maison-dialog .dialog-content textarea {width:100%;box-sizing:border-box;min-height:180px;}
.maison-dialog .dialog-content input {width:100%;box-sizing:border-box;}
.maison-dialog .dialog-bar .dialog-save {background:var(--accent,#cf789b);color:var(--on-accent,#fff);}
#coulisse-view.settings-subpage > :not(.settings-current):not(.settings-backbar) {display:none!important;}
#coulisse-view .settings-current {margin-top:12px;}
#coulisse-view .settings-current > summary {display:none;}
.settings-backbar {position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:8px;padding:4px 0;background:var(--bg,#fff8fb);}
.settings-backbar[hidden] {display:none;}
.settings-backbar h2 {flex:1;font-size:16px;margin:0;color:var(--accent-deep);}
.settings-backbar button {min-height:44px;border:0;border-radius:14px;padding:8px 12px;color:var(--text);background:var(--mint-light);font:inherit;}
#coulisse-view:not(.settings-subpage) .settings-group > summary::after {content:'›';}
#portrait-load {display:none;}
#portrait-editor[hidden] {display:none;}

.maison-dialog .dialog-bar button {width:auto;margin:0;flex-shrink:0;font-size:14px;}
.maison-dialog .dialog-content .field {margin-top:16px;}

.settings-backbar h2,.maison-dialog .dialog-bar h3 {min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3;}
.settings-backbar button {font-size:13px;padding:4px 10px;flex-shrink:0;white-space:nowrap;}
.maison-dialog .dialog-bar button {font-size:13px;padding:4px 10px;white-space:nowrap;}
#portrait-editor {margin-top:0!important;}
.portrait-conversation {width:100%;display:block;text-align:left;padding:13px 12px;border:0;border-radius:12px;background:transparent;color:var(--text);font:inherit;margin:4px 0;overflow-wrap:anywhere;}
.portrait-conversation[aria-current="true"] {background:var(--mint-light);}
.portrait-conversation small {display:block;color:var(--text2);font-size:12px;margin-top:4px;}
.portrait-date {color:var(--accent-deep);font-size:13px;margin:16px 10px 6px;}
#portrait-search {width:100%;padding:10px 12px;border:1px solid var(--mint-light);border-radius:12px;background:var(--card-solid);color:var(--text);font:inherit;}
#portrait-threads[hidden],#portrait-list[hidden] {display:none;}

/* Constrain toolbar geometry even when creative themes style all buttons. */
#settings-backbar {padding:0!important;gap:6px;min-height:44px;}
#settings-backbar > button {box-sizing:border-box;min-height:44px!important;height:44px!important;max-height:44px!important;min-width:44px;width:auto!important;margin:0!important;padding:0 8px!important;font-size:13px!important;line-height:1.2!important;border-radius:12px;}
#settings-backbar > h2 {font-size:15px!important;line-height:1.2;margin:0!important;}

/* Chat navigation: readable primary action, optional actions in a menu. */
/* Themes that blur the bar or the bubbles give each its own layer, and the later
   bubbles then painted over the ••• menu and took its taps: the bar stays on top. */
#window-bar {gap:8px;padding:6px 12px;min-height:52px;box-sizing:border-box;position:relative!important;z-index:45!important;}
#window-bar .window-msg-count {display:none;}
#window-bar .window-title-area {min-height:44px;}
#window-bar .window-title {font-size:16px;}
#window-bar #chat-settings-button,#window-bar > .btn-new-window,#window-bar > #chat-outline-button,#chat-more > summary {box-sizing:border-box;min-height:44px!important;height:44px!important;min-width:44px!important;margin:0!important;border:1px solid var(--mint-light);border-radius:14px;background:var(--card-solid,var(--bg));color:var(--text);font-size:16px!important;line-height:1!important;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;}
#window-bar #chat-settings-button {width:auto!important;padding:0 12px!important;white-space:nowrap;font-weight:600;}
#window-bar > .btn-new-window {width:44px!important;padding:0!important;font-size:23px!important;}
#window-bar > #chat-outline-button {width:44px!important;padding:0!important;}
#chat-outline-button svg {width:20px;height:20px;}
#window-bar > .btn-new-window .ui-icon {width:20px;height:20px;}
#chat-more {position:relative!important;flex-shrink:0;}
#chat-more > summary {list-style:none;width:44px;padding:0;}
#chat-more > summary::-webkit-details-marker {display:none;}
.chat-more-menu {position:absolute!important;right:0!important;left:auto!important;top:50px!important;z-index:90;min-width:150px;padding:6px!important;border:1px solid var(--mint-light);border-radius:16px;background:var(--card-solid,var(--bg));box-shadow:0 8px 28px #0002;}
.chat-more-menu button {display:block!important;box-sizing:border-box;width:100%!important;height:auto!important;min-height:44px!important;margin:0!important;border:0;border-radius:10px;background:transparent;color:var(--text);font:inherit;font-size:15px!important;line-height:1.3!important;text-align:left!important;padding:8px 14px!important;white-space:nowrap;}
/* An item that does not apply to this chat (主动找我 with the main switch off, 记忆本 for a TA without one) stays out of the menu. */
.chat-more-menu button[hidden] {display:none!important;}
#window-list-overlay {top:58px;}
.portrait-card {display:grid!important;grid-template-columns:56px minmax(0,1fr);gap:12px;align-items:center;padding:14px 0;border-bottom:1px solid var(--mint-light);}
.portrait-controls {grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px;}
.portrait-controls button {flex:1;min-height:44px!important;margin:0!important;font-size:15px!important;padding:8px 12px!important;white-space:nowrap;border-radius:12px;}
.portrait-settings-button {border:1px solid var(--accent);background:var(--card-solid);color:var(--accent-deep);font:inherit;font-weight:600;}
#portrait-status:empty {display:none;}
#layers-dialog {width:min(94vw,560px);font-size:16px;}
#layers-dialog .dialog-content {padding:14px 18px;}
#layers-dialog .dialog-bar {padding:6px 12px;}
#layers-dialog .dialog-bar h3 {font-size:17px;}
#layers-dialog button,#layers-dialog summary {min-height:44px;font-size:15px;cursor:pointer;}
#layers-dialog button {border:1px solid var(--mint-light);border-radius:12px;background:var(--card-solid,var(--bg));color:var(--text);padding:8px 12px;}
#layers-dialog [hidden] {display:none!important;}
#layers-status:empty {display:none;}
#layers-status {font-size:14px;}
.layer-person {display:flex;gap:12px;align-items:center;justify-content:space-between;margin-bottom:14px;}
.layer-person strong {font-size:15px;overflow-wrap:anywhere;min-width:0;}
.layer-person button {flex-shrink:0;}
.layer-tabs {display:flex;gap:4px;padding:4px;background:var(--mint-light);border-radius:15px;}
#layers-dialog .layer-tabs button {flex:1;min-width:0;padding:8px 2px;border:0;background:transparent;white-space:nowrap;}
#layers-dialog .layer-tabs button[aria-pressed="true"] {background:var(--card-solid,var(--bg));color:var(--accent-deep);font-weight:600;}
.layer-hint {font-size:13px!important;line-height:1.6!important;color:var(--text2);margin:12px 0;}
.layer-section-top {display:flex;align-items:center;gap:10px;}
.layer-section-top .layer-hint {flex:1;}
.layer-section-top button {flex-shrink:0;}
.layer-group-title {font-size:13px;color:var(--text2);margin:18px 0 4px;}
.layer-toggle {display:flex!important;align-items:center;justify-content:space-between;gap:14px;min-height:54px;cursor:pointer;border-bottom:1px solid var(--mint-light);font-size:16px;}
.layer-toggle span {overflow-wrap:anywhere;min-width:0;}
#layers-dialog input[type="checkbox"] {appearance:none;-webkit-appearance:none;box-sizing:border-box;width:44px!important;height:26px!important;min-width:44px;border:1px solid var(--text3);border-radius:20px;background:var(--mint-light);margin:0;padding:0;flex-shrink:0;position:relative;cursor:pointer;}
#layers-dialog input[type="checkbox"]::before {content:'';position:absolute;left:3px;top:3px;width:18px;height:18px;border-radius:50%;background:var(--text2);transition:transform .15s;}
#layers-dialog input[type="checkbox"]:checked {background:var(--accent);border-color:var(--accent);}
#layers-dialog input[type="checkbox"]:checked::before {transform:translateX(18px);background:var(--card-solid,#fff);}
#layers-dialog :focus-visible {outline:2px solid var(--accent-deep);outline-offset:3px;}
#layers-dialog input:disabled {opacity:.55;}
.layer-entry-actions {display:flex;gap:8px;justify-content:flex-end;margin:8px 0 12px;}
.layer-empty {font-size:14px;color:var(--text2);text-align:center;padding:28px 0;}
#layers-dialog select {width:100%;padding:10px;background:var(--card-solid);color:var(--text);}
#layers-help {margin-top:18px;color:var(--text2);font-size:13px;}
#layers-help summary {display:flex;align-items:center;list-style:none;}
#layers-help summary::-webkit-details-marker {display:none;}
#layers-dialog .dialog-content .field {margin-top:12px;}
#layers-dialog textarea {font-size:16px;}
#layers-dialog #layers-keywords {min-height:96px;}
#chat-settings-button,#chat-more button,#chat-more summary,#layers-dialog button,.portrait-controls button {font-family:inherit;}
#layers-dialog {height:min(82dvh,720px);}
#layers-dialog .dialog-content {flex:1;min-height:0;}
