#settings-app-root{display:flex;flex-direction:column;height:100%}
.settings-scroll{overflow-y:auto;padding-bottom:calc(20px + var(--sab))}
.settings-notice{font-size:12px;color:var(--ink2);line-height:1.6;background:var(--pri-pale);border-radius:14px;padding:11px 13px;margin-bottom:6px}
.settings-coming-soon{display:inline-block;font-size:10px;font-weight:700;color:var(--ink2);background:var(--surface-alt);border-radius:999px;padding:2px 7px;vertical-align:middle}
.settings-hint{font-size:11.5px;color:var(--ink2);line-height:1.6;padding:10px 4px}
.settings-inline-retry{border:none;background:transparent;color:var(--accent-text);font-family:inherit;font-size:12px;font-weight:700;padding:0 4px;cursor:pointer;text-decoration:underline}

/* profile entry card */
.settings-profile-card{width:100%;display:flex;align-items:center;gap:12px;border:none;background:var(--surface);box-shadow:var(--shadow);border-radius:16px;padding:12px 13px;margin:4px 0 18px;text-align:left;color:var(--ink);font-family:inherit}
.settings-av{width:46px;height:46px;border-radius:50%;overflow:hidden;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--surface-alt);color:var(--mist)}
.settings-av img{width:100%;height:100%;object-fit:cover}
.settings-av-fallback{width:100%;height:100%;display:flex;align-items:center;justify-content:center}
.settings-av-fallback svg{width:22px;height:22px;stroke-width:1.5}
.settings-av.lg{width:76px;height:76px}
.settings-av.lg .settings-av-fallback svg{width:34px;height:34px}
.settings-profile-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.settings-profile-main b{font-size:14.5px;color:var(--ink)}
.settings-profile-main span{font-size:12px;color:var(--ink2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.settings-profile-side{display:flex;align-items:center;gap:6px;flex-shrink:0}
.settings-completeness-wrap{display:flex;flex-direction:column;align-items:flex-end;gap:3px}
.settings-completeness{font-size:10.5px;color:var(--accent-text);white-space:nowrap}
.settings-completeness-bar{width:52px;height:3px;border-radius:999px;background:var(--surface-alt);overflow:hidden}
.settings-completeness-fill{display:block;height:100%;background:var(--accent-text);opacity:.55;border-radius:999px}
.settings-profile-side>svg{width:14px;height:14px;color:var(--mist);transform:rotate(180deg);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

.settings-avatar-edit{display:flex;flex-direction:column;align-items:center;gap:10px;padding:8px 0 20px}
.settings-avatar-edit>span{font-size:11.5px;color:var(--ink2);text-align:center;max-width:240px}
.settings-avatar-edit .settings-av{border:none;cursor:pointer}
.settings-profile-page{padding:12px 14px calc(22px + var(--sab))}
.settings-profile-hero{display:flex;align-items:center;gap:18px;padding:10px 4px 14px}
.settings-profile-hero-text{display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-width:0}
.settings-profile-hero .settings-av{border:none;cursor:pointer;box-shadow:var(--shadow)}
.settings-profile-hero strong{font-family:var(--font-display);font-size:20px;font-weight:700;color:var(--ink);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.settings-profile-hero button:not(.settings-av),.settings-profile-link{display:inline-flex;align-items:center;gap:4px;border:none;background:none;color:var(--accent-text);font-family:inherit;font-size:13px;font-weight:700;min-height:32px;padding:0;cursor:pointer}
.settings-profile-hero button:not(.settings-av) svg,.settings-profile-link svg{width:14px;height:14px;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.settings-profile-hero p,.settings-profile-copy{margin:0;color:var(--ink2);font-size:12px;line-height:1.5}
.settings-profile-section{background:var(--surface);box-shadow:var(--shadow);border-radius:17px;padding:14px;margin-bottom:13px}
.settings-profile-section h2{font-family:var(--font-display);font-size:17px;font-weight:700;color:var(--ink);margin:0 0 11px}
.settings-profile-section.plain{background:none;box-shadow:none;padding:4px 0 0}
.settings-profile-head{display:flex;align-items:center;gap:8px;margin:0 2px 12px}
.settings-profile-head h2{margin:0}
.settings-profile-info{display:inline-flex;border:none;background:none;color:var(--ink2);padding:4px;cursor:pointer}
.settings-profile-info svg{width:18px;height:18px;stroke-width:1.6;stroke-linecap:round}
.settings-profile-head+.settings-profile-copy{margin:-4px 2px 12px}
.settings-profile-sub{margin:-6px 2px 12px;font-size:12px;color:var(--ink2)}
.settings-profile-box{background:var(--surface);box-shadow:var(--shadow);border-radius:16px;padding:16px;margin-bottom:12px}
.settings-profile-count{align-self:flex-end;margin-top:-2px;font-size:11.5px;color:var(--ink2)}
.aic-group-icon{display:inline-flex;color:var(--ink2);flex-shrink:0}
.aic-group-icon svg{width:22px;height:22px;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.profile-dating-head{width:100%;display:flex;align-items:center;gap:14px;border:none;background:none;color:var(--ink);font-family:inherit;text-align:left;padding:0 0 6px;cursor:pointer}
.profile-dating-title{flex:1;min-width:0;font-family:var(--font-display);font-size:16px;font-weight:700}
.profile-dating-head>svg,.settings-profile-details>summary>svg,.aic-field-row>svg{width:14px;height:14px;color:var(--mist);flex-shrink:0;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:transform .16s ease}
.profile-dating-card .settings-profile-copy{padding-left:36px}
.profile-dating-card .settings-profile-link{margin-left:36px;width:calc(100% - 36px)}
.settings-profile-section h3{font-size:13px;color:var(--ink2);margin:12px 0 8px}
.settings-profile-field{display:flex;flex-direction:column;gap:6px;margin-bottom:10px;min-width:0}
.settings-profile-field span,.settings-profile-field-head b{font-size:12.5px;color:var(--ink);font-weight:700}
.settings-profile-field input,.settings-profile-field textarea,.settings-profile-chip-field input{width:100%;border:1px solid var(--border);border-radius:12px;background:var(--bg);color:var(--ink);font-family:inherit;font-size:14px;padding:10px;outline:none;min-width:0}
.settings-profile-field textarea{min-height:68px;resize:none}
.settings-profile-two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:9px}
.settings-profile-details{border-radius:16px;background:var(--surface);box-shadow:var(--shadow);padding:0 16px;margin:0 0 12px}
.settings-profile-details>summary{list-style:none;min-height:54px;display:flex;align-items:center;gap:14px;font-size:14px;font-weight:800;color:var(--ink);cursor:pointer}
.settings-profile-details>summary::-webkit-details-marker{display:none}
.settings-profile-details-title{flex:1;min-width:0}
.settings-profile-details[open]>summary>svg{transform:rotate(-90deg)}
.settings-profile-private-note{display:flex;align-items:center;gap:10px;margin:0 0 14px;padding:12px 14px;border-radius:12px;background:var(--bg);font-size:12.5px;line-height:1.5;color:var(--ink2)}
.settings-profile-private-note svg{width:18px;height:18px;flex-shrink:0;stroke-width:1.7;stroke-linejoin:round}
.settings-profile-private-foot{margin:4px 0 0;padding:12px 0 14px;border-top:.5px solid var(--border);font-size:12px;color:var(--ink2)}
.settings-profile-details .settings-profile-field:last-child{margin-bottom:10px}
.settings-profile-chip-field{border-radius:14px;background:var(--bg);box-shadow:var(--shadow-in);padding:10px;margin-bottom:10px;min-width:0}
.settings-profile-field-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:8px;min-width:0}
.settings-profile-chips{display:flex;flex-wrap:wrap;gap:5px;justify-content:flex-end;min-width:0}
.settings-profile-chips span{border-radius:999px;background:var(--pri-pale);color:var(--accent-text);font-size:11px;font-weight:800;padding:4px 8px;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.settings-profile-like-box{margin:10px 0 2px}
.settings-profile-link{margin-top:10px;padding-top:10px;border-top:.5px solid var(--border);width:100%}

/* groups + rows */
.settings-group-label{font-size:12px;font-weight:800;color:var(--ink2);padding:19px 4px 7px}
.settings-group-label:first-child{padding-top:4px}
.settings-group{background:var(--surface);border-radius:16px;box-shadow:var(--shadow);overflow:hidden}
.settings-row{width:100%;display:flex;align-items:center;gap:10px;border:none;background:none;color:var(--ink);font-family:inherit;font-size:13.5px;padding:12px 14px;text-align:left;border-bottom:.5px solid var(--border)}
.settings-group>.settings-row:last-child,.settings-group>.settings-field-row:last-child{border-bottom:none}
.settings-row .icon-inline{color:var(--pri-deep);flex-shrink:0;display:flex;align-items:center;justify-content:center}
.settings-row .icon-inline svg{width:17px;height:17px;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.settings-row-label{flex:1;min-width:0}
.settings-row-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.settings-row-text .settings-row-label{flex:none}
.settings-row-sub{font-size:10.5px;color:var(--ink2);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.settings-row-sub.wrap{white-space:normal;overflow:visible;text-overflow:clip;line-height:1.4}
.settings-check{display:flex;flex-shrink:0}.settings-check svg{width:17px;height:17px;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.lang-row.current{background:var(--surface-alt)}.lang-row .settings-check{color:var(--accent-text)}
.settings-row-val{font-size:12px;color:var(--ink2);flex-shrink:0;max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.settings-row>svg{width:14px;height:14px;color:var(--mist);transform:rotate(180deg);flex-shrink:0;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.settings-row.danger{color:var(--coral-text)}
.settings-row.danger .settings-row-label{color:var(--coral-text)}
.settings-row.st-warn .settings-row-val{color:var(--coral-text)}

/* privacy & AI: read-only data-boundary summary rows (settingsDataBoundaryHtml) */
.settings-data-row{padding:10px 14px;border-bottom:.5px solid var(--border)}
.settings-group>.settings-data-row:last-child{border-bottom:none}
.settings-data-row-head{display:flex;align-items:center;flex-wrap:wrap;gap:5px 7px}
.settings-data-row-name{font-size:13px;font-weight:800;color:var(--ink);margin-right:1px}
.settings-status-chip{display:inline-block;font-size:10px;font-weight:700;border-radius:999px;padding:2px 8px;white-space:nowrap;line-height:1.5}
.settings-status-local{background:var(--surface-alt);color:var(--ink2)}
.settings-status-mirror,.settings-status-cloud{background:var(--pri-pale);color:var(--accent-text)}
.settings-status-ai-yes{background:var(--coral-soft);color:var(--coral-text)}
.settings-status-ai-no{background:var(--surface-alt);color:var(--ink2)}
.settings-status-ai-mention{background:var(--surface-alt);color:var(--accent-text)}
.settings-data-row-note{margin:4px 0 0;font-size:11px;color:var(--ink2);line-height:1.55}

/* form rows shared by every settings sub-page */
.settings-form{display:flex;flex-direction:column}
.settings-field-row{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:.5px solid var(--border);font-size:13px;color:var(--ink)}
.settings-field-row>span:first-child:not(.settings-row-text){flex:1;min-width:0;color:var(--ink2);font-weight:600;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.settings-field-row>.settings-row-text{flex:1;min-width:0}
.settings-field-row>.settings-row-text .settings-row-label{color:var(--ink2);font-weight:600;font-size:13px}
.settings-field-row input[type=text],.settings-field-row input[type=time],.settings-field-row input[type=password],.settings-field-row select{border:none;background:none;color:var(--ink);font-family:inherit;font-size:13px;text-align:right;outline:none;max-width:52%}
.settings-field-row.block{flex-direction:column;align-items:stretch;gap:6px}
.settings-field-row.block>span:first-child{flex:none}
.settings-field-row textarea{border:1px solid var(--border);border-radius:12px;background:var(--bg);color:var(--ink);font-family:inherit;font-size:13px;padding:9px 10px;min-height:64px;resize:vertical;outline:none}
.settings-vis-chip{border:none;border-radius:999px;background:var(--surface-alt);color:var(--accent-text);font-family:inherit;font-size:10.5px;font-weight:700;padding:3px 9px}

.settings-sync-preview-row{display:flex;justify-content:space-between;gap:10px;padding:7px 2px;font-size:12.5px;border-bottom:.5px solid var(--border)}
.settings-sync-preview-row b{color:var(--ink2);font-weight:700}
.settings-sync-preview-row span{color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:60%}

/* AI Knows Me (renderAIContextPage / aiGroupHtml / aiFieldRowHtml) - pre-existing page that had no
   dedicated styles at all, so every .aic-* element rendered as an unstyled native button/div (visible
   borders, default font, and svgIcon()'s raw <svg> at its intrinsic size instead of the usual 14-17px
   icon). Not introduced by the settings IA pass - found while linking into this page from the reorganized
   home screen. Mirrors the existing .settings-group / .settings-row / .settings-vis-chip visual language. */
.aic-summary{background:var(--surface);box-shadow:var(--shadow);border-radius:16px;padding:2px 14px;margin-bottom:14px}
.aic-summary-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:.5px solid var(--border);font-size:13px;color:var(--ink2)}
.aic-summary-row b{color:var(--ink);font-weight:700;text-align:right}
.aic-manage-vis{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;border:none;background:none;color:var(--ink2);font-family:inherit;font-size:13px;text-align:left;padding:12px 0;cursor:pointer}
.aic-manage-vis b{color:var(--ink);font-weight:700}
.aic-manage-vis-go{display:inline-flex;align-items:center;gap:4px;color:var(--accent-text);font-weight:800;flex-shrink:0}
.aic-manage-vis svg{width:14px;height:14px;color:var(--mist);flex-shrink:0;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

.aic-save-pill{display:inline-flex;align-items:center;border:none;border-radius:999px;background:var(--surface-alt);box-shadow:var(--shadow);color:var(--ink2);font-family:inherit;font-size:11.5px;font-weight:700;padding:5px 12px;margin:0 0 10px}
.aic-save-pill[hidden]{display:none}
.aic-save-pill[data-status="saved"]{color:var(--green-text)}
.aic-save-pill[data-status="failed"]{color:var(--coral-text);cursor:pointer}
.aic-save-pill[data-status="saving"],.aic-save-pill[data-status="restoring"]{color:var(--accent-text)}

.aic-groups{background:var(--surface);box-shadow:var(--shadow);border-radius:16px;overflow:hidden;padding:0 16px;margin-bottom:12px}
.aic-group+.aic-group{border-top:.5px solid var(--border)}
.aic-group-head{width:100%;display:flex;align-items:center;justify-content:space-between;gap:14px;border:none;background:none;color:var(--ink);font-family:inherit;padding:15px 0;text-align:left;cursor:pointer}
.aic-group-title{font-size:14px;font-weight:800;flex:1;min-width:0}
.aic-group-meta{display:flex;align-items:center;gap:8px;flex-shrink:0}
.aic-group-status{font-size:12.5px;color:var(--ink2);white-space:nowrap}
.aic-group-vis,.aic-field-vis{border:none;border-radius:999px;background:var(--surface-alt);color:var(--accent-text);font-family:inherit;font-size:10.5px;font-weight:700;padding:3px 9px;flex-shrink:0}
.aic-field-meta{display:flex;align-items:center;gap:5px;font-size:11.5px;color:var(--ink2)}
.aic-field-meta .aic-field-vis{background:none;padding:0;font-size:11.5px;font-weight:600;cursor:pointer}
.aic-group-meta>svg{width:14px;height:14px;color:var(--mist);flex-shrink:0;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:transform .16s ease}
.aic-group.open .aic-group-meta>svg{transform:rotate(-90deg)}
.aic-group-vis-row{font-size:12.5px}
.aic-group-body{margin-left:36px;border-top:.5px solid var(--border)}

.aic-field{border-bottom:.5px solid var(--border)}
.aic-group-body>.aic-field:last-child,.aic-group-body>.aic-field-row:last-child{border-bottom:none}
.aic-field-row{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;border:none;background:none;color:var(--ink);font-family:inherit;font-size:13px;padding:11px 0;text-align:left;cursor:pointer}
.aic-field.editing .aic-field-row>svg{transform:rotate(90deg)}
.aic-field-row>span:first-child:not(.aic-field-main){flex:1;min-width:0;color:var(--ink2);font-weight:600;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.aic-field-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.aic-field-label{font-size:13px;font-weight:700;color:var(--ink)}
.aic-field-preview{font-size:12px;color:var(--ink2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.aic-field-edit{padding:0 0 12px}
.aic-input{width:100%;border:1px solid var(--border);border-radius:12px;background:var(--bg);color:var(--ink);font-family:inherit;font-size:13px;padding:10px;outline:none;min-height:76px;resize:none}
/* 我的资料: tabs, read tier, length counter, 旧资料 conflicts */
.settings-profile-tabs{display:flex;border-bottom:.5px solid var(--border);margin:0 0 16px}
.settings-profile-tabs button{flex:1;border:none;border-bottom:2px solid transparent;background:none;color:var(--ink2);font-family:inherit;font-size:14px;font-weight:600;padding:10px 4px 11px;margin-bottom:-.5px;cursor:pointer}
.settings-profile-tabs button[aria-selected="true"]{color:var(--ink);font-weight:800;border-bottom-color:var(--pri)}
.aic-count{display:block;margin-top:6px;font-size:11.5px;color:var(--ink2);line-height:1.5}
.aic-count.over{color:var(--ink);font-weight:700}
.profile-conflicts{display:flex;flex-direction:column;gap:8px}
.profile-conflicts b{display:block;color:var(--ink);margin-bottom:2px}
.profile-conflict-list{display:flex;flex-wrap:wrap;gap:6px}
.profile-conflict-compare{display:flex;flex-direction:column;gap:8px;margin-bottom:8px}
.profile-conflict-compare>div{border-radius:12px;background:var(--bg);box-shadow:var(--shadow-in);padding:10px 12px}
.profile-conflict-compare b{display:block;font-size:12px;color:var(--ink2);margin-bottom:4px}
.profile-conflict-compare p{font-size:13px;color:var(--ink);line-height:1.6;margin:0;white-space:pre-wrap;word-break:break-word;max-height:30vh;overflow:auto;scrollbar-width:none}
.profile-conflict-compare p::-webkit-scrollbar{display:none}

/* 谁可以知道: centered dialog (same overlay as the sheets, like calendar's cal-dialog-ov) */
.sheet-ov.aic-vis-ov{align-items:center;padding:20px}
.sheet.aic-vis-dialog{max-width:360px;border-radius:22px;padding:20px 20px 18px;animation:none}
.aic-vis-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.aic-vis-head h2{margin:0;font-size:18px;color:var(--ink)}
.aic-vis-close{display:inline-flex;border:none;background:none;color:var(--ink2);padding:2px;margin:-2px -4px 0 0;cursor:pointer}
.aic-vis-close svg{width:20px;height:20px;stroke-width:1.7;stroke-linecap:round}
.aic-vis-sub{margin:6px 0 14px;font-size:12.5px;line-height:1.5;color:var(--ink2)}
.aic-vis-options{display:flex;flex-direction:column;gap:8px}
.aic-vis-option{display:flex;align-items:center;justify-content:space-between;border:1px solid var(--border);border-radius:14px;background:var(--surface);color:var(--ink);font-family:inherit;font-size:14.5px;font-weight:700;padding:14px 16px;text-align:left;cursor:pointer}
.aic-vis-option i{width:20px;height:20px;border-radius:50%;border:1.5px solid var(--mist);flex-shrink:0}
.aic-vis-option[aria-checked="true"]{background:var(--pri-pale);border-color:var(--pri)}
.aic-vis-option[aria-checked="true"] i{border-color:var(--pri);box-shadow:inset 0 0 0 4px var(--surface);background:var(--pri)}
.aic-vis-options{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.aic-vis-divider{border:none;border-top:.5px solid var(--border);margin:16px 0 12px}
.aic-vis-pick-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:10px}
.aic-vis-pick-head b{font-size:15px;font-weight:800;color:var(--ink)}
.aic-vis-pick-head span{font-size:12px;color:var(--ink2)}
.aic-vis-chars{border:1px solid var(--border);border-radius:14px;padding:0 14px;max-height:34dvh;overflow-y:auto;scrollbar-width:none}
.aic-vis-char{width:100%;display:flex;align-items:center;gap:14px;border:none;border-bottom:.5px solid var(--border);background:none;color:var(--ink);font-family:inherit;font-size:14px;font-weight:700;text-align:left;padding:10px 0;cursor:pointer}
.aic-vis-char:last-child{border-bottom:none}
.aic-vis-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.aic-vis-av{width:40px;height:40px;border-radius:50%;overflow:hidden;flex-shrink:0;background:var(--bg);display:flex;align-items:center;justify-content:center}
.aic-vis-av img{width:100%;height:100%;object-fit:cover}
.aic-vis-av svg{width:22px;height:22px;stroke-width:1.5}
.aic-vis-char i{width:22px;height:22px;border-radius:6px;border:1.5px solid var(--border);display:flex;align-items:center;justify-content:center;color:transparent;flex-shrink:0}
.aic-vis-char i svg{width:15px;height:15px;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.aic-vis-char[aria-checked="true"] i{background:var(--pri);border-color:var(--pri);color:var(--on-pri,#fff)}
.aic-vis-chars::-webkit-scrollbar,.aic-manage-list::-webkit-scrollbar{display:none}
.aic-manage-dialog{display:flex;flex-direction:column;overflow:hidden}
.aic-manage-list{flex:1;min-height:0;overflow-y:auto;scrollbar-width:none;margin:0 -4px 14px;padding:0 4px}
.aic-manage-group{font-size:12.5px;font-weight:700;color:var(--ink2);padding:14px 0 6px;border-bottom:.5px solid var(--border)}
.aic-manage-group:first-child{padding-top:2px}
.aic-manage-row{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;border:none;border-bottom:.5px solid var(--border);background:none;color:var(--ink);font-family:inherit;font-size:14px;text-align:left;padding:13px 0;cursor:pointer}
.aic-manage-val{display:inline-flex;align-items:center;gap:4px;font-size:12.5px;color:var(--ink2);flex-shrink:0}
.aic-manage-val svg{width:14px;height:14px;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.aic-vis-hint{margin:12px 2px 14px;font-size:12px;color:var(--ink2)}
.s-btn.aic-vis-done{width:100%;height:46px;border-radius:14px;font-size:15px}
.aic-reply-length{padding:12px 0 14px;border-bottom:.5px solid var(--border)}
.aic-reply-length>span{display:block;font-size:13px;font-weight:700;color:var(--ink);margin-bottom:10px}
.aic-segment{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--border);border-radius:12px;overflow:hidden}
.aic-segment button{border:none;border-left:1px solid var(--border);background:var(--surface);color:var(--ink2);font-family:inherit;font-size:13.5px;padding:9px 4px;cursor:pointer}
.aic-segment button:first-child{border-left:none}
.aic-segment button[aria-checked="true"]{background:var(--pri-pale);color:var(--ink);font-weight:800}
.aic-group-body>.aic-field-row:has(#ai-proactiveness)>span{color:var(--ink);font-weight:700}
.aic-field-row .aic-select,.aic-select{border:1px solid var(--border);border-radius:10px;background:var(--bg);color:var(--ink);font-family:inherit;font-size:13px;padding:6px 8px;outline:none}
.toggle.sm{width:36px;height:20px;border-radius:10px}
.toggle.sm::after{width:16px;height:16px}
.toggle.sm.on::after{transform:translateX(16px)}
.settings-bottom-space{height:24px}

.settings-danger-list{margin:6px 0 12px 18px;font-size:12.5px;color:var(--ink2);line-height:1.7}
.settings-confirm-input{width:100%;border:1px solid var(--border);border-radius:12px;background:var(--bg);color:var(--ink);font-family:inherit;font-size:14px;padding:10px;outline:none;margin-bottom:4px}

@media(max-width:340px){.settings-profile-two{grid-template-columns:1fr}}
@media(max-width:390px){
  .settings-field-row{padding:10px 12px}
  .settings-profile-card{padding:11px}
  .settings-profile-section{padding:13px}
  .settings-profile-field-head{flex-direction:column}
  .settings-profile-chips{justify-content:flex-start}
}
/* 8B-4d-2f-A: controls nothing reads yet. They stay fully readable (the label and note text are untouched, only the control is dimmed and shows a not-allowed cursor);
   the disabled state itself is carried by the native disabled + aria-disabled attributes and the note tied to it by aria-describedby, never by colour alone. */
.settings-field-row .toggle:disabled,.aic-field-row .toggle:disabled{opacity:.55;cursor:not-allowed}
.settings-field-row select:disabled,.settings-field-row input:disabled,.aic-select:disabled{opacity:.72;cursor:not-allowed}
/* 8B-5: English interface = Times New Roman (Chinese glyphs fall back to the system font). Only the Settings screens, their sheets, dialogs and toasts. */
html[data-ui-lang="en"] #settings-app-root, html[data-ui-lang="en"] #settings-app-root *, html[data-ui-lang="en"] #sheet .sheet, html[data-ui-lang="en"] #sheet .sheet *, html[data-ui-lang="en"] .app-confirm, html[data-ui-lang="en"] .app-confirm *, html[data-ui-lang="en"] .tiny-toast { font-family: "Times New Roman", Times, "Liberation Serif", serif; }

/* 主题 App (#theme-app-root, view #v-theme) shares both blocks below: same glass background, cards, rows and segments as 设置. */
/* ═══ 设置 redesign v1 (hand-written, keep LAST) ═══
   Follows the current theme: every colour is a theme variable or a colour mixed into one, so 主题 changes this page too.
   Only the row icons carry their own hue (--c), tinted into the theme surface - never a solid block. */
:is(#settings-app-root,#theme-app-root){--st-card-shadow:0 8px 22px color-mix(in srgb,var(--pri) 12%,transparent),0 1px 2px color-mix(in srgb,var(--ink) 6%,transparent);--st-line:color-mix(in srgb,var(--ink2) 14%,transparent)}
:is(#settings-app-root,#theme-app-root) .settings-scroll{padding-left:16px;padding-right:16px}
:is(#settings-app-root,#theme-app-root) .settings-group{border-radius:20px;box-shadow:var(--st-card-shadow)}
:is(#settings-app-root,#theme-app-root) .settings-group-label{font-size:12px;font-weight:600;letter-spacing:.08em;color:var(--ink2);padding:20px 8px 8px}
:is(#settings-app-root,#theme-app-root) .settings-row,:is(#settings-app-root,#theme-app-root) .settings-field-row{border-bottom:none;position:relative}
:is(#settings-app-root,#theme-app-root) .settings-group>.settings-row+.settings-row::before,:is(#settings-app-root,#theme-app-root) .settings-group>.settings-field-row+.settings-row::before,:is(#settings-app-root,#theme-app-root) .settings-group>.settings-row+.settings-field-row::before,:is(#settings-app-root,#theme-app-root) .settings-form>.settings-field-row+.settings-field-row::before{content:"";position:absolute;left:14px;right:14px;top:0;height:1px;background:var(--st-line)}
:is(#settings-app-root,#theme-app-root) .st-row+.st-row::before,:is(#settings-app-root,#theme-app-root) .settings-group>.st-row+.settings-row::before{left:62px!important}
:is(#settings-app-root,#theme-app-root) .settings-row-label{font-size:15px;color:var(--ink)}
:is(#settings-app-root,#theme-app-root) .settings-row-sub{font-size:12px;margin-top:1px}
:is(#settings-app-root,#theme-app-root) .settings-field-row>.settings-row-text .settings-row-label{color:var(--ink);font-weight:500;font-size:15px}
:is(#settings-app-root,#theme-app-root) .settings-hint{font-size:12px;padding:10px 8px}
:is(#settings-app-root,#theme-app-root) .settings-field-row>span:first-child:not(.settings-row-text){color:var(--ink);font-weight:500;font-size:15px}
:is(#settings-app-root,#theme-app-root) .settings-field-row{padding:12px 14px}

/* home rows: tinted square + coloured line icon */
.st-row{padding:11px 14px;gap:12px}
.st-ic{width:36px;height:36px;flex:none;display:grid;place-items:center;border-radius:12px;background:color-mix(in srgb,var(--c) 17%,var(--surface));color:color-mix(in srgb,var(--c) 80%,var(--ink))}
.st-ic svg{width:19px;height:19px;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}

/* XIAOLAN · ID */
.st-home{padding-top:6px}
.st-id{display:block;width:100%;border:none;text-align:left;cursor:pointer;color:var(--ink);font-family:inherit;border-radius:26px;padding:16px 18px 13px;margin:6px 0 2px;position:relative;overflow:hidden;
  background:radial-gradient(120% 90% at 100% 0%,color-mix(in srgb,var(--pri) 30%,transparent) 0%,transparent 55%),linear-gradient(150deg,color-mix(in srgb,var(--pri) 20%,var(--surface)) 0%,var(--surface) 70%);box-shadow:var(--st-card-shadow)}
.st-id::after{content:"";position:absolute;right:-70px;bottom:-90px;width:170px;height:170px;border-radius:50%;border:1px solid color-mix(in srgb,var(--pri) 25%,transparent);box-shadow:0 0 0 18px color-mix(in srgb,var(--pri) 5%,transparent);pointer-events:none}
.st-id-kicker{display:block;font-family:var(--font-display);font-size:10.5px;letter-spacing:.3em;color:var(--ink2)}
.st-id-row{display:flex;align-items:center;gap:14px;margin-top:12px;position:relative;z-index:1}
:is(#settings-app-root,#theme-app-root) .st-id-av{width:60px;height:60px;border-radius:19px;flex:none;background:color-mix(in srgb,var(--pri) 18%,var(--surface));box-shadow:0 4px 12px color-mix(in srgb,var(--pri) 22%,transparent)}
.st-id-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.st-id-main b{font-family:var(--font-display);font-size:22px;font-weight:600;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.st-id-main span{font-size:12.5px;color:var(--ink2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.st-ring{position:relative;width:54px;height:54px;flex:none}
.st-ring svg{width:100%;height:100%;transform:rotate(-90deg)}
.st-ring circle{fill:none;stroke-width:3.4;stroke-linecap:round}
.st-ring-track{stroke:color-mix(in srgb,var(--pri) 20%,transparent)}
.st-ring-fill{stroke:var(--pri-deep)}
.st-ring b{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;line-height:1;font-family:var(--font-display);font-size:14px;font-weight:600;color:var(--ink)}
.st-ring small{font-size:9px;margin-left:1px;color:var(--ink2)}
.st-id-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:14px;padding-top:11px;border-top:1px dashed color-mix(in srgb,var(--ink2) 28%,transparent);font-size:12px;color:var(--ink2);position:relative;z-index:1}
.st-id-bday,.st-id-go{display:inline-flex;align-items:center;gap:5px}
.st-id-bday svg{width:14px;height:14px;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;color:var(--pri-deep)}
.st-id-go{color:var(--accent-text);font-weight:600}
.st-id-go svg{width:13px;height:13px;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}

/* 我的资料 */
:is(#settings-app-root,#theme-app-root) .settings-profile-hero .settings-av.lg{border-radius:24px}
:is(#settings-app-root,#theme-app-root) .settings-profile-tabs{border-bottom:none;background:color-mix(in srgb,var(--surface) 70%,transparent);border-radius:999px;padding:4px;gap:2px;box-shadow:inset 0 1px 3px color-mix(in srgb,var(--ink) 8%,transparent)}
:is(#settings-app-root,#theme-app-root) .settings-profile-tabs button{border-bottom:none;border-radius:999px;margin:0;padding:8px 4px;font-size:13.5px}
:is(#settings-app-root,#theme-app-root) .settings-profile-tabs button[aria-selected="true"]{background:var(--surface);box-shadow:0 2px 8px color-mix(in srgb,var(--pri) 18%,transparent);color:var(--ink)}
:is(#settings-app-root,#theme-app-root) .settings-profile-box{border-radius:20px;box-shadow:var(--st-card-shadow)}
.st-bday-row{display:flex;gap:8px;align-items:center}
.st-bday-part{display:flex;align-items:center;gap:4px;flex:none}
.st-bday-part select{appearance:none;-webkit-appearance:none;width:54px;border:1px solid var(--border);border-radius:12px;background:var(--bg);color:var(--ink);font-family:inherit;font-size:14px;padding:9px 6px;text-align:center;text-align-last:center}
.st-bday-part i{font-style:normal;font-size:13px;color:var(--ink2)}
:is(#settings-app-root,#theme-app-root) .st-bday-row input{flex:1;min-width:0;border:1px solid var(--border);border-radius:12px;background:var(--bg);color:var(--ink);font-family:inherit;font-size:13px;padding:10px}
.st-field-note{font-size:11.5px;color:var(--ink2)}
.st-mini{margin:4px 0 12px}

/* 让 TA 了解我: 使用说明书 */
.st-book{position:relative;border-radius:22px;padding:18px 18px 6px 24px;margin-bottom:14px;overflow:hidden;
  background:linear-gradient(165deg,color-mix(in srgb,var(--pri) 18%,var(--surface)) 0%,var(--surface) 75%);box-shadow:var(--st-card-shadow)}
.st-book::before{content:"";position:absolute;left:0;top:0;bottom:0;width:7px;background:linear-gradient(180deg,color-mix(in srgb,var(--pri) 55%,var(--surface)),color-mix(in srgb,var(--pri) 30%,var(--surface)))}
.st-book-kicker{font-size:11px;letter-spacing:.18em;color:var(--ink2)}
.st-book h2{font-family:var(--font-display);font-size:24px;font-weight:600;color:var(--ink);margin:6px 0 4px}
.st-book-lede{font-size:12.5px;line-height:1.6;color:var(--ink2);margin:0 0 14px}
.st-meter{border-radius:14px;background:color-mix(in srgb,var(--surface) 70%,transparent);padding:11px 12px 10px;box-shadow:inset 0 0 0 1px var(--st-line)}
.st-meter-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;font-size:12.5px;color:var(--ink2)}
.st-meter-head b{font-family:var(--font-display);font-size:17px;color:var(--ink);font-weight:600}
.st-meter-bar{height:6px;border-radius:999px;background:color-mix(in srgb,var(--pri) 16%,transparent);margin:8px 0 7px;overflow:hidden}
.st-meter-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,color-mix(in srgb,var(--pri) 70%,var(--surface)),var(--pri-deep))}
.st-meter-foot{display:flex;justify-content:space-between;gap:8px;font-size:11px;color:var(--ink2)}
.st-meter-dropped{margin:7px 0 0;font-size:11px;color:var(--warn,#c0792a)}
.st-book-vis{border-top:1px dashed var(--st-line);margin-top:10px}
.st-viewer{display:flex;align-items:center;gap:10px;margin:2px 2px 10px;min-width:0}
.st-viewer-label{flex:none;font-size:12.5px;color:var(--ink2)}
.st-vchips{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;min-width:0;padding:2px}
.st-vchips::-webkit-scrollbar{display:none}
.st-vchip{flex:none;display:inline-flex;align-items:center;gap:6px;border:none;border-radius:999px;background:color-mix(in srgb,var(--surface) 75%,transparent);color:var(--ink2);font-family:inherit;font-size:12.5px;padding:5px 11px 5px 5px;cursor:pointer;box-shadow:inset 0 0 0 1px var(--st-line)}
.st-vchip:first-child,.st-vmore{padding:5px 12px}
.st-vchip[aria-checked="true"]{background:var(--surface);color:var(--ink);font-weight:700;box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--pri) 60%,transparent),0 2px 8px color-mix(in srgb,var(--pri) 18%,transparent)}
.st-vav{width:20px;height:20px;border-radius:50%;overflow:hidden;flex:none;display:grid;place-items:center;background:var(--bg)}
.st-vav img{width:100%;height:100%;object-fit:cover}
.st-vav svg{width:12px;height:12px}
.st-vav>*:not(img):not(svg){font-size:9px}
.st-vmore{letter-spacing:.1em;font-weight:700}
.st-viewer-note{font-size:12px;color:var(--ink2);margin:-4px 4px 10px}
.st-viewer-note b{color:var(--ink)}
:is(#settings-app-root,#theme-app-root) .st-chapters{border-radius:20px;box-shadow:var(--st-card-shadow)}
:is(#settings-app-root,#theme-app-root) .st-chapters .aic-group+.aic-group{border-top:1px solid var(--st-line)}
.st-ch-no{flex:none;width:26px;font-family:var(--font-display);font-size:15px;font-weight:600;color:var(--pri-deep);letter-spacing:.02em}
:is(#settings-app-root,#theme-app-root) .st-chapters .aic-group-title{font-family:var(--font-display);font-size:15.5px;font-weight:600}
:is(#settings-app-root,#theme-app-root) .st-chapters .aic-group-body{margin-left:40px;border-top:1px dashed var(--st-line)}
.st-ch-badge{font-size:10.5px;font-weight:700;border-radius:999px;padding:2px 8px;background:var(--coral-soft);color:var(--coral-text);white-space:nowrap}
.aic-field.st-unseen .aic-field-label,.aic-field.st-unseen .aic-field-preview{opacity:.42}
.st-unseen-tag{font-weight:700;color:var(--coral-text)}
.st-moved-hint{text-align:center}

/* shared cards for the new pages */
.st-page{padding-top:8px}
.st-card{background:var(--surface);border-radius:20px;box-shadow:var(--st-card-shadow);padding:14px 16px;margin-bottom:12px}
.st-card-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:10px}
.st-card-head b{font-family:var(--font-display);font-size:16px;font-weight:600;color:var(--ink)}
.st-card-head span{font-size:12px;color:var(--ink2)}
.st-card-note{font-size:12.5px;color:var(--ink2);margin:10px 2px 2px;line-height:1.5}
:is(#settings-app-root,#theme-app-root) .st-seg{border:none;border-radius:14px;padding:3px;gap:3px;background:color-mix(in srgb,var(--pri) 10%,var(--bg));overflow:visible}
:is(#settings-app-root,#theme-app-root) .st-seg button{border:none;border-radius:11px;background:none;color:var(--ink2);font-size:14px;padding:8px 4px}
:is(#settings-app-root,#theme-app-root) .st-seg button[aria-checked="true"]{background:var(--surface);color:var(--ink);font-weight:700;box-shadow:0 2px 8px color-mix(in srgb,var(--pri) 20%,transparent)}
.st-sample{margin-top:12px;padding:12px;border-radius:14px;background:color-mix(in srgb,var(--pri) 7%,var(--bg))}
.st-sample-bubble{display:inline-block;max-width:88%;background:var(--surface);color:var(--ink);font-size:13.5px;line-height:1.55;padding:8px 12px;border-radius:4px 16px 16px 16px;box-shadow:0 1px 3px color-mix(in srgb,var(--ink) 8%,transparent)}
.st-intro{display:flex;gap:12px;align-items:flex-start}
.st-intro p{margin:0;font-size:13px;line-height:1.65;color:var(--ink2)}
.st-empty{text-align:center;padding:26px 20px 22px;display:flex;flex-direction:column;align-items:center;gap:6px}
.st-empty .st-ic{width:46px;height:46px;border-radius:15px;margin-bottom:4px}
.st-empty .st-ic svg{width:23px;height:23px}
.st-empty b{font-family:var(--font-display);font-size:16px;color:var(--ink);font-weight:600}
.st-empty p{margin:0;font-size:12.5px;line-height:1.6;color:var(--ink2)}

/* 免打扰 */
.st-quiet-hero{position:relative;border-radius:24px;padding:22px 20px 18px;margin-bottom:12px;text-align:center;overflow:hidden;color:var(--ink2);
  background:linear-gradient(170deg,color-mix(in srgb,#7487c0 14%,var(--surface)) 0%,var(--surface) 80%);box-shadow:var(--st-card-shadow)}
.st-quiet-hero.on{background:radial-gradient(90% 70% at 80% 0%,color-mix(in srgb,#7487c0 32%,transparent),transparent 70%),linear-gradient(170deg,color-mix(in srgb,#7487c0 26%,var(--surface)) 0%,var(--surface) 85%)}
.st-quiet-moon{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:50%;background:color-mix(in srgb,#7487c0 20%,var(--surface));color:color-mix(in srgb,#7487c0 80%,var(--ink))}
.st-quiet-moon svg{width:22px;height:22px;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.st-quiet-times{display:flex;align-items:center;justify-content:center;gap:14px;margin:12px 0 6px}
.st-quiet-times b{font-family:var(--font-display);font-size:30px;font-weight:500;color:var(--ink);letter-spacing:.02em}
.st-quiet-hero:not(.on) .st-quiet-times b{opacity:.45}
.st-quiet-times i{width:34px;height:1px;background:color-mix(in srgb,var(--ink2) 45%,transparent);position:relative}
.st-quiet-times i::after{content:"";position:absolute;right:0;top:-3px;width:6px;height:6px;border-top:1px solid color-mix(in srgb,var(--ink2) 45%,transparent);border-right:1px solid color-mix(in srgb,var(--ink2) 45%,transparent);transform:rotate(45deg)}
.st-quiet-state{font-size:12.5px}
.st-ask{font-size:13px;color:var(--ink);margin:14px 6px 8px;line-height:1.55}
.st-times{margin-top:10px}
:is(#settings-app-root,#theme-app-root) .st-times .settings-field-row>span:first-child{color:var(--ink);font-weight:500;font-size:15px}
:is(#settings-app-root,#theme-app-root) .st-times input[type=time]{font-family:var(--font-display);font-size:17px;color:var(--ink);text-align:right;background:none;border:none}

/* 用量 */
.st-usage-tabs{margin-bottom:12px}
.st-usage-hero{border-radius:24px;padding:20px 18px 14px;margin-bottom:4px;background:linear-gradient(170deg,color-mix(in srgb,#6fa58f 16%,var(--surface)) 0%,var(--surface) 80%);box-shadow:var(--st-card-shadow)}
.st-usage-big{display:flex;align-items:baseline;gap:6px}
.st-usage-big b{font-family:var(--font-display);font-size:38px;font-weight:500;color:var(--ink);line-height:1.1}
.st-usage-big span{font-size:13px;color:var(--ink2)}
.st-usage-hero p{margin:6px 0 0;font-size:12.5px;color:var(--ink2)}
.st-usage-cache{color:color-mix(in srgb,#6fa58f 70%,var(--ink))!important}
.st-days{display:flex;align-items:flex-end;gap:3px;height:54px;margin-top:14px}
.st-days i{flex:1;min-width:0;border-radius:3px 3px 1px 1px;background:color-mix(in srgb,#6fa58f 55%,var(--surface))}
.st-ubar{display:grid;grid-template-columns:78px minmax(0,1fr) 54px;align-items:center;gap:10px;padding:7px 0;font-size:13px;color:var(--ink)}
.st-ubar-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.st-ubar-track{height:8px;border-radius:999px;background:color-mix(in srgb,var(--pri) 12%,transparent);overflow:hidden}
.st-ubar-track i{display:block;height:100%;border-radius:inherit;background:color-mix(in srgb,#6fa58f 70%,var(--surface))}
.st-ubar-val{text-align:right;font-size:12px;color:var(--ink2);font-variant-numeric:tabular-nums}
.st-ubar-reason{grid-column:1 / -1;justify-self:end;margin-top:-2px;font-size:11px;line-height:1.3}
.st-usage-hero p.st-usage-reason{font-size:11px;margin-top:2px}

/* 数据去向 */
.st-dm-intro p{margin:4px 6px 10px;font-size:13px;line-height:1.65;color:var(--ink2)}
.st-dm-legend{display:flex;flex-wrap:wrap;gap:6px 14px;margin:0 6px 6px;font-size:11.5px;color:var(--ink2)}
.st-dm-legend span{display:inline-flex;align-items:center;gap:6px}
.st-dot{display:inline-block;width:9px;height:9px;border-radius:50%;flex:none}
.st-dot-local{background:color-mix(in srgb,var(--ink2) 45%,var(--surface))}
.st-dot-account{background:var(--pri-deep)}
.st-dot-mirror{background:linear-gradient(90deg,color-mix(in srgb,var(--ink2) 45%,var(--surface)) 50%,var(--pri-deep) 50%)}
.st-dm-lane{position:relative;border-radius:20px;background:var(--surface);box-shadow:var(--st-card-shadow);margin:12px 0;padding:14px 14px 6px 20px;overflow:hidden}
.st-dm-lane::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--lane)}
.st-dm-every{--lane:var(--pri-deep)}
.st-dm-topic{--lane:color-mix(in srgb,var(--pri) 60%,var(--surface))}
.st-dm-message{--lane:color-mix(in srgb,var(--coral) 70%,var(--surface))}
.st-dm-scene{--lane:color-mix(in srgb,var(--pri-deep) 45%,var(--surface))}
.st-dm-never{--lane:color-mix(in srgb,var(--ink2) 30%,var(--surface))}
.st-dm-off{--lane:repeating-linear-gradient(180deg,color-mix(in srgb,var(--ink2) 30%,var(--surface)) 0 6px,transparent 6px 10px);background:color-mix(in srgb,var(--surface) 70%,transparent)}
.st-dm-head{display:flex;flex-direction:column;gap:2px;margin-bottom:6px}
.st-dm-head b{font-family:var(--font-display);font-size:16px;font-weight:600;color:var(--ink)}
.st-dm-head span{font-size:12px;color:var(--ink2)}
.st-dm-item{border-top:1px solid var(--st-line)}
.st-dm-item:first-child{border-top:none}
.st-dm-item summary{list-style:none;display:flex;align-items:center;gap:10px;padding:10px 0;font-size:14px;color:var(--ink);cursor:pointer}
.st-dm-item summary::-webkit-details-marker{display:none}
.st-dm-item summary span{flex:1;min-width:0}
.st-dm-item summary svg{width:14px;height:14px;color:var(--mist);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:transform .16s ease}
.st-dm-item[open] summary svg{transform:rotate(90deg)}
.st-dm-item p{margin:0 0 11px 19px;font-size:12.5px;line-height:1.65;color:var(--ink2)}
.st-dm-item em{display:block;font-style:normal;font-size:11px;margin-top:3px;color:var(--accent-text)}
@media (prefers-reduced-motion:reduce){.st-dm-item summary svg{transition:none}}

/* ═══ 设置 glass v2 (2026-10-14, hand-written, keep LAST) ═══
   Background follows the theme: theme colour → its pale → surface, one soft diagonal gradient (no colour spots).
   The formula only uses theme variables, so every preset, 自定义颜色 and dark mode get their own version for free.
   Cards are translucent glass over it; chosen chips / segments / switches are clear "jelly" (glossy top band, light at the bottom).
   Glass is tinted white in light mode and white-on-dark in dark mode; text colours stay the theme's own. */
#v-me,#v-theme{--st-grad:linear-gradient(170deg,color-mix(in srgb,var(--pri) 40%,var(--surface)) 0%,var(--pri-pale) 42%,var(--surface) 100%);background:var(--st-grad)}
:is(#settings-app-root,#theme-app-root){
  --g-bg:linear-gradient(155deg,rgba(255,255,255,.55),rgba(255,255,255,.16) 60%,rgba(255,255,255,.28));
  --g-bg-strong:linear-gradient(155deg,rgba(255,255,255,.66),rgba(255,255,255,.24) 60%,rgba(255,255,255,.36));
  --g-line:rgba(255,255,255,.75);
  --g-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 20px 40px -26px color-mix(in srgb,var(--ink) 50%,transparent);
  --g-blur:blur(26px) saturate(165%);
  --g-sep:rgba(255,255,255,.6);
  --j-on:linear-gradient(180deg,rgba(255,255,255,.76) 0%,rgba(255,255,255,.14) 52%,rgba(255,255,255,0) 100%),linear-gradient(180deg,rgba(255,255,255,.34),color-mix(in srgb,var(--pri-pale) 55%,transparent));
  --j-on-line:rgba(255,255,255,.7);
  --j-on-shadow:inset 0 1px 1px rgba(255,255,255,.95),inset 0 -4px 8px rgba(255,255,255,.4),0 6px 14px -6px color-mix(in srgb,var(--pri-deep) 45%,transparent);
  --j-off:linear-gradient(180deg,rgba(255,255,255,.42),rgba(255,255,255,.06) 58%,rgba(255,255,255,.14));
  --j-off-line:rgba(255,255,255,.55);
  --j-off-shadow:inset 0 1px 1px rgba(255,255,255,.8),inset 0 -2px 5px rgba(255,255,255,.22);
  --j-track:rgba(255,255,255,.18);
  --st-line:rgba(255,255,255,.6);
  background:transparent}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]) :is(#settings-app-root,#theme-app-root){
  --g-bg:linear-gradient(155deg,rgba(255,255,255,.1),rgba(255,255,255,.03) 60%,rgba(255,255,255,.06));--g-bg-strong:linear-gradient(155deg,rgba(255,255,255,.14),rgba(255,255,255,.05) 60%,rgba(255,255,255,.08));
  --g-line:rgba(255,255,255,.12);--g-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 20px 40px -26px rgba(0,0,0,.65);--g-sep:rgba(255,255,255,.08);--st-line:rgba(255,255,255,.08);
  --j-on:linear-gradient(180deg,rgba(255,255,255,.22) 0%,rgba(255,255,255,.04) 55%,rgba(255,255,255,0) 100%),color-mix(in srgb,var(--pri) 32%,transparent);--j-on-line:rgba(255,255,255,.2);
  --j-on-shadow:inset 0 1px 1px rgba(255,255,255,.22),0 6px 14px -6px rgba(0,0,0,.6);
  --j-off:rgba(255,255,255,.05);--j-off-line:rgba(255,255,255,.12);--j-off-shadow:inset 0 1px 0 rgba(255,255,255,.06);--j-track:rgba(255,255,255,.05)}}
:root[data-theme="dark"] :is(#settings-app-root,#theme-app-root){
  --g-bg:linear-gradient(155deg,rgba(255,255,255,.1),rgba(255,255,255,.03) 60%,rgba(255,255,255,.06));--g-bg-strong:linear-gradient(155deg,rgba(255,255,255,.14),rgba(255,255,255,.05) 60%,rgba(255,255,255,.08));
  --g-line:rgba(255,255,255,.12);--g-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 20px 40px -26px rgba(0,0,0,.65);--g-sep:rgba(255,255,255,.08);--st-line:rgba(255,255,255,.08);
  --j-on:linear-gradient(180deg,rgba(255,255,255,.22) 0%,rgba(255,255,255,.04) 55%,rgba(255,255,255,0) 100%),color-mix(in srgb,var(--pri) 32%,transparent);--j-on-line:rgba(255,255,255,.2);
  --j-on-shadow:inset 0 1px 1px rgba(255,255,255,.22),0 6px 14px -6px rgba(0,0,0,.6);
  --j-off:rgba(255,255,255,.05);--j-off-line:rgba(255,255,255,.12);--j-off-shadow:inset 0 1px 0 rgba(255,255,255,.06);--j-track:rgba(255,255,255,.05)}

:is(#settings-app-root,#theme-app-root) .app-top{background:transparent}
:is(#settings-app-root,#theme-app-root) .app-title{font-family:var(--font-display);font-size:19px;font-weight:600;letter-spacing:.04em}
:is(#settings-app-root,#theme-app-root) .settings-scroll{padding-left:18px;padding-right:18px}

/* glass surfaces */
:is(#settings-app-root,#theme-app-root) .settings-group,:is(#settings-app-root,#theme-app-root) .st-card,:is(#settings-app-root,#theme-app-root) .settings-profile-box,:is(#settings-app-root,#theme-app-root) .aic-groups,
:is(#settings-app-root,#theme-app-root) .st-dm-lane,:is(#settings-app-root,#theme-app-root) .st-usage-hero,:is(#settings-app-root,#theme-app-root) .st-gl{
  background:var(--g-bg);border:1px solid var(--g-line);box-shadow:var(--g-shadow);-webkit-backdrop-filter:var(--g-blur);backdrop-filter:var(--g-blur);border-radius:24px}
:is(#settings-app-root,#theme-app-root) .settings-group{padding:0 4px}
:is(#settings-app-root,#theme-app-root) .settings-group-label{font-size:13px;font-weight:600;letter-spacing:.06em;padding:22px 8px 10px}
:is(#settings-app-root,#theme-app-root) .settings-group>.settings-row+.settings-row::before,:is(#settings-app-root,#theme-app-root) .settings-group>.settings-field-row+.settings-row::before,:is(#settings-app-root,#theme-app-root) .settings-group>.settings-row+.settings-field-row::before,:is(#settings-app-root,#theme-app-root) .settings-form>.settings-field-row+.settings-field-row::before{background:var(--g-sep)}
:is(#settings-app-root,#theme-app-root) .settings-row,:is(#settings-app-root,#theme-app-root) .settings-field-row{min-height:60px}
:is(#settings-app-root,#theme-app-root) .settings-row-label{font-size:16px}
:is(#settings-app-root,#theme-app-root) .settings-row-sub{font-size:12.5px}
:is(#settings-app-root,#theme-app-root) .settings-hint{font-size:12.5px;line-height:1.65;padding:10px 8px}
:is(#settings-app-root,#theme-app-root) .settings-notice{background:var(--g-bg);border:1px solid var(--g-line);border-radius:18px;font-size:12.5px;padding:12px 14px}

/* home: glass icon tiles, glass ID card */
:is(#settings-app-root,#theme-app-root) .st-row{padding:13px 12px;gap:14px}
:is(#settings-app-root,#theme-app-root) .st-row+.st-row::before{left:70px!important}
:is(#settings-app-root,#theme-app-root) .st-ic{width:44px;height:44px;border-radius:15px;border:1px solid rgba(255,255,255,.85);color:color-mix(in srgb,var(--c) 85%,var(--ink));
  background:linear-gradient(180deg,rgba(255,255,255,.7),rgba(255,255,255,.2)),color-mix(in srgb,var(--c) 16%,transparent);box-shadow:inset 0 1px 0 #fff,0 6px 12px -8px color-mix(in srgb,var(--ink) 45%,transparent)}
:is(#settings-app-root,#theme-app-root) .st-ic svg{width:20px;height:20px}
:is(#settings-app-root,#theme-app-root) .st-id{background:var(--g-bg-strong);border:1px solid var(--g-line);box-shadow:var(--g-shadow);-webkit-backdrop-filter:var(--g-blur);backdrop-filter:var(--g-blur);border-radius:28px;padding:20px 20px 16px}
:is(#settings-app-root,#theme-app-root) .st-id::after{border-color:rgba(255,255,255,.7);box-shadow:none}
:is(#settings-app-root,#theme-app-root) .st-id-av{width:64px;height:64px;border-radius:22px;background:rgba(255,255,255,.4);border:1px solid rgba(255,255,255,.9);box-shadow:inset 0 1px 0 #fff,0 12px 22px -14px color-mix(in srgb,var(--ink) 55%,transparent)}
:is(#settings-app-root,#theme-app-root) .st-id-main b{font-size:25px}
:is(#settings-app-root,#theme-app-root) .st-ring-track{stroke:rgba(255,255,255,.7)}
:is(#settings-app-root,#theme-app-root) .st-ring-fill{stroke:var(--pri)}
:is(#settings-app-root,#theme-app-root) .st-id-foot{border-top-color:color-mix(in srgb,var(--ink2) 30%,transparent);font-size:13px}
:is(#settings-app-root,#theme-app-root) .st-id-go{color:var(--ink)}

/* jelly: segmented controls */
:is(#settings-app-root,#theme-app-root) .st-seg,:is(#settings-app-root,#theme-app-root) .aic-segment{border:1px solid var(--j-off-line);border-radius:20px;padding:4px;gap:4px;background:var(--j-track);box-shadow:inset 0 1px 3px color-mix(in srgb,var(--ink) 12%,transparent);overflow:visible}
:is(#settings-app-root,#theme-app-root) .st-seg button,:is(#settings-app-root,#theme-app-root) .aic-segment button{border:1px solid transparent;border-radius:16px;background:none;color:var(--ink2);font-size:15px;min-height:42px;padding:6px 4px;transition:background .18s,box-shadow .18s}
:is(#settings-app-root,#theme-app-root) .st-seg button[aria-checked="true"],:is(#settings-app-root,#theme-app-root) .aic-segment button[aria-checked="true"]{background:var(--j-on);border-color:var(--j-on-line);box-shadow:var(--j-on-shadow);color:var(--ink);font-weight:700}

/* jelly: switches */
:is(#settings-app-root,#theme-app-root) .toggle{width:52px;height:32px;border-radius:16px;border:1px solid var(--j-off-line);background:var(--j-track);box-shadow:inset 0 1px 3px color-mix(in srgb,var(--ink) 18%,transparent)}
:is(#settings-app-root,#theme-app-root) .toggle::after{top:2px;left:2px;width:26px;height:26px;background:linear-gradient(180deg,#fff,#EEF2F7);box-shadow:inset 0 -2px 3px rgba(120,140,170,.18),0 3px 8px rgba(40,60,90,.28)}
:is(#settings-app-root,#theme-app-root) .toggle.on{border-color:var(--j-on-line);background:linear-gradient(180deg,rgba(255,255,255,.5) 0%,rgba(255,255,255,0) 55%),linear-gradient(180deg,color-mix(in srgb,var(--pri) 65%,#fff),var(--pri));box-shadow:inset 0 1px 1px rgba(255,255,255,.8),inset 0 -3px 6px rgba(255,255,255,.25),0 6px 14px -6px color-mix(in srgb,var(--pri-deep) 60%,transparent)}
:is(#settings-app-root,#theme-app-root) .toggle.on::after{transform:translateX(20px);box-shadow:inset 0 -2px 3px rgba(120,140,170,.18),0 3px 8px rgba(40,60,90,.28)}
:is(#settings-app-root,#theme-app-root) .toggle.sm{width:40px;height:24px}
:is(#settings-app-root,#theme-app-root) .toggle.sm::after{width:18px;height:18px}
:is(#settings-app-root,#theme-app-root) .toggle.sm.on::after{transform:translateX(16px)}

/* jelly: tag chips (我的资料) */
.stj-chips{display:flex;flex-wrap:wrap;gap:8px}
.stj-chip{display:inline-flex;align-items:center;gap:6px;min-height:36px;max-width:100%;padding:0 15px;border-radius:18px;border:1px solid var(--j-off-line);background:var(--j-off);box-shadow:var(--j-off-shadow);color:var(--ink2);font-family:inherit;font-size:14px;cursor:pointer;transition:background .18s,box-shadow .18s;text-align:left}
.stj-chip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.stj-chip[aria-pressed="true"],.stj-chip[aria-checked="true"]{background:var(--j-on);border-color:var(--j-on-line);box-shadow:var(--j-on-shadow);color:var(--ink);font-weight:700}
.stj-chip.add{border-style:dashed;border-color:color-mix(in srgb,var(--ink2) 40%,transparent);background:none;box-shadow:none}
.stj-chip.long{border-radius:14px;white-space:normal}
.stj-chip.long span{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}

/* 回复偏好 / 用量 / 免打扰 / 数据去向 bits on glass */
:is(#settings-app-root,#theme-app-root) .st-card{padding:18px}
:is(#settings-app-root,#theme-app-root) .st-card-head b{font-size:17px}
:is(#settings-app-root,#theme-app-root) .st-sample{background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.5);border-radius:18px}
:is(#settings-app-root,#theme-app-root) .st-sample-bubble{background:linear-gradient(155deg,rgba(255,255,255,.82),rgba(255,255,255,.5));border:1px solid rgba(255,255,255,.9);border-radius:6px 18px 18px 18px;font-size:14.5px;box-shadow:0 8px 18px -12px color-mix(in srgb,var(--ink) 45%,transparent)}
:is(#settings-app-root,#theme-app-root) .st-empty .st-ic{width:60px;height:60px;border-radius:22px}
:is(#settings-app-root,#theme-app-root) .st-empty .st-ic svg{width:28px;height:28px}
:is(#settings-app-root,#theme-app-root) .st-empty b{font-size:18px}
:is(#settings-app-root,#theme-app-root) .st-quiet-hero{background:linear-gradient(160deg,rgba(255,255,255,.6),color-mix(in srgb,#7487c0 14%,transparent) 60%,rgba(255,255,255,.3));border:1px solid var(--g-line);box-shadow:var(--g-shadow);-webkit-backdrop-filter:var(--g-blur);backdrop-filter:var(--g-blur);border-radius:28px;padding:26px 20px 22px}
:is(#settings-app-root,#theme-app-root) .st-quiet-hero:not(.on){opacity:.7}
:is(#settings-app-root,#theme-app-root) .st-quiet-moon{width:56px;height:56px;background:linear-gradient(180deg,rgba(255,255,255,.8),rgba(255,255,255,.3));border:1px solid rgba(255,255,255,.9);box-shadow:inset 0 1px 0 #fff,0 10px 22px -12px rgba(60,80,140,.5)}
:is(#settings-app-root,#theme-app-root) .st-quiet-times b{font-size:34px}
:is(#settings-app-root,#theme-app-root) .st-dm-lane{padding:18px 18px 6px}
:is(#settings-app-root,#theme-app-root) .st-dm-lane::before{display:none}
.st-dm-tag{align-self:flex-start;display:inline-flex;align-items:center;height:24px;padding:0 10px;margin-bottom:4px;border-radius:12px;border:1px solid rgba(255,255,255,.8);font-size:11.5px;letter-spacing:.04em;color:var(--ink2);background:rgba(255,255,255,.3)}
.st-dm-every .st-dm-tag{color:var(--ink);font-weight:700;background:linear-gradient(180deg,rgba(255,255,255,.7),rgba(255,255,255,.2)),color-mix(in srgb,var(--pri) 22%,transparent)}
:is(#settings-app-root,#theme-app-root) .st-dm-item{border-top-color:var(--g-sep)}
:is(#settings-app-root,#theme-app-root) .st-dm-item summary{min-height:50px;font-size:15.5px}
:is(#settings-app-root,#theme-app-root) .st-dm-legend span{height:30px;padding:0 12px;border-radius:15px;background:rgba(255,255,255,.3);border:1px solid rgba(255,255,255,.7)}
:is(#settings-app-root,#theme-app-root) .st-dm-legend{gap:8px}
:is(#settings-app-root,#theme-app-root) .aic-save-pill{background:var(--g-bg);border:1px solid var(--g-line);box-shadow:none}

/* 我的资料 v2 */
.stp-page{padding-top:6px}
.stp-hero{display:flex;align-items:center;gap:18px;padding:6px 2px 4px}
:is(#settings-app-root,#theme-app-root) .stp-av{position:relative;width:84px;height:84px;border-radius:28px;overflow:visible;border:1px solid rgba(255,255,255,.85);background:rgba(255,255,255,.35);box-shadow:inset 0 1px 0 #fff,0 16px 30px -18px color-mix(in srgb,var(--ink) 55%,transparent);cursor:pointer}
:is(#settings-app-root,#theme-app-root) .stp-av img{border-radius:27px}
.stp-av-cam{position:absolute;right:-6px;bottom:-6px;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;color:var(--ink2);border:1px solid #fff;background:linear-gradient(180deg,rgba(255,255,255,.95),color-mix(in srgb,var(--pri-pale) 85%,#fff));box-shadow:0 4px 10px -4px color-mix(in srgb,var(--ink) 50%,transparent)}
.stp-av-cam svg{width:15px;height:15px;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.stp-hero-text{display:flex;flex-direction:column;align-items:flex-start;gap:8px;min-width:0}
.stp-hero-text strong{font-family:var(--font-display);font-size:28px;font-weight:600;line-height:1.1;color:var(--ink);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.stp-call{display:inline-flex;align-items:center;gap:8px;min-height:36px;padding:0 14px 0 12px;border-radius:18px;border:1px solid rgba(255,255,255,.9);background:var(--g-bg);-webkit-backdrop-filter:var(--g-blur);backdrop-filter:var(--g-blur);box-shadow:inset 0 1px 0 rgba(255,255,255,.9);color:var(--ink);font-family:inherit;font-size:13.5px;cursor:pointer}
.stp-call span{color:var(--ink2)}
.stp-call svg{width:13px;height:13px;color:var(--ink2);stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.stp-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:22px 6px 10px}
.stp-head h2{margin:0;font-family:var(--font-display);font-size:18px;font-weight:600;color:var(--ink)}
.stp-head span{font-size:12px;color:var(--ink2)}
.stp-head-about h2{font-size:24px}
.stp-lede{margin:-4px 6px 12px;font-size:13px;line-height:1.6;color:var(--ink2)}
:is(#settings-app-root,#theme-app-root) .stp-card{padding:6px 18px;margin-bottom:14px;border-radius:26px}
.stp-row{display:flex;align-items:center;gap:12px;min-height:62px;border-bottom:1px solid var(--g-sep)}
.stp-k{width:64px;flex:none;font-size:14px;color:var(--ink2);display:flex;flex-direction:column;gap:2px}
.stp-k small{font-size:11px}
.stp-block .stp-k{width:auto;flex-direction:row;justify-content:space-between;align-items:baseline}
.stp-row>input{flex:1;min-width:0;height:42px;border:none;background:none;font-family:inherit;font-size:17px;color:var(--ink);outline:none}
.stp-row .stp-seg{flex:1;display:grid;min-width:0}
.stp-block{display:flex;flex-direction:column;gap:12px;padding:16px 0;border-bottom:1px solid var(--g-sep)}
.stp-card>:last-child{border-bottom:none}
.stp-bday{flex-wrap:wrap;padding:10px 0}
.stp-bday-row{display:flex;align-items:center;gap:6px;flex:1;min-width:0}
:is(#settings-app-root,#theme-app-root) .stp-bday-row select{appearance:none;-webkit-appearance:none;width:50px;height:38px;border:1px solid var(--j-off-line);border-radius:12px;background:var(--j-off);color:var(--ink);font-family:inherit;font-size:15px;text-align:center;text-align-last:center}
:is(#settings-app-root,#theme-app-root) .stp-bday-row input{flex:1;width:auto;max-width:76px;min-width:0;height:38px;border:1px solid var(--j-off-line);border-radius:12px;background:var(--j-off);color:var(--ink);font-family:inherit;font-size:14px;text-align:center;outline:none}
.stp-bday-row .st-bday-part i{font-style:normal;font-size:13px;color:var(--ink2)}
.stp-age{font-size:11.5px;color:var(--ink2)}
.stp-tz{display:flex;align-items:center;gap:6px;margin:-4px 8px 0;font-size:12px;color:var(--ink2)}
.stp-tz{width:calc(100% - 16px);background:none;border:0;padding:0;font-family:inherit;text-align:left;cursor:pointer}
.stp-tz svg{width:14px;height:14px;flex:none;stroke-width:1.8;stroke-linecap:round}
:is(#settings-app-root,#theme-app-root) .stp-meter{padding:12px 16px;margin-bottom:10px;border-radius:18px}
.stp-meter-head{display:flex;justify-content:space-between;align-items:baseline;font-size:12.5px;color:var(--ink2)}
.stp-meter-head b{font-size:15px;font-weight:600;color:var(--ink)}
.stp-meter-bar{height:5px;border-radius:3px;background:var(--g-sep);overflow:hidden;margin-top:8px}
.stp-meter-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,color-mix(in srgb,var(--pri) 55%,#fff),var(--pri))}
.stp-vis{width:100%;display:flex;align-items:center;gap:10px;min-height:48px;margin-bottom:14px;padding:0 16px;border-radius:16px;border:1px solid var(--g-line);background:var(--j-track);font-family:inherit;font-size:13.5px;color:var(--ink);text-align:left;cursor:pointer}
.stp-vis>span{flex:1;min-width:0}
.stp-vis em{font-style:normal;color:var(--ink2)}
.stp-vis svg{width:16px;height:16px;flex:none;color:var(--ink2);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.stp-vis svg:last-child{width:14px;height:14px;color:var(--ink2-soft)}
:is(#settings-app-root,#theme-app-root) .stp-tags{padding:18px 18px 20px}
.stp-tags-head{display:flex;align-items:baseline;gap:10px;margin-bottom:14px}
.stp-no{font-size:13px;font-weight:600;letter-spacing:.04em;color:var(--ink2)}
.stp-tags-head h3{flex:1;margin:0;font-family:var(--font-display);font-size:17px;font-weight:600;color:var(--ink)}
.stp-tags-head>span:last-child{font-size:12px;color:var(--ink2)}
:is(#settings-app-root,#theme-app-root) .stp-free{min-height:92px;border-radius:16px;border:1px solid var(--j-off-line);background:var(--j-off);font-size:14.5px;line-height:1.6;padding:12px 14px}
.stp-links{margin-bottom:14px}
:is(#settings-app-root,#theme-app-root) .stp-links .settings-row,:is(#settings-app-root,#theme-app-root) .stp-dating{gap:14px;padding:12px 14px}
:is(#settings-app-root,#theme-app-root) .stp-links .settings-row>svg:first-child,:is(#settings-app-root,#theme-app-root) .stp-dating>svg:first-child{width:19px;height:19px;transform:none;color:var(--ink2);stroke-width:1.7}
:is(#settings-app-root,#theme-app-root) .stp-links .settings-row>svg:last-child,:is(#settings-app-root,#theme-app-root) .stp-dating>svg:last-child{transform:none}
.stp-bounds>summary{list-style:none;cursor:pointer}
.stp-bounds>summary::-webkit-details-marker{display:none}
.stp-bounds[open]>summary>svg:last-child{transform:rotate(90deg)!important}
.stp-bounds-body{padding:0 14px 6px}
.stp-bounds+.settings-row{border-top:1px solid var(--g-sep)}
.stp-legacy>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;min-height:54px;font-size:15px;color:var(--ink);cursor:pointer}
.stp-legacy>summary::-webkit-details-marker{display:none}
.stp-legacy>summary svg{width:14px;height:14px;color:var(--ink2-soft);stroke-width:1.8;transition:transform .16s}
.stp-legacy[open]>summary svg{transform:rotate(90deg)}
.stp-note{margin:0 0 12px;font-size:12.5px;line-height:1.6;color:var(--ink2)}
:is(#settings-app-root,#theme-app-root) .stp-legacy textarea,:is(#settings-app-root,#theme-app-root) .stp-bounds textarea{border-radius:14px;border:1px solid var(--j-off-line);background:var(--j-off);min-height:72px}
:is(#settings-app-root,#theme-app-root) .stp-dating{border:1px dashed color-mix(in srgb,var(--ink2) 35%,transparent);border-radius:22px;background:rgba(255,255,255,.12);margin-bottom:6px}
.stp-ask .settings-confirm-input{margin:14px 0 16px;border-radius:14px;font-size:15px;padding:12px}
.stp-ask .sheet-btns{display:flex;gap:10px}
.stp-ask .s-btn{flex:1;height:44px;border-radius:22px}
.st-usage-ghost{opacity:.55;border-radius:22px;border:1px dashed rgba(255,255,255,.9);background:rgba(255,255,255,.14);padding:16px 18px;display:flex;flex-direction:column;gap:6px}
.st-usage-ghost b{font-family:var(--font-display);font-size:28px;font-weight:500;color:var(--ink)}
.st-usage-ghost>span,.st-usage-ghost em{font-size:12.5px;font-style:normal;color:var(--ink2)}
.st-usage-ghost .st-days i{background:rgba(255,255,255,.75)}
:is(#settings-app-root,#theme-app-root) .st-lang{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:0;background:none;border:none;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;overflow:visible}
:is(#settings-app-root,#theme-app-root) .st-lang .lang-row{min-height:112px;flex-direction:column;align-items:flex-start;justify-content:flex-end;gap:4px;padding:18px;border-radius:24px;border:1px solid var(--j-off-line);background:var(--j-off);box-shadow:var(--j-off-shadow);position:relative}
:is(#settings-app-root,#theme-app-root) .st-lang .lang-row::before{display:none}
:is(#settings-app-root,#theme-app-root) .st-lang .lang-row.current{background:var(--j-on);border-color:var(--j-on-line);box-shadow:var(--j-on-shadow)}
:is(#settings-app-root,#theme-app-root) .st-lang .lang-row .settings-row-label{font-weight:700}
:is(#settings-app-root,#theme-app-root) .st-lang .settings-check{position:absolute;top:14px;right:14px}
:is(#settings-app-root,#theme-app-root) .stp-links>.settings-row,:is(#settings-app-root,#theme-app-root) .stp-bounds>summary.settings-row{border-radius:0;background:none}
:is(#settings-app-root,#theme-app-root) .stp-dating{margin-bottom:14px}
.stp-tz em{font-style:normal;opacity:.8}
.stp-tz em::before{content:'· '}
/* 设置 → 模型设置（js/apps/settings-model.js）—— 按 _handoff/model-settings/prototype.html 对齐：
   列表行（状态点：使用中实心、其他空心、失败红点；果冻标签「使用中 / 备用 N」；上移下移保留）、说明文字直接写在背景上（settings-hint，不套卡片）、
   编辑页的状态行 + 两个等宽按钮、模型行箭头朝右（展开转 90°）、保存按钮在页面最底部（随内容滚动，不固定）。 */
.sm-row{display:flex;align-items:center;gap:0;padding:0}
.sm-row .sm-pick{flex:1;min-width:0;display:flex;align-items:center;gap:12px;padding:12px 6px 12px 14px;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}
:is(#settings-app-root,#theme-app-root) .sm-row .settings-row-label{display:flex;align-items:center;gap:8px;font-size:17px;font-weight:500}
.sm-row .sm-edit{flex:none;width:40px;height:44px;display:grid;place-items:center;border:0;background:none;color:var(--ink2-soft);cursor:pointer;margin-right:4px}
.sm-row .sm-edit svg{width:18px;height:18px}
.sm-row .sm-move{flex:none;display:flex;flex-direction:column;justify-content:center}
.sm-row .sm-move button{width:30px;height:22px;display:grid;place-items:center;border:0;background:none;color:var(--ink2-soft);cursor:pointer}
.sm-row .sm-move button:disabled{opacity:.3;cursor:default}
.sm-row .sm-move svg{width:15px;height:15px}
.sm-fbrow .settings-row-sub{white-space:normal;overflow:visible;text-overflow:clip}
.sm-fbcard{margin-top:14px}
.sm-dot{flex:none;width:7px;height:7px;border-radius:50%;background:#6fa58f}
.sm-dot.idle{background:transparent;border:1px solid var(--mist)}
.sm-dot.bad{background:#b8706a}
.sm-tag{flex:none;font-size:12px;font-weight:600;line-height:1.5;padding:1px 9px;border-radius:999px;border:1px solid var(--j-on-line);background:var(--j-on);box-shadow:var(--j-on-shadow);color:var(--ink)}
.sm-tag-backup{border-color:var(--j-off-line);background:var(--j-off);box-shadow:var(--j-off-shadow);color:var(--ink2);font-weight:500}
:is(#settings-app-root,#theme-app-root) .sm-row .sm-use{display:block;margin-top:0;font-size:12px;color:var(--ink2-soft)}
.sm-empty-row{margin:0;padding:18px 14px;font-size:13px;line-height:1.6;color:var(--ink2);text-align:center}
:is(#settings-app-root,#theme-app-root) .sm-addrow{gap:12px}
.sm-plus{width:7px;text-align:center;font-size:20px;line-height:1;color:var(--ink2-soft)}
.sm-danger{color:#9a4f49}
:is(#settings-app-root,#theme-app-root) .sm-delcard .sm-danger{justify-content:center;font-size:15px;font-weight:600}
.sm-current{margin:0}
.sm-current.bad{color:#9a4f49;font-weight:600}
.sm-label{margin:0;padding:22px 8px 10px;font-size:13px;font-weight:600;color:var(--ink2);letter-spacing:.06em}
.sm-prov{padding:16px 16px 18px}
/* the generic :is(#settings-app-root,#theme-app-root) .settings-group{padding:0 4px} has an id and beat the line above: the provider chips sat on the card edge */
:is(#settings-app-root,#theme-app-root) .settings-group.sm-prov{padding:16px 16px 18px}
.sm-grp{margin:4px 2px 8px;font-size:12px;color:var(--ink2-soft)}
.sm-grp:first-child{margin-top:0}
.sm-prov .stj-chips+.sm-grp{margin-top:14px}
.sm-prov .stj-chips+.stj-chips{margin-top:10px}
.stj-chip.sm-more{color:var(--ink2);font-weight:400;background:transparent;border-style:dashed}
.sm-rowhint{margin:-6px 0 0;padding:0 14px 12px;font-size:12px;line-height:1.6;color:#a07a3c;text-align:right}
.sm-rowhint[hidden]{display:none}
/* 模型行下方的提示（后台整理 / 角色内容未单独设置时）：左对齐、正文色，不是接口地址那种警示 */
.sm-role .sm-rowhint{margin:-6px 0 0;padding:0 14px 14px;text-align:left;color:var(--ink2)}
.sm-role .sm-rowhint .settings-inline-retry{margin-left:6px}
:is(#settings-app-root,#theme-app-root) .settings-form>.sm-rowhint+.settings-field-row{position:relative}
:is(#settings-app-root,#theme-app-root) .settings-form>.sm-rowhint+.settings-field-row::before{content:"";position:absolute;left:14px;right:14px;top:0;height:1px;background:var(--g-sep)}
.settings-field-row[hidden],.settings-notice[hidden],.settings-hint[hidden],.settings-row[hidden]{display:none}
.sm-inline{display:flex;align-items:center;gap:8px;min-width:0}
.settings-field-row.block .sm-inline input{flex:1;min-width:0;max-width:none;box-sizing:border-box;min-height:42px;padding:0 12px;border:1px solid var(--border);border-radius:12px;background:var(--bg);font-size:16px;text-align:left;-webkit-user-select:text;user-select:text}
.sm-pastebtn{flex:none;min-height:42px;padding:0 14px;border:1px solid var(--border);border-radius:12px;background:none;color:var(--accent-text,var(--pri-deep));font-family:inherit;font-size:14px;cursor:pointer}
.sm-keycount{margin:0;font-size:12px;line-height:1.5;color:var(--ink2)}
.sm-eye{flex:none;width:32px;height:32px;display:grid;place-items:center;border:0;background:none;color:var(--ink2-soft);cursor:pointer}
.sm-eye svg{width:18px;height:18px}
.sm-seg{flex:none;display:flex;min-width:0}
.sm-seg button{white-space:nowrap}
.sm-seg button:disabled{color:var(--ink2)}
.sm-actions{position:relative;display:flex;flex-direction:column;gap:12px;padding:12px 14px 14px}
.sm-actions::before{content:"";position:absolute;left:14px;right:14px;top:0;height:1px;background:var(--g-sep)}
.sm-status{margin:0;display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px;line-height:1.5;color:var(--ink2)}
.sm-sdot{flex:none;width:7px;height:7px;border-radius:50%;background:var(--mist)}
.sm-status.ok .sm-sdot{background:#6fa58f}
.sm-status.bad{color:#9a4f49}
.sm-status.bad .sm-sdot{background:#b8706a}
.sm-status.warn .sm-sdot{background:#a07a3c}
.sm-status.busy .sm-sdot{background:#a07a3c;animation:sm-pulse 1s infinite}
@keyframes sm-pulse{50%{opacity:.3}}
.sm-btn2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.sm-jbtn{min-height:42px;border-radius:16px;border:1px solid var(--j-off-line);background:var(--j-off);box-shadow:var(--j-off-shadow);color:var(--ink);font-family:inherit;font-size:15px;cursor:pointer;transition:background .18s,box-shadow .18s}
.sm-jbtn:active{background:var(--j-on);box-shadow:var(--j-on-shadow)}
.sm-jbtn:disabled{opacity:.5;cursor:default}
.sm-hint a{color:var(--accent-text,var(--ink));font-weight:600}
.sm-role{position:relative}
.sm-role+.sm-role::before{content:"";position:absolute;left:14px;right:14px;top:0;height:1px;background:var(--g-sep);z-index:1}
.sm-rolerow{width:100%}
.sm-rolehead{display:flex;align-items:center}
.sm-rolehead .sm-rolerow{flex:1;min-width:0}
.sm-rm{flex:none;width:40px;height:44px;display:grid;place-items:center;border:0;background:none;color:var(--ink2-soft);cursor:pointer;margin:0 4px 0 6px}
.sm-rm svg{width:16px;height:16px}
.sm-addrow.sm-rolerow{justify-content:center}
:is(#settings-app-root,#theme-app-root) .sm-rolerow{gap:6px;padding-right:4px}
:is(#settings-app-root,#theme-app-root) .sm-rolerow>.settings-row-text{flex:0 1 auto;min-width:4.1em;max-width:60%}
:is(#settings-app-root,#theme-app-root) .sm-rolerow .settings-row-label{white-space:nowrap}
.sm-rolerow .settings-row-sub{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sm-pickv{flex:1 0 auto;min-width:45%;max-width:50%;overflow:hidden;overflow-wrap:anywhere;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;line-height:1.3;text-align:right;font-size:14px;color:var(--ink)}
.sm-pickv.is-empty{color:var(--ink2-soft)}
:is(#settings-app-root,#theme-app-root) .sm-rolerow>svg{flex:none;margin:0 2px 0 0;transform:none;transition:transform .2s}
:is(#settings-app-root,#theme-app-root) .sm-rolerow.open>svg{transform:rotate(90deg)}
.sm-panel{padding:0 14px 16px}
.sm-panel[hidden]{display:none}
/* 识图、语音与检索（列表页）：展开区 = 使用的配置 → 模型 → 测试 */
.sm-panel .sm-grp+.stj-chips{margin-bottom:12px}
.sm-panel>.sm-note{margin:0 2px 12px}
.sm-mtest{display:flex;flex-direction:column;gap:10px;margin-top:4px}
#sm-mchips+.sm-note{margin-top:12px}
.sm-search{width:100%;box-sizing:border-box;margin-bottom:10px;padding:8px 14px;border:1px solid var(--j-off-line,var(--border));border-radius:18px;background:var(--j-track,var(--surface));box-shadow:inset 0 1px 3px color-mix(in srgb,var(--ink) 10%,transparent);color:var(--ink);font:inherit;font-size:14px;outline:none}
.sm-note{flex-basis:100%;margin:2px 2px 0;font-size:12.5px;line-height:1.6;color:var(--ink2)}
.sm-delcard{margin-top:10px}
.sm-confirm{display:flex;flex-direction:column;gap:12px;padding:14px}
.sm-confirm p{margin:0;font-size:13px;line-height:1.6;color:var(--ink2);text-align:center}
.sm-confirm[hidden]{display:none}
.sm-del-ok{color:#9a4f49;font-weight:700}
#sm-body.sm-has-bar{padding-bottom:calc(20px + env(safe-area-inset-bottom))}
/* 保存：页面最底部，随内容滚动 */
.sm-savebar{padding:18px 0 4px}
.sm-save{display:block;width:100%;min-height:50px;border-radius:20px;border:1px solid var(--j-on-line);cursor:pointer;font-family:inherit;font-size:16px;font-weight:700;letter-spacing:.1em;color:var(--surface);
  background:linear-gradient(180deg,rgba(255,255,255,.45) 0%,rgba(255,255,255,0) 55%),linear-gradient(180deg,color-mix(in srgb,var(--pri) 70%,#fff),var(--pri-deep));
  box-shadow:inset 0 1px 1px rgba(255,255,255,.8),0 10px 22px -10px color-mix(in srgb,var(--pri-deep) 70%,transparent)}
.sm-save[aria-disabled="true"]{background:var(--j-off);border-color:var(--j-off-line);box-shadow:var(--j-off-shadow);color:var(--ink2-soft);cursor:default}

/* 说了却没做的记录 (设置 → 用量) */
.st-claims{display:flex;flex-direction:column;gap:12px}
.st-claim-chips{display:flex;flex-wrap:wrap;gap:6px}
.st-claim-chip{font-size:12px;padding:4px 10px;border-radius:999px;background:var(--surface-alt);color:var(--ink)}
.st-claim-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.st-claim-row{display:flex;flex-direction:column;gap:2px}
.st-claim-meta{font-size:11.5px;color:var(--ink2)}
.st-claim-text{font-size:13.5px;line-height:1.5;color:var(--ink)}

/* ── 设置 › 心情 (js/apps/settings-moods.js) ── */
.smood-card .st-card-head b{display:inline-flex;align-items:center;gap:8px}
.smood-card .st-card-head b::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--m)}
.smood-chip i{width:8px;height:8px;border-radius:50%;background:var(--m);flex:none}
.smood-cu{font-size:11px;color:var(--ink2-soft)}
.stj-chip.smood-add{border-style:dashed;background:none;box-shadow:none}
.stj-chip.smood-add svg{width:14px;height:14px;stroke-width:1.8;stroke-linecap:round}
.smood-hidden{margin-top:12px}
.smood-hidden .stj-chip{opacity:.6}
.smood-fold{overflow:hidden}
.smood-chev{display:flex;margin-left:auto;color:var(--mist);transition:transform .2s ease}
.smood-chev svg{width:14px;height:14px;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.settings-row[aria-expanded="true"] .smood-chev{transform:rotate(90deg)}
@keyframes smoodPop{0%{transform:scale(.86);opacity:.2}60%{transform:scale(1.05);opacity:1}100%{transform:none}}
.smood-pop{animation:smoodPop var(--mo-release,380ms) var(--mo-ease-bounce,cubic-bezier(.34,1.56,.64,1))}
.smood-rise{animation:moRise var(--mo-slow,240ms) var(--mo-ease-out,ease-out) backwards}
.app-confirm.smood-edit{text-align:left;max-width:360px}
.app-confirm.smood-edit h2{margin:0 0 4px;text-align:center}
.smood-where{text-align:center;font-size:12.5px;color:var(--ink2);margin:0 0 6px!important}
.smood-edit .settings-profile-field{margin:14px 0 0}
.smood-edit .settings-profile-field>span{font-size:12.5px;color:var(--ink);font-weight:700}
.smood-edit input{width:100%;border:1px solid var(--border);border-radius:12px;background:var(--bg);color:var(--ink);font-family:inherit;font-size:15px;padding:10px;outline:none}
.smood-edit input:disabled{color:var(--ink2)}
.smood-edit .aic-segment{display:flex}
.smood-edit .aic-segment button{flex:1;min-width:0}
.smood-sw{display:flex;flex-wrap:wrap;gap:9px;align-items:center}
.smood-dot{width:28px;height:28px;border-radius:50%;border:0;background:var(--sw);cursor:pointer;box-shadow:inset 0 0 0 2px rgba(255,255,255,.55);outline:2px solid transparent;outline-offset:2px;padding:0;transition:outline-color .18s,transform var(--mo-release,380ms) var(--mo-ease-bounce,ease)}
.smood-dot[aria-pressed="true"]{outline-color:var(--ink);transform:scale(1.08)}
.smood-sw .stj-chip{min-height:30px;padding:0 12px;font-size:12.5px}
.smood-note{margin:16px 0 0!important;font-size:12.5px!important;line-height:1.6;color:var(--ink2);text-align:left}
.app-confirm .app-confirm-link.smood-warn{color:var(--coral-text)}

/* ═══ 设置 v3 (2026-10-29, 设置改版预览「设置改版」, keep LAST) ═══
   Light mode: a white page with crisp white cards (hairline + soft shadow), no glass blur. Dark mode keeps the theme gradient with
   solid dark cards. Only the glass v2 variables are redefined, so every page built on them follows; controls (switches, segments,
   chips) become flat: the theme's deep colour for "on". */
#v-me,#v-theme{--v3-page:#fff;--v3-card:#fff;--v3-line:rgb(20 30 45/7%);--v3-shadow:0 1px 2px rgb(20 30 45/4%),0 6px 18px -6px rgb(20 30 45/8%);
  --v3-sep:color-mix(in srgb,var(--pri) 14%,transparent);--v3-fill:var(--pri-deep);--v3-track:color-mix(in srgb,var(--pri) 10%,#fff);--v3-knob:#fff;
  --v3-heroA:color-mix(in srgb,var(--pri-deep) 80%,#000);--v3-heroB:var(--pri-deep);--v3-heroC:color-mix(in srgb,var(--pri-deep) 72%,var(--pri));background:var(--v3-page)}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]) :is(#v-me,#v-theme){--v3-page:var(--st-grad);--v3-card:color-mix(in srgb,var(--surface) 82%,transparent);--v3-line:rgb(255 255 255/9%);--v3-shadow:none;
  --v3-sep:rgb(255 255 255/7%);--v3-fill:color-mix(in srgb,var(--pri) 58%,#000);--v3-track:rgb(255 255 255/8%);
  --v3-heroA:color-mix(in srgb,var(--pri) 30%,#000);--v3-heroB:color-mix(in srgb,var(--pri) 62%,#000);--v3-heroC:color-mix(in srgb,var(--pri) 45%,var(--bg))}}
:root[data-theme="dark"] :is(#v-me,#v-theme){--v3-page:var(--st-grad);--v3-card:color-mix(in srgb,var(--surface) 82%,transparent);--v3-line:rgb(255 255 255/9%);--v3-shadow:none;
  --v3-sep:rgb(255 255 255/7%);--v3-fill:color-mix(in srgb,var(--pri) 58%,#000);--v3-track:rgb(255 255 255/8%);
  --v3-heroA:color-mix(in srgb,var(--pri) 30%,#000);--v3-heroB:color-mix(in srgb,var(--pri) 62%,#000);--v3-heroC:color-mix(in srgb,var(--pri) 45%,var(--bg))}
#v-me :is(#settings-app-root,#theme-app-root),#v-theme :is(#settings-app-root,#theme-app-root),:root #v-me :is(#settings-app-root,#theme-app-root){
  --g-bg:var(--v3-card);--g-bg-strong:var(--v3-card);--g-line:var(--v3-line);--g-shadow:var(--v3-shadow);--g-blur:none;--g-sep:var(--v3-sep);--st-line:var(--v3-sep);
  --j-on:var(--v3-card);--j-on-line:transparent;--j-on-shadow:0 1px 4px -1px color-mix(in srgb,var(--pri-deep) 40%,transparent);
  --j-off:var(--v3-card);--j-off-line:var(--v3-line);--j-off-shadow:none;--j-track:var(--v3-track)}
:is(#settings-app-root,#theme-app-root) .app-title{font-size:21px;font-weight:700;letter-spacing:.02em}
:is(#settings-app-root,#theme-app-root) .settings-scroll{padding-left:16px;padding-right:16px}

/* cards, rows, labels */
:is(#settings-app-root,#theme-app-root) :is(.settings-group,.st-card,.settings-profile-box,.aic-groups,.st-dm-lane,.st-usage-hero,.st-gl){border-radius:22px}
:is(#settings-app-root,#theme-app-root) .settings-group{padding:0}
:is(#settings-app-root,#theme-app-root) .settings-group-label{font-size:13px;font-weight:600;letter-spacing:.04em;color:var(--ink2);padding:21px 10px 9px}
:is(#settings-app-root,#theme-app-root) .settings-group-label.st-label-row{display:flex;justify-content:space-between;align-items:baseline}
.st-label-row em{font-style:normal;font-weight:400;font-size:11.5px;letter-spacing:0}
:is(#settings-app-root,#theme-app-root) .settings-row,:is(#settings-app-root,#theme-app-root) .settings-field-row{min-height:52px}
:is(#settings-app-root,#theme-app-root) .settings-row-label{font-size:15px}
:is(#settings-app-root,#theme-app-root) .settings-row-sub{font-size:12px}
:is(#settings-app-root,#theme-app-root) .settings-row-val{font-size:13px;color:var(--ink2);max-width:160px}
:is(#settings-app-root,#theme-app-root) .settings-hint{font-size:12px;line-height:1.6;padding:9px 8px}
:is(#settings-app-root,#theme-app-root) .settings-notice{border-radius:16px;background:color-mix(in srgb,var(--pri) 12%,var(--v3-card));border:none;box-shadow:none}
:is(#settings-app-root,#theme-app-root) .st-row{padding:10px 14px;gap:12px}
:is(#settings-app-root,#theme-app-root) .st-row+.st-row::before,:is(#settings-app-root,#theme-app-root) .settings-group>.st-row+.settings-row::before{left:60px!important}
:is(#settings-app-root,#theme-app-root) .st-ic{width:34px;height:34px;border-radius:10px;border:none;box-shadow:none;background:color-mix(in srgb,var(--c) 17%,var(--v3-card));color:var(--c)}
:is(#settings-app-root,#theme-app-root) .st-ic svg{width:19px;height:19px;stroke-width:1.8}
:is(#settings-app-root,#theme-app-root) .st-home .settings-group .st-ic{background:var(--c);color:#fff}
.st-ic.sm{width:26px!important;height:26px!important;border-radius:8px!important}
.st-ic.sm svg{width:15px!important;height:15px!important}
:is(#settings-app-root,#theme-app-root) .settings-row.danger .settings-row-label{color:#C0605E}
.st-gap{margin-top:16px}

/* flat controls */
:is(#settings-app-root,#theme-app-root) .toggle{width:47px;height:28px;border-radius:15px;border:none;background:color-mix(in srgb,var(--pri) 25%,transparent);box-shadow:none}
:is(#settings-app-root,#theme-app-root) .toggle::after{top:3px;left:3px;width:22px;height:22px;background:#fff;box-shadow:0 1px 3px rgb(0 0 0/25%)}
:is(#settings-app-root,#theme-app-root) .toggle.on{background:var(--v3-fill);border:none;box-shadow:none}
:is(#settings-app-root,#theme-app-root) .toggle.on::after{transform:translateX(19px);box-shadow:0 1px 3px rgb(0 0 0/25%)}
:is(#settings-app-root,#theme-app-root) .toggle.sm{width:40px;height:24px}
:is(#settings-app-root,#theme-app-root) .toggle.sm::after{width:18px;height:18px}
:is(#settings-app-root,#theme-app-root) .toggle.sm.on::after{transform:translateX(16px)}
:is(#settings-app-root,#theme-app-root) :is(.st-seg,.aic-segment){border:none;border-radius:14px;padding:3px;background:var(--v3-track);box-shadow:none}
:is(#settings-app-root,#theme-app-root) :is(.st-seg,.aic-segment) button{border:none;border-radius:11px;font-size:14px;min-height:38px}
:is(#settings-app-root,#theme-app-root) :is(.st-seg,.aic-segment) button[aria-checked="true"]{background:var(--v3-card);box-shadow:0 1px 4px -1px color-mix(in srgb,var(--pri-deep) 40%,transparent);font-weight:600}
:is(#settings-app-root,#theme-app-root) .stj-chip{box-shadow:none}
:is(#settings-app-root,#theme-app-root) .stj-chip:is([aria-pressed="true"],[aria-checked="true"]){background:var(--v3-fill);border-color:transparent;color:#fff;box-shadow:none;font-weight:600}

/* press feedback (motion.css tokens) */
:is(#settings-app-root,#theme-app-root) .settings-row{transition:background var(--mo-fast) ease,transform var(--mo-fast) ease}
:is(#settings-app-root,#theme-app-root) .settings-row:not(:disabled):active{background:color-mix(in srgb,var(--pri) 8%,transparent)}
.st-tile,.st-id{transition:transform var(--mo-release) var(--mo-ease-bounce)}
.st-tile:active,.st-id:active{transform:scale(.98);transition-duration:var(--mo-fast)}
.st-tile .toggle:active{transform:none}

/* home: XIAOLAN · ID */
:is(#settings-app-root) .st-id{background:linear-gradient(150deg,var(--v3-heroA),var(--v3-heroB) 62%,var(--v3-heroC));border:none;color:#fff;border-radius:27px;padding:18px 18px 15px;
  box-shadow:0 20px 38px -24px color-mix(in srgb,var(--pri-deep) 80%,transparent);-webkit-backdrop-filter:none;backdrop-filter:none}
#settings-app-root .st-id::after{right:-46px;top:-54px;bottom:auto;width:200px;height:200px;border:none;box-shadow:none;background:radial-gradient(circle,rgb(255 255 255/26%),transparent 65%)}
#settings-app-root .st-id-kicker{font-family:-apple-system,Arial,sans-serif;font-weight:600;font-size:10.5px;color:#fff;opacity:.7}
#settings-app-root .st-id-av{width:62px;height:62px;border-radius:20px;background:rgb(255 255 255/22%);border:1px solid rgb(255 255 255/45%);box-shadow:none}
#settings-app-root .st-id-main b{font-size:25px;color:#fff}
#settings-app-root .st-id-main span{color:rgb(255 255 255/85%)}
#settings-app-root .st-ring-track{stroke:rgb(255 255 255/25%)}
#settings-app-root .st-ring-fill{stroke:#fff}
#settings-app-root .st-ring b{color:#fff}#settings-app-root .st-ring small{color:rgb(255 255 255/80%)}
#settings-app-root .st-id-foot{border-top:1px solid rgb(255 255 255/25%);color:rgb(255 255 255/90%);font-size:12.5px}
#settings-app-root .st-id-bday svg{color:#fff}
#settings-app-root .st-id-go{color:#fff;font-weight:600}

/* home: bento */
.st-bento{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin-top:13px}
.st-tile{position:relative;display:flex;flex-direction:column;align-items:stretch;gap:5px;min-height:148px;padding:14px;border-radius:22px;text-align:left;font-family:inherit;color:var(--ink);cursor:pointer;overflow:hidden;
  background:var(--v3-card);border:1px solid var(--v3-line);box-shadow:var(--v3-shadow)}
.st-tile.wide{grid-column:span 2;min-height:0}
.st-tile small{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--ink2);margin-bottom:5px}
.st-tile small>svg{width:14px;height:14px;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.st-tile strong{font-size:18px;font-weight:600;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.st-tsub{font-size:11.5px;color:var(--ink2);line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.st-tbody{display:flex;flex-direction:column;gap:4px;flex:1}
.st-tbody .st-tsub{white-space:nowrap}
.st-big{display:block;font:600 35px/1 'Fraunces',var(--font-display);color:var(--accent-text)}
.st-big span{font:500 12.5px var(--font-body,inherit);color:var(--ink2);margin-left:4px}
.st-split{display:flex;height:8px;border-radius:5px;overflow:hidden;margin-top:9px}
.st-split i{display:block;height:100%}
.st-legend{display:flex;flex-wrap:wrap;gap:4px 13px;font-size:11px;color:var(--ink2);margin-top:7px}
.st-legend span::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--c);margin-right:4px}
.st-cfgdots{display:flex;align-items:center;gap:5px;margin-top:auto;padding-top:6px}
.st-cfgdots i{width:9px;height:9px;border-radius:50%;background:color-mix(in srgb,var(--ink2) 25%,transparent)}
.st-cfgdots i.on{width:22px;border-radius:99px;background:#6FA59C}
.st-cfgdots i.bad{background:#D08A8F}
.st-cfgdots em{font-style:normal;font-size:11px;color:var(--ink2);margin-left:auto}
/* 免打扰 tile: turns into night when on */
.st-tile.night .st-day24{position:relative;height:6px;border-radius:99px;background:color-mix(in srgb,var(--ink2) 15%,transparent);margin-top:8px;overflow:hidden}
.st-tile.night .st-day24 i{position:absolute;top:0;bottom:0;background:#8E9BD6}
.st-day24l{display:flex;justify-content:space-between;font-size:9px;color:var(--ink2)}.st-day24l em{font-style:normal}
.st-tile.night .st-tsub{margin-top:auto;padding-right:48px}
.st-tile.night .toggle{position:absolute;right:12px;bottom:12px}
.st-stars{display:none}
.st-tile.night.is-on{background:linear-gradient(160deg,#3a4566,#232a40);color:#eef1f8;border-color:rgb(255 255 255/12%)}
.st-tile.night.is-on :is(small,.st-tsub){color:rgb(238 241 248/75%)}
.st-tile.night.is-on .st-day24{background:rgb(255 255 255/14%)}.st-tile.night.is-on .st-day24 i{background:#C9D2F5}
.st-tile.night.is-on .st-day24l{color:rgb(238 241 248/55%)}
.st-tile.night.is-on small .st-ic{background:linear-gradient(160deg,rgb(255 255 255/22%),rgb(255 255 255/6%));border:1px solid rgb(255 255 255/28%);color:#fff}
.st-tile.night.is-on .st-stars{display:block}
.st-stars i{position:absolute;width:3px;height:3px;border-radius:50%;background:#fff;opacity:.7}
.st-stars i:nth-child(1){right:31px;top:16px}.st-stars i:nth-child(2){right:62px;top:27px;opacity:.45}.st-stars i:nth-child(3){right:16px;top:39px;opacity:.5}
/* 主题 tile */
.st-tile.th{background:linear-gradient(160deg,color-mix(in srgb,var(--tp) 16%,var(--v3-card)),var(--v3-card) 70%)}
.st-swstack{display:flex;margin-top:auto;padding-left:6px}
.st-swstack i{width:27px;height:27px;border-radius:50%;border:2px solid var(--surface);margin-left:-6px;transition:transform var(--mo-release) var(--mo-ease-bounce)}
.st-swstack i.on{transform:translateY(-4px) scale(1.12);box-shadow:0 5px 9px -4px rgb(20 30 50/35%);z-index:1}
/* 桌面 tile: the real wallpaper */
.st-minip{position:relative;display:flex;flex-direction:column;align-items:center;gap:5px;height:74px;margin:1px 0 2px;padding-top:10px;border-radius:12px;overflow:hidden;border:1px solid rgb(20 30 45/8%);background:var(--bg)}
.st-minip .wp-layer{position:absolute;inset:0;background-size:cover;background-position:center}
.st-minip b{position:relative;font:400 23px/1 var(--clock-font,'Fraunces',serif);color:#fff;text-shadow:0 0 2px rgb(20 30 50/35%),0 1px 4px rgb(20 30 50/25%)}
.st-minip>span{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:5px;width:62%}
.st-minip>span i{aspect-ratio:1;border-radius:5px;background:rgb(255 255 255/50%);border:1px solid rgb(255 255 255/80%)}
/* 数据与存储 row tile */
.st-tile-row{flex-direction:row;align-items:center;gap:12px;padding:12px 14px}
.st-tile-row .st-ic{background:var(--c)!important;color:#fff!important}
.st-tile-text{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}
.st-tile-text strong{font-size:15px}
.st-tile-row>svg{width:14px;height:14px;color:var(--mist);transform:rotate(180deg);flex:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
@media (prefers-reduced-motion:reduce){.st-tile,.st-id,.st-swstack i{transition:none}}
/* rows with an icon that hold a control (switch / state), 作息 time rows (设置 v3, PR2) */
:is(#settings-app-root,#theme-app-root) .settings-field-row.st-frow{gap:12px;padding:10px 14px;align-items:center}
:is(#settings-app-root,#theme-app-root) .st-frow .settings-row-text{flex:1;min-width:0}
:is(#settings-app-root,#theme-app-root) .st-frow .toggle{flex:none;margin-left:6px}
:is(#settings-app-root,#theme-app-root) .settings-group>div+div>.st-frow::before,:is(#settings-app-root,#theme-app-root) .st-icon-rows>div+div>.settings-field-row::before,:is(#settings-app-root,#theme-app-root) #rhythm-switches .st-frow+div>.st-frow::before,:is(#settings-app-root,#theme-app-root) #rhythm-switches>div>.st-frow+.st-frow::before{content:"";position:absolute;top:0;left:60px;right:0;height:1px;background:var(--v3-sep)}
:is(#settings-app-root,#theme-app-root) .st-frow{position:relative}
#rhythm-switches>.st-frow::before,#rhythm-switches>div:not(:first-child)>.st-frow::before{content:"";position:absolute;top:0;left:60px;right:0;height:1px;background:var(--v3-sep)}
.st-times .st-trow{gap:10px}
.st-trow .settings-row-label{flex:1}
.st-tval{font:600 18px/1 'Fraunces',var(--font-display);color:var(--ink);font-variant-numeric:tabular-nums}
.st-trow>svg{transition:transform var(--mo-slow) var(--mo-ease-spring)}
.st-trow[aria-expanded="true"]>svg{transform:rotate(270deg)!important}
.st-tpick{display:flex;align-items:center;gap:8px;padding:2px 14px 14px;animation:moRise var(--mo-slow) var(--mo-ease-out) backwards}
.st-tpick select{appearance:none;-webkit-appearance:none;min-width:64px;padding:9px 12px;border-radius:12px;border:1px solid var(--v3-line);background:var(--v3-track);color:var(--ink);font:600 17px 'Fraunces',var(--font-display);text-align:center;text-align-last:center}
.st-tpick b{font-size:17px;color:var(--ink2)}
.st-tpick span{margin-left:auto;font-size:11.5px;color:var(--ink2)}
:is(#settings-app-root,#theme-app-root) .st-frow>.st-ic{flex:none}
/* PR2 follow-up: an icon that opens a control row is the row's first span - keep it a tinted square with its own colour, not a label */
:is(#settings-app-root,#theme-app-root) .settings-field-row>span.st-ic:first-child{flex:none;display:grid;place-items:center;color:var(--c);font-weight:400;font-size:inherit}
:is(#settings-app-root,#theme-app-root) .st-icon-rows>div:not(:empty)+.settings-row::before{content:"";position:absolute;top:0;left:60px;right:0;height:1px;background:var(--v3-sep)}
#settings-app-root .st-tile.night.is-on small .st-ic{background:linear-gradient(160deg,rgb(255 255 255/22%),rgb(255 255 255/6%));box-shadow:inset 0 0 0 1px rgb(255 255 255/28%);color:#fff}

/* ═══ 设置 v3 PR3: 我的资料 and its sub-pages ═══ */
.st-gap-s{margin-top:11px}
.st-lede{padding:6px 8px 0!important}
.st-tick{margin-left:auto;display:flex;color:var(--accent-text,var(--pri-deep))}
.st-tick svg{width:18px;height:18px;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
/* hero */
:is(#settings-app-root,#theme-app-root) .stp-av{border:2px solid var(--v3-card);background:color-mix(in srgb,var(--pri) 14%,var(--v3-card));box-shadow:0 8px 18px -10px color-mix(in srgb,var(--pri-deep) 60%,transparent)}
.stp-av-cam{border:none;background:var(--v3-card);box-shadow:0 2px 6px rgb(0 0 0/15%)}
:is(#settings-app-root,#theme-app-root) .stp-call{-webkit-backdrop-filter:none;backdrop-filter:none;border:1px solid var(--v3-line);background:var(--v3-card);font-size:12.5px;gap:4px;min-height:30px;padding:0 12px}
.stp-call b{color:var(--ink);font-weight:600}
/* 角色读到的你 */
.stp-ta{position:relative;margin-top:14px;padding:16px 16px 14px;border-radius:24px;overflow:hidden;border:1px solid var(--v3-line);
  background:linear-gradient(160deg,color-mix(in srgb,var(--pri) 20%,var(--v3-card)),var(--v3-card) 75%);box-shadow:0 16px 34px -24px color-mix(in srgb,var(--pri-deep) 55%,transparent)}
.stp-ta-h{display:flex;justify-content:space-between;align-items:baseline}
.stp-ta-h span{font-size:15px;font-weight:600;letter-spacing:.06em;color:var(--accent-text,var(--pri-deep))}
.stp-ta-h b{font:600 23px/1 'Fraunces',var(--font-display);color:var(--accent-text,var(--pri-deep))}
.stp-ta-h small{font-size:12px;font-weight:400;color:var(--ink2)}
.stp-ta-bar{height:5px;border-radius:99px;background:color-mix(in srgb,var(--pri) 16%,transparent);margin:10px 0 4px;overflow:hidden}
.stp-ta-bar i{display:block;height:100%;border-radius:99px;background:var(--v3-fill);transition:width var(--mo-slow) var(--mo-ease-spring)}
.stp-ta-lines{display:grid;grid-template-columns:1fr 1fr;column-gap:12px}
.stp-ta-lines p{margin:0;padding:5px 0;min-height:38px;display:flex;flex-direction:column;justify-content:center;gap:1px;font-size:13.5px;line-height:1.45;color:var(--ink);word-break:break-word;border-bottom:1px solid color-mix(in srgb,var(--pri) 10%,transparent)}
.stp-ta-lines p.wide{grid-column:1/-1}
.stp-ta-lines p em{font-style:normal;font-size:11px;color:var(--ink2);letter-spacing:.04em}
.stp-ta-lines p.empty{color:var(--ink2);font-size:12.5px}
.stp-ta-n{margin:9px 0 0;font-size:11px;line-height:1.5;color:var(--ink2)}
/* 基本 */
:is(#settings-app-root,#theme-app-root) .stp-form .stp-f{gap:12px;min-height:52px;padding:8px 14px;width:100%;border:none;background:none;font-family:inherit;text-align:left;color:var(--ink)}
:is(#settings-app-root,#theme-app-root) .stp-form .stp-f>.stp-k{flex:none;width:74px;display:flex;flex-direction:column;align-items:flex-start;gap:0;font-size:14px;font-weight:400;color:var(--ink2)}
.stp-k small{font-size:10.5px;color:var(--ink2);opacity:.85}
:is(#settings-app-root,#theme-app-root) .stp-form .stp-f input{flex:1;min-width:0;border:none;background:none;outline:none;font:inherit;font-size:15px;color:var(--ink);padding:6px 0}
.stp-form .stp-f input::placeholder{color:var(--ink2);opacity:1}
.stp-tap{cursor:pointer}
.stp-v{flex:1;min-width:0;text-align:right;font-size:15px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.stp-v.ph{color:var(--ink2)}
.stp-tap>svg{width:14px;height:14px;flex:none;color:var(--mist);transform:rotate(180deg);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
:is(#settings-app-root,#theme-app-root) .stp-form .stp-seg{flex:1;display:grid}
.stp-form>.stp-f+.stp-f::before{content:"";position:absolute;top:0;left:14px;right:0;height:1px;background:var(--v3-sep)}
.stp-form .stp-f{position:relative}
.stp-form .stp-tap:active{background:color-mix(in srgb,var(--pri) 8%,transparent)}
/* 关于我 */
.stp-sec{margin:28px 6px 10px}
.stp-sec h2{margin:0;font-family:var(--font-display);font-size:23px;font-weight:600;color:var(--ink)}
.stp-sec p{margin:5px 0 0;font-size:12px;color:var(--ink2)}
:is(#settings-app-root,#theme-app-root) .stp-meter-bar{background:color-mix(in srgb,var(--pri) 16%,transparent)}
:is(#settings-app-root,#theme-app-root) .stp-meter-bar i{background:var(--v3-fill)}
.stp-qcard{margin-top:11px;padding:14px 14px 16px;border-radius:22px;border:1px solid color-mix(in srgb,var(--c) 20%,var(--v3-line));
  background:linear-gradient(155deg,color-mix(in srgb,var(--c) 15%,var(--v3-card)),color-mix(in srgb,var(--c) 4%,var(--v3-card)) 70%)}
.stp-qh{display:flex;align-items:baseline;gap:8px;margin-bottom:11px}
.stp-qh .stp-no{font:600 13px 'Fraunces',var(--font-display);color:var(--c)}
.stp-qh h3{margin:0;flex:1;font-size:15.5px;font-weight:600;color:color-mix(in srgb,var(--c) 50%,var(--ink))}
.stp-qh em{font-style:normal;font-size:11px;color:var(--ink2)}
:is(#settings-app-root,#theme-app-root) .stp-qcard .stj-chip{min-height:32px;padding:0 13px;font-size:13.5px;border:none;background:color-mix(in srgb,var(--c) 12%,var(--v3-card));color:color-mix(in srgb,var(--c) 50%,var(--ink));font-weight:400}
:is(#settings-app-root,#theme-app-root) .stp-qcard .stj-chip:is([aria-pressed="true"],[aria-checked="true"]){background:var(--c);color:#fff;font-weight:500}
:is(#settings-app-root,#theme-app-root) .stp-qcard .stj-chip.add{background:none;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--c) 40%,transparent)}
:is(#settings-app-root,#theme-app-root) .stp-qcard .stp-free{border-color:color-mix(in srgb,var(--c) 22%,transparent);background:var(--v3-card)}
.stj-chip{transition:transform var(--mo-release) var(--mo-ease-bounce),background var(--mo-fast) ease}
.stj-chip:active{transform:scale(var(--mo-press-scale-sm));transition-duration:var(--mo-fast)}
/* 边界 / 以前写的资料 */
:is(#settings-app-root,#theme-app-root) .stp-links .settings-row{gap:12px;padding:10px 14px}
.stp-bounds[open]>summary>svg:last-child,.stp-legacy[open]>summary>svg:last-child{transform:rotate(270deg)!important}
.stp-legacy>summary{min-height:0}
:is(#settings-app-root,#theme-app-root) .stp-legacy>summary svg:not(.st-ic svg){width:14px;height:14px;transform:rotate(180deg)}
.stp-lg-body{padding:0 14px 12px}
.stp-lg{margin-top:10px}
.stp-lg-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;font-size:12.5px;color:var(--ink2)}
.mini-btn{border:none;border-radius:99px;padding:4px 11px;font:inherit;font-size:12px;background:color-mix(in srgb,var(--pri) 12%,transparent);color:var(--accent-text,var(--pri-deep));cursor:pointer;transition:transform var(--mo-release) var(--mo-ease-bounce)}
.mini-btn:active{transform:scale(var(--mo-press-scale-sm));transition-duration:var(--mo-fast)}
:is(#settings-app-root,#theme-app-root) .stp-lg textarea{width:100%;box-sizing:border-box;padding:10px 12px;font:inherit;font-size:14px;line-height:1.55;color:var(--ink)}
/* sub-pages: search box, avatars, picked languages */
.st-search{display:flex;align-items:center;gap:8px;padding:0 14px;height:44px;border-radius:14px;border:1px solid var(--v3-line);background:var(--v3-card)}
.st-search svg{width:17px;height:17px;flex:none;color:var(--ink2);stroke-width:1.8;stroke-linecap:round}
.st-search input{flex:1;min-width:0;border:none;background:none;outline:none;font:inherit;font-size:15px;color:var(--ink)}
.st-search:focus-within{border-color:var(--v3-fill)}
.st-av{width:34px;height:34px;flex:none;border-radius:50%;overflow:hidden;display:grid;place-items:center}
.st-av img{width:100%;height:100%;object-fit:cover}
.stp-selbar{display:flex;flex-wrap:wrap;gap:7px;margin-top:2px}
:is(#settings-app-root,#theme-app-root) .stp-selbar .stj-chip{min-height:30px;font-size:13px}
/* centered dialogs float in (motion.css), the calendar */
.sheet.aic-vis-dialog{animation:moDialogIn var(--mo-slow) var(--mo-ease-out) backwards}
.stp-cal{max-width:340px}
.stp-cal-h{display:flex;align-items:center;justify-content:space-between;margin:4px 0 6px}
.stp-cal-nav{width:34px;height:34px;border-radius:50%;border:none;display:grid;place-items:center;background:color-mix(in srgb,var(--pri) 12%,transparent);color:var(--accent-text,var(--pri-deep));transition:transform var(--mo-release) var(--mo-ease-bounce)}
.stp-cal-nav svg{width:16px;height:16px;stroke-width:2}
.stp-cal-nav.next svg{transform:rotate(180deg)}
.stp-cal-nav:active{transform:scale(var(--mo-press-scale-sm))}
.stp-cal-t{border:none;background:none;font:600 16px var(--font-display);color:var(--ink);display:flex;align-items:center;gap:5px}
.stp-cal-t i{font-style:normal;font-size:10px;color:var(--ink2)}
.stp-cal-w,.stp-cal-g{display:grid;grid-template-columns:repeat(7,1fr);text-align:center}
.stp-cal-w span{font-size:11px;color:var(--ink2);padding:4px 0}
.stp-cal-g button{aspect-ratio:1;margin:1px;border:none;border-radius:50%;background:none;font:inherit;font-size:13.5px;color:var(--ink);transition:transform var(--mo-release) var(--mo-ease-bounce),background var(--mo-fast)}
.stp-cal-g button:active{transform:scale(var(--mo-press-scale-sm))}
.stp-cal-g button.on{background:var(--v3-fill,var(--pri-deep));color:#fff}
.stp-cal-ym{display:flex;gap:10px;height:220px}
.stp-cal-col{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:4px;scrollbar-width:none;padding:2px 0}
.stp-cal-col::-webkit-scrollbar{display:none}
.stp-cal-col.m{display:grid;grid-template-columns:repeat(3,1fr);align-content:start}
.stp-cal-col button{border:none;border-radius:12px;padding:9px 0;font:inherit;font-size:13.5px;background:color-mix(in srgb,var(--pri) 8%,transparent);color:var(--ink)}
.stp-cal-col button.on{background:var(--v3-fill,var(--pri-deep));color:#fff}
.stp-cal-yr{display:flex;align-items:center;gap:10px;margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}
.stp-cal-yr .settings-row-text{flex:1;display:flex;flex-direction:column}
.stp-cal-yr .settings-row-label{font-size:14px;color:var(--ink)}
.stp-cal-yr .settings-row-sub{font-size:11.5px;color:var(--ink2)}
.stp-ta-lines p{align-items:flex-start;text-align:left}
:is(#settings-app-root,#theme-app-root) .stp-links .settings-row>svg:last-child{transform:rotate(180deg);transition:transform var(--mo-slow) var(--mo-ease-spring)}
:is(#settings-app-root,#theme-app-root) .stp-links .stp-bounds[open]>summary>svg:last-child,:is(#settings-app-root,#theme-app-root) .stp-legacy[open]>summary>svg:last-child{transform:rotate(270deg)!important}
:is(#settings-app-root,#theme-app-root) .settings-field-row>span.st-av:first-child{flex:none;display:grid;width:34px;height:34px}
.st-av .avatar-placeholder,.st-av>*{width:100%;height:100%;border-radius:50%}
.st-av{background:color-mix(in srgb,var(--pri) 14%,var(--v3-card,var(--surface)));color:var(--ink2)}
.st-av .avatar-placeholder{display:grid;place-items:center}
.st-av .avatar-placeholder svg{width:17px;height:17px;stroke-width:1.8}
.stp-cal{--v3-fill:var(--pri-deep)}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]) .stp-cal{--v3-fill:color-mix(in srgb,var(--pri) 58%,#000)}}
:root[data-theme="dark"] .stp-cal{--v3-fill:color-mix(in srgb,var(--pri) 58%,#000)}

/* ═══ 设置 v3 PR4: 心情 — one tinted card per category (预览 layout A), chips in their own colour ═══ */
#settings-app-root .smood-card{position:relative;overflow:hidden;border:1px solid color-mix(in srgb,var(--m) 22%,var(--v3-line));
  background:linear-gradient(155deg,color-mix(in srgb,var(--m) 18%,var(--v3-card)) 0%,color-mix(in srgb,var(--m) 5%,var(--v3-card)) 70%);margin-top:11px}
#settings-app-root .smood-card::after{content:"";position:absolute;right:-30px;top:-40px;width:120px;height:120px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--m) 28%,transparent),transparent 70%);pointer-events:none}
#settings-app-root .smood-card .st-card-head{position:relative;z-index:1;display:flex;align-items:baseline;gap:8px;margin-bottom:11px}
#settings-app-root .smood-card .st-card-head b{font-size:17px;letter-spacing:.06em;color:color-mix(in srgb,var(--m) 70%,var(--ink))}
#settings-app-root .smood-card .st-card-head b::before{display:none}
#settings-app-root .smood-card .st-card-head span{font-size:11px;color:var(--ink2)}
#settings-app-root .smood-card .stj-chips{position:relative;z-index:1;gap:6px}
#settings-app-root .smood-chip{min-height:32px;padding:0 13px;border:none;box-shadow:none;font-size:13.5px;font-weight:400;color:color-mix(in srgb,var(--m) 62%,var(--ink));background:color-mix(in srgb,var(--m) 15%,var(--v3-card))}
#settings-app-root .smood-chip i{display:none}
#settings-app-root .smood-chip .smood-cu{margin-left:4px;font-size:10px;color:color-mix(in srgb,var(--m) 55%,var(--ink2))}
#settings-app-root .smood-card .smood-add{width:32px;min-height:32px;padding:0;justify-content:center;border:none;background:none;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--m) 40%,transparent);color:color-mix(in srgb,var(--m) 70%,var(--ink))}
#settings-app-root .smood-add svg{width:15px;height:15px}
#settings-app-root .smood-hidden .smood-chip{opacity:.65}

/* ═══ 设置 v3 PR4: 模型设置 ═══ */
.sm-hero{position:relative;overflow:hidden;margin:4px 0 12px;padding:16px 18px 14px;border-radius:24px;color:#fff;
  background:linear-gradient(150deg,var(--v3-heroA),var(--v3-heroB) 62%,var(--v3-heroC));box-shadow:0 18px 34px -24px color-mix(in srgb,var(--pri-deep) 80%,transparent)}
.sm-hero::before{content:"";position:absolute;right:-46px;top:-54px;width:200px;height:200px;border-radius:50%;background:radial-gradient(circle,rgb(255 255 255/24%),transparent 65%);pointer-events:none}
.sm-hero-k{position:relative;display:block;font-size:11.5px;letter-spacing:.08em;opacity:.8}
.sm-hero b{position:relative;display:block;margin-top:4px;font:600 23px/1.2 var(--font-display);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sm-hero-m{position:relative;display:block;margin-top:2px;font-size:12px;opacity:.85;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sm-hero-stats{position:relative;display:grid;grid-template-columns:repeat(3,1fr);margin-top:12px;padding-top:10px;border-top:1px solid rgb(255 255 255/25%)}
.sm-hero-stats span{display:flex;flex-direction:column;gap:2px;font-size:11px;opacity:.9}
.sm-hero-stats em{font:600 18px/1.1 'Fraunces',var(--font-display);font-style:normal;opacity:1}
.sm-hero-stats small{font-size:11px;margin-left:2px;font-family:var(--font-body,inherit)}
/* each config is its own card */
#settings-app-root .sm-list{background:none!important;border:none!important;box-shadow:none!important;display:flex;flex-direction:column;gap:9px;overflow:visible}
#settings-app-root .sm-list>.sm-row{border-radius:20px;background:var(--v3-card);border:1px solid var(--v3-line);box-shadow:var(--v3-shadow);padding:10px 12px 10px 12px;align-items:center}
#settings-app-root .sm-list>.sm-row.is-active{border-color:color-mix(in srgb,#6FA59C 45%,var(--v3-line))}
#settings-app-root .sm-list>.sm-row::before,#settings-app-root .sm-list>.sm-addrow::before{display:none!important}
#settings-app-root .sm-pick{display:flex;align-items:center;gap:12px;flex:1;min-width:0}
#settings-app-root .sm-state{flex:none}
#settings-app-root .sm-list>.sm-addrow{justify-content:center;border-radius:20px;border:1px dashed color-mix(in srgb,var(--pri) 40%,transparent);background:none;min-height:46px;color:var(--accent-text,var(--pri-deep))}
#settings-app-root .sm-addrow .settings-row-text{flex:none}
#settings-app-root .sm-list .sm-empty-row{padding:16px;border-radius:20px;background:var(--v3-card);border:1px solid var(--v3-line)}
#settings-app-root .sm-fbcard{margin-top:12px}
#settings-app-root .sm-rolerow{gap:6px;padding-right:4px}
#settings-app-root .sm-rolerow>.st-ic{flex:none}
#settings-app-root .sm-save,#theme-app-root .sm-save{background:var(--v3-fill);color:#fff;border:none;box-shadow:0 12px 24px -14px color-mix(in srgb,var(--pri-deep) 80%,transparent);transition:transform var(--mo-release) var(--mo-ease-bounce),opacity var(--mo-fast)}
#settings-app-root .sm-save:active,#theme-app-root .sm-save:active{transform:scale(.98);transition-duration:var(--mo-fast)}
#settings-app-root .sm-save[aria-disabled="true"]{opacity:.45}
#settings-app-root .sm-jbtn,#theme-app-root .sm-jbtn{border-radius:14px;border:1px solid var(--v3-line);background:var(--v3-card);box-shadow:none;color:var(--accent-text,var(--pri-deep));transition:transform var(--mo-release) var(--mo-ease-bounce)}
#settings-app-root .sm-jbtn:active,#theme-app-root .sm-jbtn:active{transform:scale(var(--mo-press-scale-sm));transition-duration:var(--mo-fast)}

/* ═══ 设置 v3 PR4: 用量 — the month in a hero card, bars on white cards ═══ */
#settings-app-root .st-usage-hero{position:relative;overflow:hidden;border:none;color:#fff;padding:18px 18px 14px;
  background:linear-gradient(150deg,var(--v3-heroA),var(--v3-heroB) 62%,var(--v3-heroC));box-shadow:0 18px 34px -24px color-mix(in srgb,var(--pri-deep) 80%,transparent)}
#settings-app-root .st-usage-hero::before{content:"";position:absolute;right:-46px;top:-54px;width:200px;height:200px;border-radius:50%;background:radial-gradient(circle,rgb(255 255 255/24%),transparent 65%);pointer-events:none}
#settings-app-root .st-usage-big{position:relative}
#settings-app-root .st-usage-big b{font:600 40px/1 'Fraunces',var(--font-display);color:#fff}
#settings-app-root .st-usage-big span{color:rgb(255 255 255/80%)}
#settings-app-root .st-usage-hero p,#settings-app-root .st-usage-hero .st-usage-cache{position:relative;color:rgb(255 255 255/85%)!important}
#settings-app-root .st-usage-hero .st-days{position:relative}
#settings-app-root .st-usage-hero .st-days i{background:rgb(255 255 255/55%)}
#settings-app-root .st-ubar-track i{background:var(--v3-fill)}
#settings-app-root .st-usage-tabs{margin-top:4px}
/* 设置 v3 PR4: 数据去向 tags / legend chips in dark mode (the light glass chips washed out on the dark gradient) */
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]) :is(#settings-app-root,#theme-app-root) :is(.st-dm-tag,.st-dm-legend span){background:rgb(255 255 255/7%);border-color:rgb(255 255 255/14%);color:var(--ink2)}
:root:not([data-theme="light"]) :is(#settings-app-root,#theme-app-root) .st-dm-every .st-dm-tag{background:color-mix(in srgb,var(--pri) 30%,transparent);color:var(--ink)}}
:root[data-theme="dark"] :is(#settings-app-root,#theme-app-root) :is(.st-dm-tag,.st-dm-legend span){background:rgb(255 255 255/7%);border-color:rgb(255 255 255/14%);color:var(--ink2)}
:root[data-theme="dark"] :is(#settings-app-root,#theme-app-root) .st-dm-every .st-dm-tag{background:color-mix(in srgb,var(--pri) 30%,transparent);color:var(--ink)}

/* ── 设置 v3 PR5: 主题 App (js/apps/theme.js). Same page look as 设置 (#v-theme carries the v3 variables). ── */
/* preset cards: the preset's own background fills the card, name inside at the bottom, check in the corner */
#theme-app-root .theme-swatches{gap:8px}
#theme-app-root .theme-swatch{position:relative;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;aspect-ratio:.72;padding:0 0 9px;border-radius:16px;border:1px solid var(--v3-line);background:var(--sw-grad);box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--sw-ring) 45%,transparent);transition:transform var(--mo-release) var(--mo-ease-bounce)}
#theme-app-root .theme-swatch:active{transform:scale(var(--mo-press-scale));transition-duration:var(--mo-fast)}
#theme-app-root .theme-swatch.active{border-color:var(--sw-ring);box-shadow:inset 0 0 0 1px var(--sw-ring)}
#theme-app-root .theme-swatch-win{position:absolute;inset:0;aspect-ratio:auto;border-radius:inherit;background:none;box-shadow:none!important}
#theme-app-root .theme-swatch-win::before{display:none}
#theme-app-root .theme-swatch-check{right:6px;top:6px;width:18px;height:18px;background:var(--sw-ring);color:#fff}
#theme-app-root .theme-swatch .theme-card-name{position:relative;font-size:12.5px;color:var(--ink)}
#theme-app-root .theme-swatch:focus-visible{outline:2px solid color-mix(in srgb,var(--pri) 55%,transparent);outline-offset:2px}
#theme-app-root .theme-swatch-card{padding:12px}

/* segmented controls in a card, sliders with their value, wide buttons */
#theme-app-root .th-seg-card{padding:10px}
#theme-app-root .th-adj-row{display:flex;align-items:center;gap:12px;min-height:52px}
#theme-app-root .th-adj-row>.settings-row-label{flex:none;min-width:4.5em}
#theme-app-root .th-adj-row .th-seg{flex:1;max-width:220px;margin-left:auto}
#theme-app-root .th-adj-row .th-seg button{min-height:32px;font-size:13px}
.th-sld{flex:1;display:flex;align-items:center;gap:10px;min-width:0}
.th-sld input{flex:1;min-width:0;accent-color:var(--v3-fill,var(--pri-deep))}
.th-sld output{min-width:3.2em;text-align:right;font-size:13px;color:var(--ink2);font-variant-numeric:tabular-nums}
#theme-app-root .th-adj-row .toggle{margin-left:auto}
#theme-app-root .th-color{margin-left:auto;width:34px;height:34px;border:none;border-radius:50%;padding:0;background:none;cursor:pointer}
#theme-app-root .th-color::-webkit-color-swatch-wrapper{padding:0}#theme-app-root .th-color::-webkit-color-swatch{border:1px solid var(--v3-line);border-radius:50%}
#theme-app-root .th-wide-btn{display:block;width:100%;margin-top:12px}
#theme-app-root .th-danger{color:var(--danger-text,#b4585d)}
#theme-app-root .th-inline-btn{min-height:30px;padding:0 12px;margin-left:8px;font-size:13px}
/* fixed colours on purpose: the whole page is previewing the draft, so a warning in theme colours could be as unreadable as the draft */
#theme-app-root .th-contrast-warn{margin:6px 2px 4px;padding:9px 12px;border-radius:12px;font-size:13px;line-height:1.5;background:#FFF1CF;color:#4A3512;border:1px solid #D9B45A}
#theme-app-root .th-btns{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-top:18px}
#theme-app-root .th-btns .sm-save{min-height:42px;border-radius:14px;font-size:15px;letter-spacing:0}

/* swatches: colour fields (small round) and wallpaper solids / gradients (large rounded squares) */
.th-sws{display:flex;flex-wrap:wrap;gap:8px;flex:1;min-width:0}
.th-sw{width:24px;height:24px;flex:none;border-radius:50%;border:1px solid var(--v3-line,rgb(20 30 45/8%));background:var(--c);padding:0;cursor:pointer;transition:transform var(--mo-release) var(--mo-ease-bounce)}
.th-sw:active{transform:scale(var(--mo-press-scale))}
.th-sw.active{box-shadow:0 0 0 2px var(--v3-card,var(--surface)),0 0 0 3.5px var(--v3-fill,var(--pri-deep))}
.th-sw.big{width:46px;height:46px;border-radius:14px}
#theme-app-root .th-sw-card{padding:14px}
#theme-app-root .th-cfield{display:flex;align-items:center;gap:12px;padding:12px 14px}
#theme-app-root .th-cfield input[type=color]{flex:none;width:36px;height:36px;border:none;border-radius:10px;padding:0;background:none;cursor:pointer}
#theme-app-root .th-cfield input[type=color]::-webkit-color-swatch-wrapper{padding:0}#theme-app-root .th-cfield input[type=color]::-webkit-color-swatch{border:1px solid var(--v3-line);border-radius:10px}

/* 自定义颜色 preview: drawn from the draft colours (applyThemeColorDraftPreview), so it follows every pick */
.th-cprev{margin:4px 0 6px;padding:20px 16px 18px;border-radius:22px;text-align:center;color:var(--ink);background:linear-gradient(172deg,color-mix(in srgb,var(--pri) 38%,var(--bg)),var(--pri-pale) 55%,var(--bg));border:1px solid var(--v3-line,transparent)}
.th-cprev-clock{font-family:var(--font-display);font-size:44px;font-weight:600;line-height:1;color:var(--accent-text)}
.th-cprev-sub{margin-top:6px;font-size:12px;color:var(--ink2)}
.th-cprev-card{display:flex;flex-direction:column;gap:7px;width:68%;margin:14px auto 0;padding:12px;border-radius:16px;background:var(--surface)}
.th-cprev-b{width:max-content;max-width:100%;padding:6px 12px;border-radius:12px;font-size:12px}
.th-cprev-b.a{background:var(--pri-pale);color:var(--ink)}
.th-cprev-b.u{align-self:flex-end;background:var(--pri-deep);color:#fff}

/* wallpaper preview: a bigger phone, framed like 设置's cards */
#theme-app-root .th-wp-prev{padding:6px 0 10px}
#theme-app-root .th-wp-prev .wp-preview{width:min(56%,220px,30vh);width:min(56%,220px,30dvh);border-radius:24px;border:1px solid var(--v3-line);box-shadow:0 14px 30px -18px rgb(20 30 45/45%)}
#theme-app-root .wp-def-row{padding:4px 0 2px;gap:8px}
#theme-app-root .wp-def-win{border-radius:12px;aspect-ratio:.58;border-color:var(--v3-line)}
#theme-app-root .wp-def{font-size:12.5px;color:var(--ink2)}
#theme-app-root .wp-def.active .wp-def-win{box-shadow:0 0 0 2px var(--v3-card),0 0 0 3.5px var(--v3-fill)}
#theme-app-root .th-icon-prev{margin:4px 0 4px;padding:18px 10px;border-radius:20px;background:linear-gradient(172deg,color-mix(in srgb,var(--pri) 30%,var(--bg)),var(--pri-pale) 60%,var(--bg));border:1px solid var(--v3-line)}
#theme-app-root .th-cfield .th-sws{flex-wrap:nowrap;justify-content:space-between;gap:4px}
#theme-app-root .th-cfield .th-sw{width:22px;height:22px}
#theme-app-root .th-seg-card .th-seg{margin:0}

/* ── 设置 v3 PR6: 桌面设置 (js/apps/settings-desk.js) ── */
#settings-app-root .sd-phone-wrap{display:flex;justify-content:center;padding:4px 0 16px}
#settings-app-root .sd-sticky{position:sticky;top:-14px;z-index:3;margin:-14px -16px 0;padding:18px 16px 12px;background:var(--v3-page)}
#settings-app-root .sd-target{margin:0 0 4px}
#settings-app-root .sd-row{min-height:52px}
#settings-app-root .sd-row-col{flex-direction:column;align-items:stretch;gap:8px;padding-block:12px}
#settings-app-root .sd-row-h{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
#settings-app-root .sd-row-h output{font-size:13px;color:var(--ink2);font-variant-numeric:tabular-nums}
#settings-app-root .sd-range{width:100%;margin:0;accent-color:var(--v3-fill)}
#settings-app-root .sd-seg button{min-height:34px;font-size:13.5px}
#settings-app-root .sd-note{margin:0;font-size:12px;line-height:1.5;color:var(--ink2)}
#settings-app-root .sd-wide{display:block;width:100%;margin-top:16px}
#settings-app-root .sd-label-row{display:flex;align-items:baseline;justify-content:space-between}
#settings-app-root .sd-label-row em{font-style:normal;font-size:12px;color:var(--ink2)}
/* 字体 / 质感: a row of cards that scrolls sideways */
#settings-app-root .sd-hscroll{display:flex;gap:8px;overflow-x:auto;margin:0 -16px;padding:2px 16px 6px;scroll-padding-inline:16px;scroll-snap-type:x proximity;scrollbar-width:none}
#settings-app-root .sd-hscroll::-webkit-scrollbar{display:none}
#settings-app-root :is(.sd-fcard,.sd-txcard){flex:none;scroll-snap-align:start;display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 6px 7px;border-radius:14px;border:1px solid var(--v3-line);background:var(--v3-card);color:var(--ink);cursor:pointer;font-family:inherit;transition:transform var(--mo-release) var(--mo-ease-bounce)}
#settings-app-root :is(.sd-fcard,.sd-txcard):active{transform:scale(var(--mo-press-scale));transition-duration:var(--mo-fast)}
#settings-app-root .sd-fcard{width:72px}
#settings-app-root .sd-fcard span{font-size:28px;line-height:1.1}
#settings-app-root :is(.sd-fcard,.sd-txcard) b{font-size:10.5px;font-weight:400;color:var(--ink2);white-space:nowrap}
#settings-app-root :is(.sd-fcard,.sd-txcard)[aria-checked="true"]{border-color:var(--v3-fill);box-shadow:inset 0 0 0 1px var(--v3-fill)}
#settings-app-root .sd-fcard[aria-checked="true"]{background:var(--v3-fill);color:#fff}
#settings-app-root .sd-fcard[aria-checked="true"] b{color:rgb(255 255 255/88%)}
#settings-app-root .sd-txcard{width:74px}
.sd-txs{--ck-auto:var(--pri-deep);--ck-c:var(--pri-deep);display:grid;place-items:center;width:62px;height:46px;border-radius:10px;overflow:hidden;background:linear-gradient(172deg,color-mix(in srgb,var(--pri) 38%,var(--bg)),var(--pri-pale) 60%,var(--bg))}
.sd-txs[data-ck-tx="frost"],.sd-txs[data-ck-tx="glass"]{--ck-auto:#fff;background:linear-gradient(172deg,color-mix(in srgb,var(--pri) 62%,var(--bg)),color-mix(in srgb,var(--pri) 30%,var(--bg)))}
.sd-txs .glass-clock{font-size:30px}
/* 颜色 */
#settings-app-root .sd-dots{display:flex;flex-wrap:wrap;gap:10px;padding:14px}
.sd-dot{width:30px;height:30px;border-radius:50%;border:1px solid var(--v3-line,rgb(20 30 45/10%));background:var(--c);padding:0;cursor:pointer;font:600 12px/1 var(--font-display);color:var(--ink2)}
.sd-dot.auto{background:conic-gradient(from 200deg,#fff,var(--pri-pale),var(--pri),#fff)}
.sd-dot[aria-checked="true"]{box-shadow:0 0 0 2px var(--v3-card,var(--surface)),0 0 0 3.5px var(--v3-fill,var(--pri-deep))}
/* 日期样式 */
#settings-app-root .sd-dgrid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}
#settings-app-root .sd-dcard{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:68px;padding:10px 6px;border-radius:14px;border:1px solid var(--v3-line);background:var(--v3-card);color:var(--ink);cursor:pointer;font-family:inherit}
#settings-app-root .sd-dcard[aria-checked="true"]{border-color:var(--v3-fill);box-shadow:inset 0 0 0 1px var(--v3-fill)}
#settings-app-root .sd-dcard>b{font-size:11px;font-weight:400;color:var(--ink2)}
.sd-dtx{display:inline-flex;align-items:center;gap:.5em;font-family:'Noto Serif SC',var(--font-display),serif;font-size:11.5px;letter-spacing:.1em;color:var(--ink)}
.sd-dtx[data-k="pill"]{padding:3px 9px;border-radius:99px;background:color-mix(in srgb,var(--pri) 12%,transparent);border:1px solid color-mix(in srgb,var(--pri) 22%,transparent)}
.sd-dtx[data-k="en"]{font-family:-apple-system,'Helvetica Neue',Arial,sans-serif;font-weight:600;letter-spacing:.24em;font-size:10.5px}
.sd-dtx b{font-weight:600}.sd-dtx i{display:inline-block;width:1px;height:.95em;background:currentColor;opacity:.4}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]) #settings-app-root .sd-sticky{background:color-mix(in srgb,var(--bg) 78%,transparent);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}}
:root[data-theme="dark"] #settings-app-root .sd-sticky{background:color-mix(in srgb,var(--bg) 78%,transparent);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}

/* ── 设置 v3 PR7: 账号与登录 / 数据与存储 / 同步本机数据 / 关于 / 语言 ── */
#settings-app-root .st-vrow{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:50px}
#settings-app-root .st-vrow .settings-row-val{font-size:14px;color:var(--ink2);font-variant-numeric:tabular-nums;text-align:right}
#settings-app-root .st-notes{padding:4px 16px}
#settings-app-root .st-note{padding:12px 0}
#settings-app-root .st-note+.st-note{border-top:1px solid var(--v3-sep)}
#settings-app-root .st-note b{display:block;margin-bottom:4px;font-size:14.5px;font-weight:600;color:var(--ink)}
#settings-app-root .st-note p{margin:0;font-size:13px;line-height:1.65;color:var(--ink2)}
#settings-app-root .st-acard{display:flex;align-items:center;gap:12px;margin:6px 0 4px;padding:16px;border-radius:20px;background:var(--v3-card);border:1px solid var(--v3-line);box-shadow:var(--v3-shadow)}
#settings-app-root .st-acard .settings-row-label{font-size:16px;font-weight:600}
#settings-app-root .st-input-row{display:flex;align-items:center;gap:12px;min-height:52px;cursor:text}
#settings-app-root .st-input-row>.settings-row-label{flex:none;width:4.5em}
#settings-app-root .st-input-row input{flex:1;min-width:0;width:auto;max-width:none;height:36px;padding:0 10px;border:none;border-radius:10px;background:var(--v3-track);color:var(--ink);font:inherit;font-size:14.5px;text-align:left}
#settings-app-root .st-input-row input::placeholder{color:var(--ink2);opacity:1}
#settings-app-root .st-input-row input:focus-visible{outline:2px solid color-mix(in srgb,var(--pri) 55%,transparent);outline-offset:1px}
#settings-app-root .st-wide{display:block;width:100%;margin-top:10px}
#settings-app-root .st-lede{margin:6px 4px 12px}
#settings-app-root .st-err{margin-bottom:12px}
#settings-app-root .st-about{display:flex;flex-direction:column;align-items:center;text-align:center;padding:18px 12px 16px}
#settings-app-root .st-about-mark{width:72px;height:72px;border-radius:20px;overflow:hidden;box-shadow:0 10px 24px -12px rgb(20 30 45/45%)}
#settings-app-root .st-about-mark img{width:100%;height:100%;display:block}
#settings-app-root .st-about h2{margin:14px 0 6px;font-family:var(--font-display);font-size:22px;font-weight:700;color:var(--ink)}
#settings-app-root .st-about p{margin:0;max-width:20em;font-size:13.5px;line-height:1.65;color:var(--ink2)}
/* centred dialogs inside $sheet (清除全部数据, 退出登录, 注销账号): outside #v-me, so the v3 variables have fallbacks */
.st-dlg h2{margin:0 0 10px;font-family:var(--font-display);font-size:18px;color:var(--ink)}
.st-dlg p,.st-dlg-p{font-size:13px!important;line-height:1.65!important;color:var(--ink2)!important;margin:0 0 8px!important}
.st-dlg .settings-danger-list{margin:0 0 10px;padding-left:18px;font-size:13px;line-height:1.7;color:var(--ink)}
.st-dlg .settings-confirm-input{width:100%;box-sizing:border-box;height:40px;margin:2px 0 6px;padding:0 12px;border:1px solid var(--v3-line,rgb(20 30 45/10%));border-radius:12px;background:var(--surface);color:var(--ink);font:inherit}

/* ── 设置 v3 PR7: 开发者页 (sprite-grant-admin.js 定制形象发放 / 报错记录 / 未执行的动作; debug-prompt.js 开发者选项 / 本轮提示词) ── */
#settings-app-root .dv-sum{margin:6px 0 4px;padding:16px;border-radius:20px;background:var(--v3-card);border:1px solid var(--v3-line);box-shadow:var(--v3-shadow)}
#settings-app-root .dv-sum-row{display:flex;align-items:center;justify-content:space-between;gap:10px}
#settings-app-root .dv-sum-t{font-size:12.5px;color:var(--ink2)}
#settings-app-root .dv-seg{width:132px}
#settings-app-root .dv-seg button{min-height:30px;font-size:12.5px}
#settings-app-root .dv-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}
#settings-app-root .dv-stats div{display:flex;flex-direction:column;gap:2px}
#settings-app-root .dv-stats b{font-family:var(--font-display);font-size:26px;font-weight:600;line-height:1.1;color:var(--ink);font-variant-numeric:tabular-nums}
#settings-app-root .dv-stats span{font-size:12px;color:var(--ink2)}
#settings-app-root .dv-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
#settings-app-root .dv-chip{min-height:30px;padding:0 12px;border-radius:15px;border:1px solid var(--v3-line);background:var(--v3-card);color:var(--ink2);font:inherit;font-size:12.5px;cursor:pointer}
#settings-app-root .dv-chip[aria-checked="true"]{background:var(--v3-fill);border-color:var(--v3-fill);color:#fff}
#settings-app-root .dv-group{margin-top:10px}
#settings-app-root .dv-pill{flex:none;padding:3px 9px;border-radius:11px;background:var(--v3-track);font-size:12px;color:var(--ink2);white-space:nowrap}
#settings-app-root .dv-group .st-row[aria-expanded="true"]>svg:last-child{transform:rotate(-90deg)}
#settings-app-root .dv-err{padding:10px 0 12px;border-top:1px solid var(--v3-sep)}
#settings-app-root .dv-msg{margin:0 0 6px;font-size:13.5px;line-height:1.5;color:var(--ink);word-break:break-word}
#settings-app-root .dv-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:12px;color:var(--ink2)}
#settings-app-root .dv-meta>span{flex:1;min-width:0}
.dv-mini,.dbg-mini{flex:none;min-height:28px;padding:0 11px;border-radius:14px;border:1px solid var(--v3-line,rgb(20 30 45/10%));background:var(--v3-card,var(--surface));color:var(--accent-text);font:inherit;font-size:12px;cursor:pointer}
.dv-pre,.dbg-pre{margin:8px 0 0;padding:10px 12px;border-radius:12px;background:var(--v3-track,color-mix(in srgb,var(--pri) 10%,var(--surface)));font:12px/1.55 ui-monospace,Menlo,Consolas,monospace;color:var(--ink);white-space:pre-wrap;word-break:break-all;user-select:text;max-height:320px;overflow:auto;scrollbar-width:none}
/* 未执行的动作 */
#settings-app-root .dv-kind{display:block;width:100%;padding:12px 0;border:none;border-top:1px solid var(--v3-sep);background:none;text-align:left;font:inherit;color:inherit;cursor:pointer}
#settings-app-root .dv-kind:first-child{border-top:none}
#settings-app-root .dv-kind-h{display:flex;align-items:center;gap:12px}
#settings-app-root .dv-n{flex:none;font-family:var(--font-display);font-size:20px;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}
#settings-app-root .dv-n small{margin-left:2px;font-family:var(--font-body,inherit);font-size:11px;font-weight:400;color:var(--ink2)}
#settings-app-root .dv-bar{display:flex;height:6px;margin:10px 0 0 46px;border-radius:3px;overflow:hidden;background:var(--v3-track)}
#settings-app-root .dv-bar i{display:block;height:100%;background:var(--v3-fill)}
#settings-app-root .dv-bar i.c2{background:#9D86C4}#settings-app-root .dv-bar i.c3{background:#6FA59C}
#settings-app-root .dv-split{display:flex;gap:12px;margin:6px 0 0 46px;font-size:12px;color:var(--ink2)}
#settings-app-root .dv-split span::before{content:"";display:inline-block;width:7px;height:7px;margin-right:5px;border-radius:50%;background:var(--v3-fill)}
#settings-app-root .dv-split .c2::before{background:#9D86C4}#settings-app-root .dv-split .c3::before{background:#6FA59C}
/* 定制形象发放 */
#settings-app-root .dv-step{margin:10px 0 0;padding:14px 16px;border-radius:20px;background:var(--v3-card);border:1px solid var(--v3-line);box-shadow:var(--v3-shadow);transition:opacity var(--mo-base)}
#settings-app-root .dv-step.off{opacity:.5;pointer-events:none}
#settings-app-root .dv-sh{display:flex;align-items:center;gap:10px;margin-bottom:10px;font-size:15px;font-weight:600;color:var(--ink)}
#settings-app-root .dv-sh i{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--v3-track);font-style:normal;font-size:12.5px;color:var(--ink2)}
#settings-app-root .dv-sh i.ok{background:#6FA59C;color:#fff}
#settings-app-root .dv-sh i svg{width:14px;height:14px;stroke-width:2.4}
#settings-app-root .dv-search{display:flex;gap:8px}
#settings-app-root .dv-search input{flex:1;min-width:0;height:40px;padding:0 12px;border:none;border-radius:12px;background:var(--v3-track);color:var(--ink);font:inherit;font-size:14.5px}
#settings-app-root .dv-search input::placeholder{color:var(--ink2);opacity:1}
#settings-app-root .dv-search .sm-jbtn{padding:0 16px}
#settings-app-root .dv-found{display:flex;align-items:center;gap:10px;margin-top:10px;font-size:14px;color:var(--ink)}
#settings-app-root .dv-found em{margin-left:auto;font-style:normal;font-size:12.5px;color:var(--ink2)}
#settings-app-root .dv-av{display:grid;place-items:center;flex:none;width:30px;height:30px;border-radius:50%;background:color-mix(in srgb,var(--pri) 22%,var(--v3-card));font-size:13px;font-weight:600;color:var(--ink)}
#settings-app-root .dv-chars{display:flex;flex-wrap:wrap;gap:8px}
#settings-app-root .dv-char{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 14px 0 5px;border-radius:20px;border:1px solid var(--v3-line);background:var(--v3-card);color:var(--ink);font:inherit;font-size:14px;cursor:pointer}
#settings-app-root .dv-char[aria-checked="true"]{border-color:var(--v3-fill);box-shadow:inset 0 0 0 1px var(--v3-fill)}
#settings-app-root .dv-muted{margin:0;font-size:13px;color:var(--ink2)}
#settings-app-root .dv-files{display:grid;grid-template-columns:1fr 1fr;gap:8px}
#settings-app-root .dv-file{display:flex;flex-direction:column;align-items:center;gap:4px;padding:14px 8px;border-radius:14px;border:1px dashed color-mix(in srgb,var(--pri) 40%,transparent);background:var(--v3-track);text-align:center;cursor:pointer}
#settings-app-root .dv-file.on{border-style:solid;border-color:var(--v3-fill)}
#settings-app-root .dv-file svg{width:22px;height:22px;color:var(--accent-text)}
#settings-app-root .dv-file b{font-size:13px;font-weight:600;color:var(--ink)}
#settings-app-root .dv-file span{font-size:11.5px;color:var(--ink2);word-break:break-all}
#settings-app-root .dv-check{margin:10px 0 0;padding:8px 10px;border-radius:10px;font-size:12.5px;line-height:1.5;color:var(--ink);background:color-mix(in srgb,#6FA59C 14%,transparent)}
#settings-app-root .dv-check.bad{background:color-mix(in srgb,#C47474 14%,transparent)}
#settings-app-root .dv-done{display:flex;flex-direction:column;align-items:center;gap:6px;padding:40px 16px;text-align:center}
#settings-app-root .dv-ok{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:#6FA59C;color:#fff}
#settings-app-root .dv-ok svg{width:28px;height:28px;stroke-width:2.4}
#settings-app-root .dv-done b{margin-top:6px;font-size:18px;color:var(--ink)}
#settings-app-root .dv-done span{font-size:13px;color:var(--ink2)}
#settings-app-root .dv-done .sm-jbtn{margin-top:14px;padding:0 20px}
/* 开发者选项: how the long-press menu looks */
#settings-app-root .dv-demo{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:16px;border-radius:20px;background:var(--v3-track)}
#settings-app-root .dv-demo-bub{padding:9px 13px;border-radius:16px 16px 16px 6px;background:var(--v3-card);font-size:13.5px;color:var(--ink);box-shadow:var(--v3-shadow)}
#settings-app-root .dv-demo-menu{display:flex;gap:2px;padding:4px;border-radius:14px;background:var(--v3-card);box-shadow:var(--v3-shadow)}
#settings-app-root .dv-demo-menu span{padding:6px 10px;border-radius:10px;font-size:12.5px;color:var(--ink2)}
#settings-app-root .dv-demo-menu .hi{background:var(--v3-fill);color:#fff}
#settings-app-root .dv-steps{margin:10px 4px 0;padding-left:20px;font-size:13px;line-height:1.7;color:var(--ink2)}

/* 本轮提示词: a full page over the chat ($sheet) */
.dbg-page{--v3-card:#fff;--v3-line:rgb(20 30 45/7%);--v3-track:color-mix(in srgb,var(--pri) 10%,#fff);--v3-shadow:0 1px 2px rgb(20 30 45/4%),0 6px 18px -6px rgb(20 30 45/8%);position:fixed;inset:0;z-index:60;display:flex;flex-direction:column;background:#fff;color:var(--ink);animation:moSubIn var(--mo-slow) var(--mo-ease-spring) both}
.dbg-page.leave{animation:moFade var(--mo-base) var(--mo-ease-out) reverse both}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]) .dbg-page{--v3-card:color-mix(in srgb,var(--surface) 82%,transparent);--v3-line:rgb(255 255 255/9%);--v3-track:rgb(255 255 255/8%);--v3-shadow:none;background:linear-gradient(170deg,color-mix(in srgb,var(--pri) 40%,var(--surface)) 0%,var(--pri-pale) 42%,var(--surface) 100%)}}
:root[data-theme="dark"] .dbg-page{--v3-card:color-mix(in srgb,var(--surface) 82%,transparent);--v3-line:rgb(255 255 255/9%);--v3-track:rgb(255 255 255/8%);--v3-shadow:none;background:linear-gradient(170deg,color-mix(in srgb,var(--pri) 40%,var(--surface)) 0%,var(--pri-pale) 42%,var(--surface) 100%)}
@media (prefers-reduced-motion:reduce){.dbg-page,.dbg-page.leave{animation:none}}
.dbg-top{display:flex;align-items:center;gap:6px;padding:calc(8px + env(safe-area-inset-top,0px)) 12px 6px}
.dbg-top .app-title{margin:0}
.dbg-scroll{flex:1;min-height:0;overflow-y:auto;scrollbar-width:none;padding:4px 16px calc(28px + env(safe-area-inset-bottom,0px))}
.dbg-hd{padding:14px 16px;border-radius:20px;background:var(--v3-card);border:1px solid var(--v3-line);box-shadow:var(--v3-shadow)}
.dbg-hd-t{display:flex;align-items:center;gap:8px}
.dbg-hd-t b{flex:1;min-width:0;font-size:14.5px;font-weight:600}
.dbg-tag{flex:none;padding:2px 8px;border-radius:9px;background:var(--v3-track);font-size:11.5px;color:var(--ink2)}
.dbg-kv{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px;margin-top:12px}
.dbg-kv div{display:flex;flex-direction:column;gap:2px;min-width:0}
.dbg-kv span{font-size:11.5px;color:var(--ink2)}
.dbg-kv b{font-size:13px;font-weight:500;word-break:break-word}
.dbg-note{margin:12px 0 0;padding:12px 14px;border-radius:16px;background:color-mix(in srgb,#C47474 12%,transparent);font-size:13px;line-height:1.6}
.dbg-note b{display:block;margin-bottom:2px}
.dbg-gt{margin:18px 4px 8px;font-size:12.5px;color:var(--ink2)}
.dbg-sec{margin-top:8px;padding:4px 14px;border-radius:16px;background:var(--v3-card);border:1px solid var(--v3-line);box-shadow:var(--v3-shadow)}
.dbg-sec-h{display:flex;align-items:center;gap:8px}
.dbg-sec-t{flex:1;min-width:0;display:flex;align-items:center;gap:8px;min-height:44px;padding:0;border:none;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}
.dbg-sec-t b{font-size:14px;font-weight:600}
.dbg-n{font-size:12px;color:var(--ink2)}
.dbg-chev{margin-left:auto;display:grid;place-items:center;color:var(--ink2);transition:transform var(--mo-slow) var(--mo-ease-spring)}
.dbg-chev svg{width:16px;height:16px;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.dbg-sec.open .dbg-chev{transform:rotate(90deg)}
.dbg-sec .dbg-pre{margin:0 0 12px}
.dbg-foot{margin:16px 4px 0;font-size:12px;line-height:1.6;color:var(--ink2)}
#settings-app-root .dv-kind{padding:12px 16px}
#settings-app-root .dv-err{padding:10px 16px 12px}
.dv-pre::-webkit-scrollbar,.dbg-pre::-webkit-scrollbar{display:none}
.dbg-scroll::-webkit-scrollbar{display:none}

/* 模型设置 › 生图：测试图缩略图、每月上限输入 */
.gx-testimg{display:flex;align-items:flex-end;gap:10px;margin:10px 0 0}
.gx-testimg img{width:72px;aspect-ratio:1/1;object-fit:cover;border-radius:10px;box-shadow:0 4px 12px rgba(40,50,70,.18)}
.gx-testimg span{font-size:12px;color:var(--ink2)}
.gx-cap{display:flex;align-items:center;gap:10px;margin-top:10px}
.gx-cap .sm-search{flex:1;min-width:0;margin:0}
.gx-cap span{font-size:13px;color:var(--ink2);flex:none}
.gx-testimg[hidden],.gx-cap[hidden]{display:none}
.sm-mtest~.sm-grp{margin-top:16px}
