/* All product surfaces and statuses use the Nuxt UI theme. */
:root {
 --bg:var(--ui-bg-muted); --surface:var(--ui-bg); --raised:var(--ui-bg-elevated);
 --line:var(--ui-border-accented); --ink:var(--ui-text-highlighted); --muted:var(--ui-text-muted);
 --action:var(--ui-primary); --on-action:var(--ui-text-inverted);
 --success:var(--ui-success); --warning:var(--ui-warning); --danger:var(--ui-error);
 --control-bg:var(--action); --control-fg:var(--on-action);
}
:root {
 --accent:var(--action);--purple:var(--action);--tint:var(--raised);--glass:var(--surface);
 --surface-alt:var(--raised);--success-bg:var(--surface);--warning-bg:var(--surface);
 --g-bg:var(--bg);--g-panel:var(--surface);--g-ink:var(--ink);--g-muted:var(--muted);
 --g-mint:var(--success);--g-pink:var(--action);--club-ink:var(--ink);--club-blue:var(--action);
 --sun:var(--warning);--sky:var(--action);--coral:var(--danger);
}
:root {
 --error:var(--danger);--error-bg:var(--raised);--focus:var(--action);
 --family-blue:var(--action);--family-coral:var(--danger);
 --family-green:var(--success);--family-yellow:var(--warning);
}

/* Family Quest's product layout sits above the library's component layer.
   No identity, permissions or household values belong in this file. */
/* The official light/dark themes own all colors and shape tokens.
   Compatibility aliases let product charts and custom layouts use the same theme. */




.dui-btn {min-height:2.75rem;height:auto;max-width:100%;min-width:2.75rem;white-space:normal;overflow-wrap:anywhere;flex-wrap:wrap;font-weight:600;font-family:inherit;font-size:.875rem;line-height:1.5;padding-block:.6rem;transform:none;}
.dui-btn:disabled {cursor:not-allowed;}
.dui-btn-outline {background:var(--surface);border-color:var(--line);color:var(--ink);}
.dui-btn-ghost {color:var(--action);}
.dui-btn[aria-pressed=true],.dui-btn[aria-current=page] {background:var(--action);color:var(--on-action);border-color:var(--action);}
.dui-input,.dui-select,.dui-textarea {box-sizing:border-box;width:100%;max-width:100%;font-family:inherit;font-size:1rem;min-height:2.75rem;color:var(--ink);background-color:var(--surface);border-color:var(--line);text-align:start;}
.dui-textarea {resize:vertical;height:auto;line-height:1.6;}
.dui-select {padding-inline-start:.8rem;padding-inline-end:2rem;}
.dui-input:focus,.dui-select:focus,.dui-textarea:focus {outline:2px solid var(--action);outline-offset:2px;}
.dui-checkbox,.dui-radio {flex:none;min-height:1.4rem;min-width:1.4rem;color:var(--action);}
/* Day radio controls remain paired with their existing large labels. */
.planner-days .dui-radio {position:absolute;opacity:0;min-width:0;min-height:0;}
.dui-card {min-width:0;}
.prize-row.dui-card {display:grid;}
.dui-alert {display:flex;align-items:start;flex-wrap:wrap;gap:.65rem;padding:1rem;color:var(--ink);background:var(--raised);border:1px solid var(--line);border-radius:var(--ui-radius);box-shadow:none;}
.dui-alert p {min-width:0;flex-basis:100%;margin:0;}
.dui-alert-error {border-inline-start:3px solid var(--danger);}
.dui-badge {height:auto;min-height:1.6rem;max-width:100%;white-space:normal;font-size:.8rem;line-height:1.5;padding:.2rem .5rem;border-color:var(--line);}
/* Native details keep browser focus, search and disclosure behavior. No checkbox hack. */
details.dui-collapse {display:block;visibility:visible;overflow:visible;isolation:auto;contain:none;min-height:0;border-radius:var(--ui-radius);}
details.dui-collapse>summary.dui-collapse-title {display:flex;align-items:center;gap:.5rem;min-height:2.75rem;padding:.75rem .5rem;font-size:.9rem;line-height:1.5;cursor:pointer;}
details.dui-collapse>summary:after {position:static;inset:auto;transform:none;content:'＋';margin-inline-start:auto;flex:none;}
details.dui-collapse[open]>summary:after {content:'−';}
details.dui-collapse:not([open])>:not(summary) {display:none;}
details.dui-collapse>.dui-collapse-content {visibility:visible;min-height:0;padding:.75rem .5rem 1rem;font-size:1rem;}
.dui-tabs {display:flex;flex-wrap:wrap;gap:.35rem;}
.dui-tabs>.dui-tab {height:auto;min-height:2.75rem;flex:1;padding:.5rem .65rem;font-size:.875rem;border-radius:var(--ui-radius);color:var(--muted);background:var(--surface);}
.dui-tabs>.dui-tab[aria-current=page] {color:var(--on-action);background:var(--action);font-weight:700;}
.parent-tabs .dui-btn,.g-bottom-nav .dui-btn {min-width:0;max-width:none;padding:.4rem .15rem;border:0;border-radius:0;background:transparent;color:var(--muted);font-size:.8rem;flex-direction:column;gap:.3rem;}
.parent-tabs .dui-btn[aria-current=page],.g-bottom-nav .dui-btn.active {color:var(--action);background:transparent;}
aside nav .dui-btn {width:100%;justify-content:flex-start;}
.task-inbox-tabs .dui-btn,.task-people .dui-btn {font-size:.8rem;padding:.4rem .65rem;}
.task-inbox-tabs .dui-btn>span {font-weight:700;}
.text-btn.dui-btn {text-decoration:underline;text-underline-offset:.2em;padding-inline:.4rem;}
.avatar-choice.dui-btn {padding:.25rem;}
.dui-avatar {display:inline-flex;flex:none;}
.dui-avatar img {object-fit:cover;}
.dui-progress {height:.5rem;width:100%;color:var(--action);background:var(--line);}
/* Native dialog supplies focus trap, Escape and backdrop; daisyUI supplies the box. */
dialog.dui-modal-box {opacity:1;scale:1;position:fixed;margin:auto;width:min(32rem,calc(100% - 2rem));max-height:calc(100dvh - 2rem);padding:1.25rem;background:var(--surface);color:var(--ink);border:1px solid var(--line);box-shadow:none;}
dialog.dui-modal-box:not([open]) {display:none;}
dialog.dui-modal-box::backdrop {background:color-mix(in srgb,var(--ink) 45%,transparent);}
.chat-composer .dui-textarea {min-height:3rem;max-height:9rem;}
.chat-composer .dui-btn {align-self:end;}
.studio-task .dui-btn,.g-mission .dui-btn {justify-self:start;}
#viewer.dui-select {width:auto;max-width:12rem;}
:where(.dui-btn,.dui-tab,.dui-collapse-title):focus-visible {outline:3px solid var(--action);outline-offset:3px;}
@media(prefers-contrast:more){.dui-btn-outline,.dui-input,.dui-select,.dui-textarea,.dui-badge{border-color:var(--ink);}}
@media(prefers-reduced-motion:reduce){.dui-btn,.dui-collapse,.dui-modal-box{transition:none;animation:none;}}
@media(forced-colors:active){.dui-btn[aria-pressed=true],.dui-tab[aria-current=page]{outline:3px solid Highlight;}}

.dui-file-input {width:100%;max-width:100%;font-family:inherit;font-size:1rem;min-height:2.75rem;}
.dui-range {width:100%;color:var(--action);}
.dui-progress {display:block;border:0;padding:0;border-radius:var(--ui-radius);appearance:none;}

.chat-message.dui-chat {padding:.5rem 0;max-width:100%;background:transparent;border:0;box-shadow:none;}
.dui-chat-bubble {font-size:1rem;line-height:1.65;min-height:0;max-width:100%;padding:.75rem 1rem;background:var(--raised);color:var(--ink);overflow-wrap:anywhere;}
.user .dui-chat-bubble {background:var(--action);color:var(--on-action);}
.dui-chat-header {color:var(--muted);font-size:.8rem;}
/* Primary is a fill color. Standalone small text uses the theme's text color,
   so the official dark primary never becomes low-contrast body copy. */
.dui-btn-ghost:not([aria-pressed=true]):not([aria-current=page]),details.dui-collapse>summary.dui-collapse-title {color:var(--ink);}
.parent-tabs .dui-btn[aria-current=page],.g-bottom-nav .dui-btn.active {color:var(--ink);text-decoration:underline;text-underline-offset:.25em;}
/* daisyUI dark's primary/content pair is below AA for small labels.
   Keep its palette intact; use its neutral pair for filled controls. */



.dui-btn-primary,.dui-btn[aria-pressed=true],.dui-btn[aria-current=page],.dui-tabs>.dui-tab[aria-current=page] {background:var(--control-bg);color:var(--control-fg);border:1px solid var(--action);}
.parent-tabs .dui-btn[aria-current=page] {background:transparent;color:var(--ink);border:0;}
a {color:var(--ink);text-decoration:underline;text-underline-offset:.2em;}

.avatar-upload {color:var(--ink);}
/* Real tables at every width; disclosure cells span both columns. */
.task-table {width:100%;table-layout:fixed;border-collapse:collapse;font-size:.875rem;border-radius:0;background:transparent;}
.task-table .task-name-column{width:52%;}.task-table .task-state-column{width:48%;}
.task-table :is(th,td){white-space:normal;overflow-wrap:anywhere;text-align:start;vertical-align:top;padding:.65rem .4rem;}
.task-table thead th{font-size:.8rem;color:var(--muted);font-weight:500;border-bottom:1px solid var(--line);}
.task-table tbody th{font-weight:600;color:var(--ink);}
.task-table-title{display:block;font-size:1rem;line-height:1.45;}
.task-table-time{display:block;font-size:.8rem;font-weight:400;color:var(--muted);margin-block-start:.25rem;}
.task-table-status{font-size:.8rem;color:var(--muted);}
.task-table tbody{border-bottom:1px solid var(--line);}
.task-table-actions{display:flex;flex-wrap:wrap;gap:.25rem;margin-block-start:.35rem;}
.task-table-actions .dui-btn{width:100%;min-width:0;font-size:.875rem;padding:.4rem;}
.task-table .task-table-detail>td{padding:0 .4rem .35rem;}
.task-table .dui-collapse>summary.dui-collapse-title{justify-content:flex-start;padding:.4rem 0;}
.task-table .dui-collapse>summary:after{margin-inline-start:.5rem;}
.task-table .parent-task-more{grid-column:auto;max-width:100%;}
.task-table .planner-task{border:0;border-radius:0;background:transparent;margin:0;padding:0;}
.task-table .task-schedule{max-width:100%;}
.task-table .week-occurrence{padding:.5rem 0;}
@media(min-width:761px){.task-table-actions .dui-btn{width:auto;}.task-table .task-name-column{width:60%;}.task-table .task-state-column{width:40%;}}

.appearance-toggle{display:flex;align-items:center;justify-content:center;gap:.75rem;min-height:44px;color:var(--ink);}.appearance-toggle span{display:flex;align-items:center;gap:.35rem;}.appearance-toggle input{flex-shrink:0;}

/* One semantic theme for both parent and child layouts, including legacy aliases. */

body,.child-mode {background:var(--bg);color:var(--ink);}
.game-view,.studio-view{color:var(--ink);}
.user .dui-chat-bubble{background:var(--control-bg);color:var(--control-fg);}
.dui-btn{box-shadow:none;}
/* One filter entry point; all existing scopes remain available on demand. */
.task-inbox-toolbar{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;}
.task-inbox-toolbar>p{flex:1;margin:0;font-size:.8rem;}
.task-filter-menu{position:relative;}
.task-filter-menu>summary.dui-collapse-title{padding:.4rem .5rem;}
.task-filter-options{padding:.5rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--ui-radius);}
.task-filter-menu[open]{flex-basis:100%;order:3;}
.task-filter-menu[open] .task-filter-options{position:static;}
.parent-task-inbox .task-inbox-scope{margin:.25rem 0;font-size:.8rem;}
.task-table :is(th,td){padding:.4rem .25rem;}
.task-table .task-table-detail>td{padding:0 .25rem;}
.task-table .dui-collapse>summary.dui-collapse-title{padding:0;min-height:44px;font-size:.8rem;}
.task-table-actions{margin-block-start:.2rem;}
.task-child-groups{gap:.75rem;}
.task-table thead th{padding-block:.25rem;}
@media(max-width:760px){
 .parent-mode[data-page=today] header{margin-bottom:.35rem;}
 .parent-mode[data-page=today] header h1{font-size:1.5rem;}
 .parent-mode[data-page=today] .task-segments{margin-bottom:.4rem;gap:.2rem;}
 .parent-mode[data-page=today] .task-inbox-toolbar{margin-bottom:0;}
 .parent-mode[data-page=today] .task-inbox-toolbar>p{flex:1 1 auto;max-width:none;}
 .parent-mode[data-page=today] .task-child-heading{padding:.35rem 0;}
 .parent-task-inbox .task-child-groups{gap:.6rem;}
 .task-inbox-toolbar #new-task{padding:.4rem .55rem;}
 .palette-choices{grid-template-columns:1fr;}
}
.parent-task-inbox .task-inbox-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:.4rem;align-items:center;}
.task-inbox-toolbar .task-filter-menu{width:auto;min-width:0;}
.task-inbox-toolbar .task-filter-menu[open]{grid-column:1/-1;grid-row:2;}
.task-inbox-toolbar .task-filter-menu>summary{white-space:normal;}
.task-inbox-toolbar #new-task{grid-column:3;grid-row:1;}
.task-inbox-toolbar>p{font-size:.8rem;}

/* Shared daisyUI shell: layout stays in normal flow; colors inherit the theme. */
.app-header.dui-navbar{width:100%;min-height:3.5rem;padding:.5rem 0;gap:.75rem;align-items:center;background:var(--surface);color:var(--ink);border-bottom:1px solid var(--line);margin-bottom:.75rem;}
.app-header .dui-navbar-start{flex:1;min-width:0;width:auto;}
.app-header .dui-navbar-end{flex:none;width:auto;gap:.5rem;max-width:55%;flex-wrap:wrap;}
.app-header #title{margin:0;font-size:clamp(1.25rem,4vw,1.8rem);line-height:1.3;overflow-wrap:anywhere;}
.app-header .eyebrow{margin:0;font-size:.8rem;}
.app-header .profile #profile-info{font-size:.875rem;}
.app-footer.dui-footer{position:static;display:flex;justify-content:center;align-items:center;gap:.5rem;padding:1rem 0;margin-top:1rem;border-top:1px solid var(--line);background:var(--surface);color:var(--muted);font-size:.8rem;text-align:center;}
.app-footer p{margin:0;}
.parent-tabs.dui-dock,.g-bottom-nav.dui-dock{background:var(--surface);color:var(--ink);border-color:var(--line);border-radius:0;}
.dui-dock .dui-btn{box-shadow:none;min-width:0;}
@media(min-width:761px){.parent-tabs.dui-dock{display:none;}.g-bottom-nav.dui-dock{position:static;height:auto;width:100%;}}
@media(max-width:760px){
 .app-header.dui-navbar{min-height:3.25rem;padding:.35rem 0;gap:.5rem;}
 .app-header .profile{gap:.35rem;}
 .app-footer.dui-footer{padding:.65rem 0;margin-top:.75rem;}
 .parent-tabs.dui-dock,.g-bottom-nav.dui-dock{padding:.25rem .35rem env(safe-area-inset-bottom);z-index:40;}
 .dui-dock .dui-btn{padding:.25rem .1rem;gap:.1rem;font-size:.75rem;margin:0;height:100%;}
 .dui-dock .dui-btn:after{bottom:0;}
}
.parent-tabs.dui-dock,.g-bottom-nav.dui-dock{box-sizing:border-box;gap:0;}
.parent-tabs.dui-dock>.dui-btn,.g-bottom-nav.dui-dock>.dui-btn{flex:1 1 0;width:auto;max-width:none;min-width:0;}
.parent-tabs.dui-dock>.active:before,.g-bottom-nav.dui-dock>.active:before{content:none;}
/* Chat reserves its available height for messages and the composer. */
.parent-mode[data-page=manage] .app-footer.dui-footer{display:none;}
.app-brand{display:flex;align-items:center;gap:.35rem;flex:none;font-weight:800;font-size:1rem;color:var(--ink);white-space:nowrap;}
.app-brand img{width:32px;height:32px;flex:none;}
@media(max-width:760px){
 .app-header.dui-navbar{flex-wrap:wrap;}
 .app-header .app-brand{order:0;}
 .app-header .dui-navbar-end{order:1;margin-inline-start:auto;max-width:65%;}
 .app-header .app-header-title{order:2;flex:1 0 100%;}
 .app-header #title{font-size:1.25rem;}
}
.member-avatar.dui-avatar{display:inline-flex;flex:none;width:44px;height:44px;background:transparent;border:0;}
.member-avatar .avatar-frame{display:flex;align-items:center;justify-content:center;width:100%;height:100%;border-radius:50%;overflow:hidden;background:var(--raised);color:var(--ink);font-size:1rem;font-weight:700;}
.member-avatar .avatar-frame img{width:100%;height:100%;object-fit:cover;border-radius:inherit;}
.profile-avatar.dui-avatar,.profile-avatar .avatar-frame{display:block;width:100%;height:100%;border-radius:inherit;overflow:hidden;}
.profile-avatar .profile-picture{display:block;width:100%;height:100%;object-fit:cover;}
.avatar-preview>.profile-avatar{width:80px;height:80px;flex:none;border-radius:50%;}
.chat-message.dui-chat{display:grid;width:100%;max-width:100%;border:0;padding:.35rem 0;gap:.2rem;}
.chat-message.dui-chat .dui-chat-bubble{max-width:min(88%,36rem);width:fit-content;white-space:pre-wrap;margin:0;border-radius:var(--ui-radius);text-align:start;}
.chat-message.dui-chat-end .dui-chat-bubble{background:var(--control-bg);color:var(--control-fg);}
.chat-message.dui-chat-start .dui-chat-bubble{background:var(--raised);color:var(--ink);}
.chat-message.dui-chat .dui-chat-header{margin:0;font-size:.8rem;color:var(--muted);}
.app-header .app-header-title{display:block;}
.app-header .app-header-title .eyebrow{display:block;}
.member-avatar .avatar-frame{border:1px solid var(--line);box-sizing:border-box;}
.chat-message.dui-chat-start .dui-chat-bubble{background:var(--surface);border:1px solid var(--line);}

/* The shared header occupies the former connection strip across the app. */
.shell>.app-header.dui-navbar{grid-column:1/-1;grid-row:1;margin:0;padding:.5rem clamp(1rem,3vw,2rem);width:100%;align-self:start;}
.shell{grid-template-rows:auto 1fr;}
.shell>.app-header .header-connection{flex-basis:100%;margin:0;color:var(--warning);font-size:.875rem;}
.shell>.app-header .header-connection[hidden]{display:none;}
.shell>.app-header .app-header-title .eyebrow{display:block;}
.shell>aside{grid-row:2;}
.shell>main{grid-row:2;}
@media(max-width:760px){
 .shell>.app-header.dui-navbar{display:grid;grid-template-columns:auto minmax(0,1fr);min-height:0;gap:0 .5rem;padding:.15rem .75rem .25rem;}
 .shell>.app-header .app-brand{grid-column:1;grid-row:1;gap:.35rem;}
 .shell>.app-header .app-brand img{width:28px;height:28px;}
 .shell>.app-header .profile{grid-column:2;grid-row:1;justify-self:end;max-width:100%;min-width:0;margin:0;flex-direction:row;flex-wrap:nowrap;gap:.4rem;}
 .shell>.app-header #profile-info{min-width:0;overflow-wrap:anywhere;line-height:1.2;}
 .shell>.app-header #logout{height:44px;min-height:44px;flex:none;padding:0 .65rem;}
 .shell>.app-header .app-header-title{grid-column:1/-1;grid-row:2;display:flex;width:100%;flex-direction:row;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:0 .5rem;}
 .shell>.app-header .app-header-title .eyebrow{font-size:.75rem;line-height:1.3;order:1;}
 .shell>.app-header .app-header-title #title{font-size:1.1rem;line-height:1.25;margin:0;}
 .shell>.app-header .header-connection{grid-column:1/-1;order:3;}
 .shell>main{padding-top:.4rem;}
}

/* Shared mobile density: reduce layout space, preserve touch targets and content. */
@media(max-width:760px){
 .shell{--space-section:.65rem;--space-row:.35rem;}
 .shell>main{padding-top:var(--space-row);}
 .parent-mode .task-segments{margin:0 0 var(--space-row);padding-bottom:.2rem;gap:.2rem;}
 .parent-task-inbox .task-inbox-toolbar{margin:0;gap:.25rem;}
 .parent-task-inbox .task-inbox-scope{margin:.15rem 0;line-height:1.35;}
 .parent-task-inbox .task-child-groups{gap:var(--space-section);}
 .task-child-heading{margin:0;padding:.25rem 0;gap:.5rem;}
 .task-table :is(th,td){padding-block:.25rem;}
 .task-table .task-table-time{margin-top:.1rem;}
 .task-table .task-table-detail>td{padding-block:0;}
 .task-table .dui-collapse>summary.dui-collapse-title{min-height:44px;}
 .planner-parent .daily-planner-top,.planner-parent .planner-date>h2{margin-bottom:var(--space-row);}
 .planner-parent .planner-days{margin-bottom:var(--space-row);}
 .planner-parent .planner-people{gap:var(--space-section);}
 .planner-parent .planner-person{margin-bottom:var(--space-row);}
 .settings-section>summary.dui-collapse-title{padding-block:.4rem;min-height:44px;}
 .settings-section>summary small{margin-top:.15rem;line-height:1.4;}
 .settings-section-content{padding-bottom:var(--space-section);}
 .game-view .studio-heading{padding:.25rem 0 .5rem;margin-bottom:var(--space-row);}
 .studio-layout{gap:var(--space-section);}
 .studio-view .studio-task{padding-block:.4rem;gap:.4rem;}
 .studio-view .studio-task h4{margin-bottom:.15rem;}
 .app-footer.dui-footer{padding-block:var(--space-section);margin-top:var(--space-row);}
}

/* Compact closed task rows: details share the status column instead of
   reserving an extra full-width row. Expanded details retain the full table width. */
@media(max-width:760px){
 .task-table tbody:not(:has(details[open])){display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:.4rem;}
 .task-table tbody:not(:has(details[open]))>tr:first-child{display:contents;}
 .task-table tbody:not(:has(details[open]))>tr:first-child>th{grid-column:1;grid-row:1;}
 .task-table tbody:not(:has(details[open]))>tr:first-child>td{grid-column:2;grid-row:1;padding-bottom:44px;}
 .task-table tbody:not(:has(details[open]))>.task-table-detail{display:block;grid-column:2;grid-row:1;align-self:end;}
 .task-table tbody:not(:has(details[open]))>.task-table-detail>td{display:block;width:100%;}
 .task-table .dui-collapse>summary.dui-collapse-title{font-size:.75rem;}
 .task-child-heading .member-avatar.dui-avatar{width:32px;height:32px;}
 .parent-task-inbox .task-child-groups{gap:.25rem;}
 .parent-mode .task-segments{gap:0;margin-bottom:0;padding:0;}
 .parent-mode .task-segments .dui-btn{padding:.2rem .35rem;min-height:44px;}
 .parent-task-inbox .task-inbox-toolbar .dui-btn{min-height:44px;padding-block:.2rem;}
 .task-inbox-toolbar .task-filter-menu>summary.dui-collapse-title{min-height:44px;padding-block:0;}
 .settings-group>h2{margin:.5rem 0 .15rem;}
 .settings-section>summary{padding-block:.35rem;min-height:44px;}
 .settings-section>summary strong{font-size:1rem;}
 .game-view .studio-heading{margin:0;padding:.15rem 0 .3rem;}
 .studio-view .studio-portrait{width:40px;height:40px;}
}
@media(max-width:760px){
 .task-table{display:block;}
 .task-table colgroup{display:none;}
 .task-table thead{display:block;}
 .task-table thead>tr{display:grid;grid-template-columns:1fr 1fr;}
 .task-table tbody{width:100%;}
 .task-table tbody:has(details[open]){display:table;width:100%;table-layout:fixed;}
}

/* Dense mobile list: title, status/actions and a dedicated 44px disclosure. */
@media(max-width:760px){
 .task-table thead,.task-inbox-scope.task-scope-default{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;}
 .task-table tbody:not(:has(details[open])){grid-template-columns:minmax(0,1fr) minmax(5rem,auto) 44px;gap:.25rem;align-items:center;min-height:52px;}
 .task-table tbody:not(:has(details[open]))>tr:first-child>td{padding:.2rem 0;}
 .task-table tbody:not(:has(details[open]))>.task-table-detail{grid-column:3;align-self:center;}
 .task-table tbody:not(:has(details[open])) .dui-collapse>summary.dui-collapse-title{width:44px;height:44px;min-height:44px;font-size:0;justify-content:center;padding:0;gap:0;}
 .task-table tbody:not(:has(details[open])) .dui-collapse>summary:after{content:'＋';font-size:1.2rem;margin:0;}
 .task-table-title{font-size:.9rem;line-height:1.3;}
 .task-table-time{font-size:.75rem;line-height:1.3;}
 .task-table-status{font-size:.75rem;line-height:1.3;}
 .task-table-actions{margin:0;gap:0;}
 .task-table-actions .dui-btn{min-height:44px;font-size:.8rem;padding:.15rem .35rem;}
 .task-child-heading{padding:.2rem 0;margin:0;min-height:36px;}
 .task-child-heading .member-avatar.dui-avatar{width:28px;height:28px;}
 .parent-task-inbox .task-child-groups{gap:.35rem;}
 .parent-mode .task-segments .dui-btn{border-radius:0;background:transparent;color:var(--ink);border:0;}
 .parent-mode .task-segments .dui-btn[aria-current=page]{box-shadow:inset 0 -2px var(--action);font-weight:800;}
}

@media(max-width:760px){
 .shell .dui-btn:not(.avatar-choice):not(.parent-tabs .dui-btn):not(.g-bottom-nav .dui-btn){min-height:44px;padding-block:.3rem;padding-inline:.65rem;line-height:1.35;}
 .shell .task-table-actions .dui-btn{padding:.15rem .35rem;}
 .shell .task-segments>.dui-tab{min-height:44px;padding:.25rem .4rem;border-radius:0;background:transparent;color:var(--ink);border:0;}
 .shell .task-segments>.dui-tab[aria-current=page]{box-shadow:inset 0 -2px var(--action);font-weight:800;}
 .shell :is(.parent-tabs,.g-bottom-nav) .dui-btn{padding:.4rem .15rem;}
}
@media(max-width:760px){
 .shell :is(.parent-tabs,.g-bottom-nav) .dui-btn{flex-wrap:nowrap;flex-direction:column;justify-content:center;gap:.15rem;line-height:1.2;}
 .shell :is(.parent-tabs,.g-bottom-nav) .dui-btn .nav-icon{flex-shrink:0;}
}

/* Child mobile density is shared across saved profiles, never keyed to a child. */
@media(max-width:760px){
 .child-mode .shell>main{padding-top:.25rem;}
 .child-mode .game-view .studio-heading{padding:.2rem 0 .35rem;margin:0;gap:.5rem;}
 .child-mode .studio-heading>div>p{display:none;} /* Date already appears in the shared header. */
 .child-mode .game-view .studio-heading h2{font-size:1.2rem;line-height:1.25;margin:0;}
 .child-mode .studio-view .studio-portrait{width:32px;height:32px;}
 .child-mode .studio-section{margin:0;padding:.3rem 0;gap:.4rem;}
 .child-mode .studio-section h3{font-size:.9rem;margin:0;}
 .child-mode .studio-view .studio-task,
 .child-mode .studio-view .studio-task:has([data-undo]){grid-template-columns:minmax(0,1fr) auto;gap:.4rem;min-height:56px;padding:.3rem 0;align-items:center;}
 .child-mode .studio-view .studio-task>div{min-width:0;}
 .child-mode .studio-view .studio-task :is(button,.studio-approved){grid-column:2;grid-row:1;justify-self:end;max-width:6rem;margin:0;}
 .child-mode .studio-view .studio-task h4{font-size:.9rem;line-height:1.35;margin:0 0 .1rem;}
 .child-mode .studio-view .studio-task p,.child-mode .studio-pending{font-size:.8rem;line-height:1.35;}
 .child-mode .studio-pending{margin-top:.15rem;}
 .child-mode .studio-task .dui-btn,.child-mode .prize-row .dui-btn{min-height:44px;padding:.25rem .5rem;font-size:.8rem;}
 .child-mode .g-fair-note{margin:.4rem 0;font-size:.8rem;line-height:1.4;}
 .child-mode .studio-week-link{margin:0;padding:.25rem .5rem;}
 .child-mode .game-return{margin:0 0 .25rem;padding:.25rem .5rem;min-height:44px;}
 .child-mode .prize-balance{padding:.25rem 0 .4rem;gap:.5rem;flex-wrap:nowrap;}
 .child-mode .prize-balance strong{font-size:1.5rem;line-height:1.1;}
 .child-mode .prize-balance small{font-size:.75rem;margin-top:.1rem;}
 .child-mode .prize-next{margin:.4rem 0;font-size:.8rem;line-height:1.4;}
 .child-mode .child-prizes section>h2{font-size:.9rem;margin:.5rem 0 .15rem;}
 .child-mode .prize-row{grid-template-columns:24px minmax(0,1fr) auto;gap:.4rem;min-height:56px;padding:.35rem 0;border-radius:0;}
 .child-mode .prize-row>div{min-width:0;}
 .child-mode .prize-row h3{font-size:.9rem;line-height:1.3;margin:0 0 .1rem;}
 .child-mode .prize-row p{font-size:.8rem;line-height:1.35;}
 .child-mode .prize-row>button{grid-column:3;grid-row:1;justify-self:end;margin:0;}
 .child-mode .prize-icon{font-size:1.2rem;}
 .child-mode .prize-note{margin:.5rem 0 .25rem;font-size:.8rem;line-height:1.4;}
 .child-mode .prize-history>summary.dui-collapse-title{padding:.25rem 0;min-height:44px;}
}

@media(max-width:760px){
 .shell .dui-dock-md .dui-dock-label{font-size:.6875rem;line-height:1.2;}
 .shell .dui-dock-md .dui-btn{min-height:44px;padding:.15rem .1rem;}
}
.chat-message.dui-chat-end{justify-items:end}
.chat-message.dui-chat-start{justify-items:start}
@media(max-width:760px){
 .shell .dui-dock{position:fixed;inset:auto 0 0;display:flex;width:100%;height:calc(3.75rem + env(safe-area-inset-bottom));}
 body[data-page=manage]:has(.chat-composer textarea:focus) .shell .dui-dock{display:none;}
}
.preview-body{margin:0;min-height:0;height:auto}
.preview-body main{padding:12px 4px 16px;margin:0;max-width:none}
.preview-body .g-bottom-nav{position:static!important;margin:16px 0 0;inset:auto!important}
.preview-body #preview-note{padding:8px;font-size:.8rem;background:var(--surface-alt);color:var(--muted);text-align:center;line-height:1.5}
