/* Shared controls and restrained administrative forms. Theme colors remain user-selected. */
:root {
  --control-chevron-inset:14px;
  --control-chevron-size:16px;
  --control-text-inset:12px;
  --control-chevron-space:44px;
  --control-chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='m4 6 4 4 4-4' fill='none' stroke='%23657087' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  --form-dialog-width:760px;
  --form-dialog-inset:24px;
  --form-dialog-border:2px;
  --form-dialog-pad:24px;
  --form-dialog-radius:16px;
  --form-field-gap:16px;
  --form-label-gap:6px;
  --form-section-gap:22px;
  --form-title-size:20px;
  --form-subtitle-size:13px;
  --form-section-size:14px;
  --form-control-radius:8px;
  --form-action-width:112px;
  --admin-search-width:180px;
  --polish-shadow:0 20px 64px #11182726;
}
:root:is([data-theme="passion"],[data-theme="sensual"],[data-theme="neon"]) {
  --control-chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='m4 6 4 4 4-4' fill='none' stroke='%23bcc8da' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
:root select:not([multiple]):not([size]),:root select:not([multiple])[size="1"] {
  appearance:none;
  -webkit-appearance:none;
  padding-inline:var(--control-text-inset) var(--control-chevron-space);
  background-image:var(--control-chevron);
  background-repeat:no-repeat;
  background-position:right var(--control-chevron-inset) center;
  background-size:var(--control-chevron-size);
  min-width:0;
  max-width:100%;
  text-overflow:ellipsis;
}
:root[dir="rtl"] select:not([multiple]):not([size]),:root[dir="rtl"] select:not([multiple])[size="1"] {
  background-position:left var(--control-chevron-inset) center;
}
/* Keep native listboxes and Windows high-contrast controls intact. */
@media(forced-colors:active) {
  :root select:not([multiple]):not([size]),:root select:not([multiple])[size="1"] { appearance:auto; background-image:none; }
}
.settings-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.settings-grid>* { min-width:0; }
input,select,textarea { max-width:100%; }
.profile>.avatar { flex:none; }
.profile>div { min-width:0; flex:1; }
.profile .member-name { width:100%; }
.profile .member-nickname { min-width:0; }
.admin-content .panel-heading { align-items:flex-start; flex-wrap:wrap; }
.admin-content .panel-heading h2 { font-weight:650; }
.admin-content .panel-heading>.review-actions { margin:0; }
.admin-content .panel-heading>.review-actions .button { flex:none; }
.admin-content .table-scroll { border-radius:var(--form-control-radius); }
.admin-content table th { font-size:12px; font-weight:600; }
.admin-content tbody tr:hover { background:color-mix(in srgb,var(--canvas) 65%,transparent); }
.admin-content .button { font-weight:550; box-shadow:none; }
.admin-content .inline-form { flex-wrap:wrap; align-items:center; }
#location-search input { flex:1 1 var(--admin-search-width); }
#location-search select { flex:0 1 var(--admin-search-width); width:var(--admin-search-width); }
.location-admin-table td { white-space:normal; vertical-align:top; }
.location-admin-table td:first-child { font-weight:550; }
.location-admin-table td p { font-weight:400; color:var(--muted); }
.location-admin-table .product-name { white-space:nowrap; overflow-wrap:normal; }
.member-context-nav { gap:var(--form-label-gap); padding:var(--form-label-gap); box-shadow:none; }
.member-context-nav .button.selected { color:var(--teal); background:var(--mint); border-color:transparent; }
.admin-content>.panel { box-shadow:none; }

/* The header and action bar never scroll out of a location editor. */
:root dialog:has(#location-editor) {
  width:min(var(--form-dialog-width),calc(100% - var(--form-dialog-inset) * 2));
  max-width:calc(100% - var(--form-dialog-inset) * 2);
  max-height:calc(var(--visual-height) - var(--form-dialog-inset) * 2);
  padding:0;
  overflow:hidden;
  border-radius:var(--form-dialog-radius);
  box-shadow:var(--polish-shadow);
  background:var(--surface);
  color:var(--ink);
}
:root dialog #location-editor {
  display:flex;
  flex-direction:column;
  padding:0;
  margin:0;
  max-height:calc(var(--visual-height) - var(--form-dialog-inset) * 2 - var(--form-dialog-border));
  min-width:0;
}
.location-form-header { flex:none; display:flex; align-items:flex-start; justify-content:space-between; gap:var(--form-field-gap); padding:var(--form-dialog-pad); border-bottom:1px solid var(--line); }
.location-form-header h2 { font-size:var(--form-title-size); font-weight:650; letter-spacing:-.4px; }
.location-form-header p { margin-top:var(--form-label-gap); font-size:var(--form-subtitle-size); color:var(--muted); }
.location-close { width:var(--touch); height:var(--touch); min-width:var(--touch); padding:var(--form-label-gap); flex:none; border-radius:var(--form-control-radius); }
.location-close svg { width:var(--control-icon-size); height:var(--control-icon-size); }
.location-form-body { min-height:0; overflow-y:auto; overflow-x:hidden; overscroll-behavior:contain; scrollbar-gutter:stable; padding:0 var(--form-dialog-pad) var(--form-section-gap); }
.location-form-section { padding-top:var(--form-section-gap); }
.location-form-section+.location-form-section { margin-top:var(--form-section-gap); border-top:1px solid var(--line); }
.location-form-section h3 { font-size:var(--form-section-size); font-weight:650; margin-bottom:var(--form-field-gap); }
#location-editor label:not(.choice) { display:grid; gap:var(--form-label-gap); margin:var(--form-field-gap) 0 0; font-size:var(--form-subtitle-size); font-weight:500; color:var(--ink); min-width:0; }
#location-editor .location-fields label { margin:0; }
.location-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--form-field-gap); }
.location-region-fields { grid-template-columns:repeat(3,minmax(0,1fr)); }
#location-editor input,#location-editor select,#location-editor textarea { min-width:0; margin:0; border-radius:var(--form-control-radius); }
#location-editor textarea { resize:vertical; }
.location-field-hint { color:var(--muted); font-size:var(--form-subtitle-size); line-height:1.65; margin-top:var(--form-label-gap); }
.location-coordinates { margin-top:var(--form-label-gap); }
.location-coordinates summary { cursor:pointer; color:var(--muted); font-size:var(--form-subtitle-size); min-height:var(--touch); padding-block:var(--control-text-inset); }
.location-coordinates .location-fields { margin-top:var(--form-label-gap); }
#location-editor .location-visibility { margin:var(--form-field-gap) 0 0; display:flex; align-items:center; font-weight:500; }
.location-form-footer { flex:none; border-top:1px solid var(--line); margin:0; padding:var(--form-field-gap) var(--form-dialog-pad); text-align:left; }
.location-form-actions { display:flex; gap:var(--form-label-gap); justify-content:flex-end; }
.location-form-actions .button { min-width:var(--form-action-width); }
#location-save-error:not(:empty) { margin:0 0 var(--form-field-gap); max-height:calc(var(--touch) * 2); overflow:auto; }
@media(max-width:600px) {
  :root { --form-dialog-inset:12px; --form-dialog-pad:16px; --form-field-gap:12px; --form-section-gap:18px; }
  .location-region-fields { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .location-region-fields>label:first-child { grid-column:1/-1; }
  .location-fields:not(.location-region-fields) { grid-template-columns:minmax(0,1fr); }
  .location-form-actions .button { flex:1; min-width:0; }
}
:root[data-layout="mobile"] dialog:has(#location-editor) {
  position:fixed;
  inset:auto 0 auto;
  top:calc(var(--visual-top) + var(--form-dialog-inset));
  transform:none;
  margin-inline:auto;
  border:1px solid var(--line);
}

/* Long names and translated labels should wrap without widening the viewport. */
:root { --polish-label-size:12px; --polish-record-gap:12px; --polish-record-label-gap:4px; }
.button { white-space:normal; overflow-wrap:anywhere; text-align:center; }
.panel p,.callout,.form-error,.profile-form-error { overflow-wrap:anywhere; }
.admin-content summary,.composer-usage summary,.composer-policy summary,.point-receipt-details summary { min-height:var(--touch); padding-block:var(--control-text-inset); }
#ops-notice label { display:grid; gap:var(--form-label-gap); margin-top:var(--form-field-gap); min-width:0; }
#ops-notice label.choice { display:flex; }
#ops-notice details { padding-block:var(--form-label-gap); border-bottom:1px solid var(--line); }
#ops-notice input[type="datetime-local"] { width:100%; min-width:0; }
.admin-content .ops-dates { grid-template-columns:repeat(2,minmax(0,1fr)); }
@media(max-width:767px) {
  .review-preview-copy h3 button,.review-board button { min-height:var(--touch); }
  .admin-content .ops-dates { grid-template-columns:minmax(0,1fr); }
  .admin-content .mobile-records,.admin-content .mobile-records tbody { display:block; width:100%; min-width:0; }
  .admin-content .mobile-records thead { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip-path:inset(50%); }
  .admin-content .mobile-records tbody tr { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--polish-record-gap); padding:var(--form-field-gap); margin-bottom:var(--polish-record-gap); border:1px solid var(--line); border-radius:var(--form-control-radius); }
  .admin-content .mobile-records tbody :is(td,th) { display:block; min-width:0; padding:0; border:0; white-space:normal; overflow-wrap:anywhere; }
  .admin-content .mobile-records tbody :is(td,th):first-child,.admin-content .mobile-records tbody :is(td,th):last-child { grid-column:1/-1; }
  .admin-content .mobile-records tbody :is(td,th):before { content:attr(data-label); display:block; color:var(--muted); font-size:var(--polish-label-size); font-weight:400; margin-bottom:var(--polish-record-label-gap); }
  .admin-content .mobile-records .button { max-width:100%; }
  .admin-content .mobile-records td:last-child .button { width:100%; }
  .admin-content .mobile-records .micro { overflow-wrap:anywhere; }
  /* Put member content in view; keep exact earned amounts and receipt details. */
  #app:is([data-view="profile"],[data-view="settings"],[data-view="memory"],[data-view="knowledge"],[data-view="reviews"],[data-view="ranking"],[data-view="map"]) .point-celebration { gap:var(--form-label-gap); }
  #app:is([data-view="profile"],[data-view="settings"],[data-view="memory"],[data-view="knowledge"],[data-view="reviews"],[data-view="ranking"],[data-view="map"]) .point-receipt-message,
  #app:is([data-view="profile"],[data-view="settings"],[data-view="memory"],[data-view="knowledge"],[data-view="reviews"],[data-view="ranking"],[data-view="map"]) .point-next p { display:none; }
  #app:is([data-view="profile"],[data-view="settings"],[data-view="memory"],[data-view="knowledge"],[data-view="reviews"],[data-view="ranking"],[data-view="map"]) .point-next { display:flex; flex-wrap:wrap; align-items:center; gap:var(--form-label-gap) var(--form-field-gap); }
  #app:is([data-view="profile"],[data-view="settings"],[data-view="memory"],[data-view="knowledge"],[data-view="reviews"],[data-view="ranking"],[data-view="map"]) .point-next-top { flex:1 1 100%; }
  #app:not([data-view="chat"]) .point-next-link,
  #app:not([data-view="chat"]) .point-other-actions a {
    display:inline-flex;
    align-items:center;
    min-height:var(--touch);
    max-width:100%;
    gap:var(--polish-record-label-gap);
    overflow-wrap:anywhere;
  }
  #app:not([data-view="chat"]) .point-other-actions {
    margin-top:0;
    align-items:center;
  }
  #app:not([data-view="chat"]) .point-other-actions a {
    font-size:var(--polish-label-size);
    flex-wrap:wrap;
  }
}
:root:lang(ko) :is(p,h1,h2,h3,.button,label,summary) { word-break:keep-all; overflow-wrap:anywhere; }
p { text-wrap:pretty; }
:root[data-layout="mobile"] .personal-save-bar>p { flex:1; min-width:0; }

/* Keep directory controls together and give the records the first screen. */
:root {
  --directory-gap:10px;
  --directory-space:18px;
  --overview-columns:4;
  --overview-summary-columns:3;
  --highlight-cover:104px;
  --highlight-cover-mobile:76px;
  --highlight-lines:2;
}
#member-search-form {
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr)) auto;
  gap:var(--directory-gap); margin-bottom:var(--directory-space);
}
#member-search-form>input { grid-column:1/-1; }
#member-search-form>select,
#member-search-form>input,
#ops-search>input,
#ops-search>select { min-width:0; width:100%; margin:0; }
#ops-search {
  display:grid; grid-template-columns:minmax(0,2fr) minmax(0,1fr) auto;
  gap:var(--directory-gap); margin-bottom:var(--directory-space);
}
#ops-search:not(:has([name="state"])) { grid-template-columns:minmax(0,1fr) auto; }
#member-search-form>.button,#ops-search>.button { margin:0; align-self:stretch; }
.ops-metrics { grid-template-columns:repeat(var(--overview-columns),minmax(0,1fr)); }
.ops-metrics:has(>article:nth-child(3):last-child) { grid-template-columns:repeat(var(--overview-summary-columns),minmax(0,1fr)); }
.ops-metrics article { min-width:0; }
.ops-metrics strong,.ledger-table .ledger-delta,.ledger-table .ledger-balance { font-variant-numeric:tabular-nums; }
#app[data-view="dashboard"] .metric:first-child { background:var(--mint); }
.dashboard-review-list { display:grid; }
.dashboard-review-list .review-preview-card {
  display:grid; grid-template-columns:var(--highlight-cover) minmax(0,1fr);
  align-items:start; gap:var(--density-gap); padding-block:var(--density-item-pad);
  border:0; border-radius:0; background:transparent;
}
.dashboard-review-list .review-preview-card+.review-preview-card { border-top:1px solid var(--line); }
.dashboard-review-list .review-cover { width:100%; height:var(--highlight-cover); aspect-ratio:1; border-radius:var(--radius); }
.dashboard-review-list .review-preview-copy { min-width:0; padding:0; }
.dashboard-review-list .review-preview-copy h3 { margin-block:var(--density-small-gap); }
.dashboard-review-list .review-author { margin:0; }
.dashboard-review-list .review-excerpt {
  display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:var(--highlight-lines);
  overflow:hidden; margin-block:var(--density-small-gap);
}
.dashboard-review-list .review-actions { margin-top:var(--density-small-gap); }
.dashboard-review-list .review-actions>.button { flex-wrap:wrap; text-align:left; }
.ledger-more { margin-top:var(--density-gap); border-top:1px solid var(--line); padding-top:var(--density-small-gap); }
.ledger-more>summary { cursor:pointer; min-height:var(--touch); display:flex; align-items:center; gap:var(--density-small-gap); color:var(--teal); font-weight:650; }
.ledger-more>summary::before { content:'+'; }
.ledger-more[open]>summary::before { content:'−'; }
@media(max-width:600px) {
  #member-search-form { grid-template-columns:repeat(2,minmax(0,1fr)); }
  #ops-search { grid-template-columns:minmax(0,1fr) auto; }
  #ops-search>input[name="query"] { grid-column:1/-1; }
  #ops-search:not(:has([name="state"]))>input[name="query"] { grid-column:auto; }
  .ops-metrics,.ops-metrics:has(>article:nth-child(3):last-child) { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ops-metrics:has(>article:nth-child(3):last-child)>article:last-child { grid-column:1/-1; }
  .dashboard-review-list { --highlight-cover:var(--highlight-cover-mobile); }
  .dashboard-review-list .review-meta { gap:var(--density-small-gap); }
}

/* Final copy pass: compact task controls, with room for longer translations. */
:root {
  --polish-content-gap:16px;
  --polish-caption-gap:8px;
  --polish-reading-width:72ch;
  --polish-field-width:180px;
  --polish-help-radius:10px;
}
.dashboard-welcome { display:flex; align-items:center; justify-content:space-between; gap:var(--polish-content-gap); margin-bottom:var(--gap); }
.dashboard-welcome p { margin-top:var(--polish-caption-gap); max-width:var(--polish-reading-width); }
.dashboard-welcome>.button { flex:none; }
.attendance-panel>.button { margin-top:var(--polish-caption-gap); }
.help-disclosure { margin-block:var(--polish-content-gap); padding-inline:var(--polish-content-gap); border:1px solid var(--line); border-radius:var(--polish-help-radius); }
.help-disclosure summary { display:list-item; cursor:pointer; min-height:var(--touch); padding-block:var(--polish-caption-gap); align-content:center; font-weight:600; }
.help-disclosure p { max-width:var(--polish-reading-width); padding-bottom:var(--polish-content-gap); line-height:1.65; }
.knowledge-contribute>.panel { padding:var(--form-dialog-pad); }
.knowledge-contribute .panel-heading { gap:var(--polish-content-gap); margin-bottom:var(--polish-caption-gap); }
.knowledge-contribute .panel-heading .review-actions { margin:0; }
.knowledge-program { margin-block:var(--polish-content-gap); padding:var(--polish-content-gap); }
.knowledge-card { padding:var(--polish-content-gap); }
.knowledge-card-heading { align-items:center; }
.knowledge-card-heading .button { max-width:45%; }
.knowledge-summary p { max-width:var(--polish-reading-width); }
#knowledge-directory-form { display:flex; flex-direction:row; align-items:stretch; flex-wrap:nowrap; gap:var(--polish-caption-gap); }
#knowledge-directory-form input { flex:1 1 var(--polish-field-width); min-width:0; width:auto; }
#knowledge-directory-form .button { flex:0 0 auto; width:auto; max-width:45%; }
.button,.nav-item,.personal-toggle strong { word-break:normal; line-break:auto; }
:root:lang(th) :is(.button,.badge,.nav-item,.small,.micro) { line-height:1.65; }
:root:lang(ko) :is(h1,h2,h3,.button,.nav-item) { word-break:keep-all; overflow-wrap:anywhere; }
@media(max-width:600px) {
  .dashboard-welcome { align-items:flex-start; flex-direction:column; }
  .dashboard-welcome>.button { width:100%; }
  .knowledge-contribute .panel-heading .review-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); width:100%; }
  .knowledge-contribute .panel-heading .review-actions .button { min-width:0; width:100%; }
  .knowledge-card-heading>.button { margin-left:0; width:100%; max-width:none; }
}

/* Flex basis is a width only in rows; use a two-row search grid on phones. */
@media(max-width:767px) {
  #location-search { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:stretch; }
  #location-search input { grid-column:1 / -1; width:100%; height:auto; }
  #location-search select { width:100%; min-width:0; height:auto; }
}
.chat-image-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:10px}
.chat-image-actions .button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px}
.chat-image-actions .ui-symbol{width:17px;height:17px;flex:none}
@media(max-width:600px){.chat-image-actions .button{flex:1 1 auto;padding-inline:10px;font-size:.83rem}.chat-generated-image{min-width:0;max-width:100%}}

/* Keep cost and completion guidance on its own line below image actions. */
.chat-image-actions > small { flex-basis: 100%; }

/* Member browsing: compact controls, explicit hierarchy, and reachable history. */
:root {--browse-gap:12px;--browse-thumbnail:84px;--browse-line-height:1.5;--source-popover-width:340px;--source-icon-size:34px;--export-width:720px;--export-height:42vh;}
.browse-filters{display:grid;grid-template-columns:minmax(120px,1fr) minmax(110px,180px) auto auto;gap:var(--browse-gap);align-items:center;margin-block:var(--browse-gap)}
.browse-filters input,.browse-filters select{min-width:0;width:100%}
.browse-result-bar,.browse-pagination,.browse-segments{display:flex;align-items:center;flex-wrap:wrap;gap:var(--browse-gap);margin-block:var(--browse-gap)}
.browse-result-bar{justify-content:space-between}.browse-pagination{justify-content:center}.browse-pagination span{font-size:.85rem;text-align:center}.browse-segments .selected{background:var(--ink);color:var(--surface)}
.review-highlight{display:grid;grid-template-columns:var(--browse-thumbnail) minmax(0,1fr);gap:var(--browse-gap);padding-block:var(--browse-gap);border-bottom:1px solid var(--line)}
.review-highlight:last-child{border-bottom:0}.review-highlight .review-cover{height:var(--browse-thumbnail);min-height:0;border-radius:10px;overflow:hidden;margin:0}.review-highlight .review-cover img{width:100%;height:100%;object-fit:cover}
.review-highlight h3{margin:4px 0;font-size:1rem}.review-highlight h3 button{padding:0;text-align:start;font-weight:700;line-height:1.4;min-height:0}.review-highlight p{margin:4px 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:.85rem;line-height:var(--browse-line-height)}
.review-highlight-footer{display:flex;align-items:center;gap:8px;font-size:.75rem;color:var(--muted)}.review-highlight .member-crown{width:20px;height:20px}.review-highlight .review-meta{font-size:.75rem}.task-detail{margin-block:var(--browse-gap)}.task-detail summary{cursor:pointer;font-size:.85rem;color:var(--muted)}
.chat-thread-tools{display:flex;flex-shrink:0}.chat-thread-tools button{gap:8px}.chat-source-icons{display:flex;gap:4px;margin-block:4px 0;min-height:0}.chat-source-icon.button{width:var(--source-icon-size);min-height:var(--source-icon-size);padding:6px;display:inline-flex;justify-content:center;border:1px solid var(--line);border-radius:50%}.chat-source-icon .ui-symbol{width:17px;height:17px}
.chat-source-popover{position:fixed;inset:auto;margin:0;box-sizing:border-box;width:min(var(--source-popover-width),calc(100vw - 32px));max-height:40vh;overflow:auto;padding:16px;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:12px;box-shadow:0 8px 30px #0002;font-size:.85rem;line-height:1.5;z-index:1000;overflow-wrap:anywhere}.chat-source-popover[hidden]{display:none}.chat-source-popover ul{padding-left:20px;margin:8px 0 0}.chat-source-popover li+li{margin-top:8px}.chat-source-popover a{text-decoration:underline}.chat-source-popover button{white-space:normal;text-align:start}
.chat-export-dialog{width:min(var(--export-width),calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto;padding:24px;border:1px solid var(--line);border-radius:16px;background:var(--surface);color:var(--ink);box-sizing:border-box}.chat-export-dialog::backdrop{background:#0b142777}.chat-export-dialog .panel-heading h2{font-size:1.2rem}.chat-export-dialog label{display:block;font-weight:600;margin-block:12px 6px}.chat-export-dialog textarea{width:100%;height:var(--export-height);min-height:120px;resize:vertical;line-height:1.6}.chat-export-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.chat-export-actions button{display:inline-flex;gap:8px;align-items:center}.chat-export-dialog p{font-size:.85rem;line-height:1.5}
@media(max-width:600px){.browse-filters{grid-template-columns:minmax(0,1fr) auto auto}.browse-filters input{grid-column:1/-1}.browse-result-bar{align-items:flex-start}.browse-result-bar .review-view-switch{margin:0}.review-highlight{--browse-thumbnail:68px}.chat-export-dialog{padding:16px}.chat-export-actions .button{flex:1 1 40%;justify-content:center}.chat-thread-heading h2{font-size:1rem}.chat-thread-tools .button{padding:6px}.chat-source-icon.button{min-height:40px;width:40px}.browse-pagination .button{padding-inline:12px}}

.review-highlight .crown-badge img{width:22px;height:22px}.review-highlight .member-name{font-size:.8rem}.review-highlight-footer{display:flex;flex-wrap:wrap;align-items:center;gap:8px}

.review-highlight h3 button{background:none;border:0;color:inherit;cursor:pointer}.review-highlight h3 button:hover{text-decoration:underline}.chat-export-dialog .panel-heading>button{min-width:var(--touch);flex-shrink:0}.chat-export-dialog{padding-bottom:max(16px,env(safe-area-inset-bottom))}

/* Priority audit: balance hierarchy, album separation, and touch/keyboard feedback. */
:root { --wallet-gap:16px; --wallet-number:clamp(1.75rem,3vw,2.5rem); --wallet-mobile-number:1.75rem; --wallet-reading-width:42ch; --source-touch-size:44px; }
.wallet-overview { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); gap:var(--wallet-gap); margin-bottom:var(--wallet-gap); }
.wallet-overview>.panel { min-width:0; margin:0; display:flex; flex-direction:column; align-items:flex-start; gap:var(--density-small-gap); }
.wallet-primary { background:var(--surface); border-top:3px solid var(--teal); }
.wallet-overview p { margin:0; max-width:var(--wallet-reading-width); }
.wallet-total { font-size:var(--wallet-number); line-height:1.2; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.wallet-primary .wallet-total { color:var(--teal); }.wallet-progress .wallet-total { font-size:var(--density-secondary-value); }
.wallet-overview .button { display:inline-flex; gap:var(--density-small-gap); align-items:center; margin-top:auto; }
.wallet-detail>summary { font-weight:700; cursor:pointer; min-height:var(--touch); display:flex; align-items:center; justify-content:space-between; gap:var(--density-small-gap); }
.wallet-detail>summary::after { content:'+'; font-size:1.2em; }.wallet-detail[open]>summary::after { content:'−'; }
.wallet-detail dl { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:var(--density-small-gap); margin-block:var(--density-small-gap); }
.wallet-detail dd { margin:0; text-align:end; font-variant-numeric:tabular-nums; }
.section-unavailable { padding-block:var(--density-small-gap); }.section-unavailable .button { margin-top:var(--density-small-gap); }
#app[data-view="reviews"] .review-list.review-view-album { gap:var(--density-gap); background:transparent; border:0; }
#app[data-view="reviews"] .review-list>.empty { grid-column:1/-1; }
#app[data-view="reviews"] .review-preview-card:focus-within { outline:2px solid var(--teal); outline-offset:2px; }
.chat-source-icon.button { width:var(--source-touch-size); min-height:var(--source-touch-size); }
.page-header h1:focus,.chat-toolbar-title:focus { outline:none; }
.browse-pagination:focus-visible,.ranking-pagination:focus-visible { outline:2px solid var(--teal); outline-offset:4px; border-radius:var(--radius); }
@media(max-width:600px) { .wallet-overview { grid-template-columns:minmax(0,1fr); }.wallet-total { font-size:var(--wallet-mobile-number); }.wallet-overview .button { width:100%; justify-content:center; }.chat-source-icon.button { width:var(--source-touch-size); min-height:var(--source-touch-size); } }

/* On phones, keep today's activities ahead of the long review/history lists. */
@media(max-width:767px) {
 #app[data-view="dashboard"] .dashboard-grid { display:flex; flex-direction:column; align-items:stretch; }
 #app[data-view="dashboard"] .dashboard-grid>.column, :root[data-layout="mobile"] #app[data-view="dashboard"] .dashboard-grid>.column:last-child { display:contents; }
 #app[data-view="dashboard"] .dashboard-grid .panel { width:100%; margin:0; }
 #app[data-view="dashboard"] .dashboard-grid .attendance-panel { order:1; }
 #app[data-view="dashboard"] .dashboard-challenge { order:2; }
 #app[data-view="dashboard"] .dashboard-grid .helly { order:3; }
 #app[data-view="dashboard"] .dashboard-recent { order:4; }
 #app[data-view="dashboard"] .dashboard-history { order:5; }
 #app[data-view="dashboard"] .dashboard-purchase { order:6; }
 #app[data-view="dashboard"] .dashboard-grid .wallet-detail { order:7; }
 .wallet-overview .wallet-progress { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; }
 .wallet-progress>.small { grid-column:1/-1; }
 .wallet-overview .wallet-progress .button { grid-column:1/-1; justify-self:start; width:auto; padding-inline:0; }
}

/* Keep the full primary navigation visible before giving space to promotion. */
:root { --rail-vertical-pad:20px; --rail-brand-gap:12px; --rail-link-gap:2px; --rail-short-banner:140px; }
.sidebar { padding-block:var(--rail-vertical-pad); }
.sidebar .brand { padding-bottom:var(--rail-brand-gap); }
.sidebar .nav-item { margin-block:var(--rail-link-gap); }
.sidebar>nav { scrollbar-width:thin; scrollbar-gutter:stable; }
@media(max-height:800px) {
 .sidebar .shop-launch-banner { aspect-ratio:auto; height:var(--rail-short-banner); }
 .sidebar .shop-banner-kicker { display:none; }
 .sidebar .shop-banner-heading { top:var(--rail-brand-gap); }
}

/* Referral contacts and private notes: compact rows, readable message bodies. */
.note-list,.note-messages{list-style:none;margin:0;padding:0}.note-contact,.note-inbox-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 0;border-bottom:1px solid var(--line)}
.note-person{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}.note-person>small{flex-basis:100%;overflow-wrap:anywhere}.note-person strong{overflow-wrap:anywhere}
.note-page-tools,.note-thread-tools{display:flex;justify-content:space-between;gap:12px;margin-bottom:16px;flex-wrap:wrap}.note-inbox-row{text-decoration:none;color:inherit;padding:16px;border-radius:12px}.note-inbox-row:hover{background:var(--mint)}.note-inbox-row>div:first-child{display:grid;gap:6px;min-width:0;overflow-wrap:anywhere}.note-inbox-meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end;font-size:12px}.note-inbox-row.unread{border-left:3px solid var(--teal)}
.note-avatar{position:relative;text-decoration:none;flex-shrink:0}.note-count{display:inline-grid;place-items:center;min-width:21px;height:21px;padding:0 5px;border-radius:20px;background:#b92843;color:#fff;font-size:11px;font-weight:800;line-height:1}.note-count[hidden]{display:none}.note-avatar .note-count{position:absolute;right:-6px;top:-9px;border:2px solid var(--surface)}.note-top-inbox{position:relative;order:3;margin-left:0;min-width:44px;min-height:44px}.note-top-inbox .note-count{position:absolute;top:-2px;right:-2px}.note-inbox-link{gap:8px}.dashboard-referrals{margin-bottom:16px}.dashboard-referrals .panel-heading{margin-bottom:4px}
.note-thread{max-width:960px;margin-inline:auto}.note-thread h2{overflow-wrap:anywhere}.note-thread-tools{margin-top:20px}.note-messages{display:grid;gap:14px;margin:16px 0 24px}.note-message{padding:16px;border:1px solid var(--line);border-radius:16px;margin-right:8%;background:var(--surface)}.note-message.own{margin-right:0;margin-left:8%;background:var(--mint)}.note-message-meta{display:flex;gap:12px;justify-content:space-between;flex-wrap:wrap;font-size:12px}.note-message-meta time{opacity:.7}.note-body{white-space:pre-wrap;overflow-wrap:anywhere;margin:10px 0;line-height:1.65}.note-photo{display:block;max-width:360px}.note-photo img{width:100%;height:auto;max-height:360px;object-fit:contain;border-radius:12px}.note-compose{display:grid;gap:12px;padding-top:16px;border-top:1px solid var(--line)}.note-compose textarea{resize:vertical;min-height:110px}.note-compose-footer{display:flex;align-items:end;justify-content:space-between;gap:16px}.note-file{min-width:0;max-width:70%;display:grid;gap:6px}.note-file svg{width:18px;height:18px}.note-file input{max-width:100%;font-size:12px}.note-compose button{min-height:44px}.note-page-tools a,.note-thread-tools button{min-height:44px}
@media(max-width:600px){.note-contact{align-items:flex-start}.note-inbox-row{align-items:flex-start;flex-direction:column}.note-inbox-meta{justify-content:flex-start}.note-message{margin-right:3%;padding:12px}.note-message.own{margin-left:3%}.note-compose-footer{align-items:stretch;flex-direction:column}.note-file{max-width:100%}.note-thread{padding:16px}.note-thread-tools .browse-pagination{width:100%}.dashboard-referrals .review-actions>*{flex:1;white-space:normal}}

.note-body a{text-decoration:underline;text-underline-offset:3px;color:var(--teal-dark)}

[data-note-action="remove-photo"][hidden]{display:none}

.note-dialog{padding:24px}.note-dialog .note-compose{padding-top:12px}@media(max-width:600px){.note-dialog{padding:20px 16px}}


/* Final review: compact task links and readable content at every breakpoint. */
:root { --final-control-gap:12px; --final-focus-offset:3px; --note-unread-bg:#b92843; }
.dashboard-referrals { display:flex; align-items:center; justify-content:space-between; gap:var(--final-control-gap); }
.dashboard-referral-copy { min-width:0; }
.dashboard-referrals .panel-heading { justify-content:flex-start; gap:var(--final-control-gap); }
.dashboard-referrals p { margin-bottom:0; }
.dashboard-referrals .review-actions { flex-shrink:0; margin:0; }
.note-count { background:var(--note-unread-bg); }
.note-contact:last-child,.note-list>li:last-child>.note-inbox-row { border-bottom:0; }
.note-inbox-row:focus-visible,.note-avatar:focus-visible { outline:2px solid var(--teal); outline-offset:var(--final-focus-offset); }
.note-compose textarea,.note-compose input { font:inherit; }
.note-contact>.button { flex-shrink:0; white-space:normal; }
.note-inbox-meta time { white-space:nowrap; }
.note-message-meta strong { overflow-wrap:anywhere; min-width:0; }
@media(max-width:767px) {
 .dashboard-referrals { flex-direction:column; align-items:stretch; }
 .dashboard-referrals .review-actions { width:100%; }
 .dashboard-referrals .review-actions>* { flex:1; justify-content:center; }
}

:root { --final-map-title:18px; --final-map-number:24px; --final-map-gap:12px; --final-map-panel-pad:12px; }
input:is([type="checkbox"],[type="radio"]) { width:var(--check-control); height:var(--check-control); min-height:var(--check-control); padding:0; flex-shrink:0; accent-color:var(--teal); }
.admin-content td:has(>input[type="checkbox"]) { text-align:center; }
.admin-content .ops-check { display:inline-flex; align-items:center; justify-content:center; min-width:var(--touch); min-height:var(--touch); margin:0; }
.distribution-intro { margin-bottom:var(--final-map-gap); }
.distribution-intro h2 { font-size:var(--final-map-title); }
.map-metrics { gap:var(--final-map-gap); margin-bottom:var(--final-map-gap); }
.map-metrics>.panel { padding:var(--final-map-panel-pad); }
.map-metrics strong { font-size:var(--final-map-number); }
.ranking-pagination:not(:has(button)) { justify-content:center; }
.product-mark { min-width:var(--touch); white-space:nowrap; }

.map-filter-panel { margin-block:var(--final-map-gap); }
.map-filter-panel>summary { cursor:pointer; min-height:var(--touch); display:list-item; align-content:center; font-weight:600; color:var(--teal); }
.map-filter-panel[open]>summary { margin-bottom:var(--final-map-gap); }
@media(min-width:768px) { .map-filter-panel>summary { min-height:var(--check-control); font-size:var(--font-small); } }

/* Keep mission titles and completion actions readable without page redraws. */
.challenge-mission { cursor:default; }
.challenge-step-action { flex-shrink:0; min-height:var(--touch); white-space:normal; }
.challenge-step-action.is-complete:disabled { opacity:1; background:var(--mint); border-color:var(--line); color:var(--teal-dark); }
@media(max-width:600px) {
 .challenge-mission { display:grid; grid-template-columns:var(--challenge-index-size) minmax(0,1fr); }
 .challenge-step-action { grid-column:2; justify-self:start; }
}

:root { --legacy-icon-dark-filter:brightness(0) invert(1); }
:root:is([data-theme="passion"],[data-theme="sensual"],[data-theme="neon"]) .icon:has(>image) { filter:var(--legacy-icon-dark-filter); }

/* Keep reading, controls and feedback compact without shrinking touch targets. */
:root{--control-desktop:38px;--control-pad-y:7px;--control-pad-x:12px;--panel-compact:18px;--review-reading-width:980px;--review-cover-size:160px}
@media(min-width:900px) and (pointer:fine){
 .button{min-height:var(--control-desktop);padding:var(--control-pad-y) var(--control-pad-x)}
 input:not([type=checkbox]):not([type=radio]),select{min-height:var(--control-desktop);padding-top:var(--control-pad-y);padding-bottom:var(--control-pad-y)}
 .panel{padding:var(--panel-compact)}
 .panel-heading{margin-bottom:12px}
 .page-header{padding:20px 0}
}
.community-layout{display:block;max-width:var(--review-reading-width);margin-inline:auto}
.community-detail .panel-heading{margin-bottom:10px}.community-detail .review-byline{margin:8px 0 12px}.community-detail h2{font-size:22px;line-height:1.45}
.community-comments>.empty{min-height:80px}.community-comments h3{margin-bottom:12px}.community-comments textarea{min-height:88px}
.review-product-cover{display:flex;align-items:center;gap:16px;margin:16px 0;padding:12px;background:var(--canvas);border:1px solid var(--line);border-radius:var(--radius)}
.review-product-cover img{width:var(--review-cover-size);height:120px;object-fit:contain}.review-product-cover figcaption{font-size:var(--font-small);color:var(--muted)}
.review-cover-label{position:absolute;bottom:8px;left:8px;background:var(--surface);padding:3px 8px;border:1px solid var(--line);border-radius:6px;font-size:11px;color:var(--muted)}
.review-photo-open{position:relative;display:block;width:100%;padding:0;border:0;background:transparent;cursor:zoom-in}.review-photo-hint{position:absolute;right:8px;bottom:8px;display:flex;align-items:center;gap:4px;padding:4px 8px;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:6px;font-size:12px}.review-photo-hint svg{width:16px;height:16px}
@media(max-width:767px){.community-detail .panel-heading .button{min-height:var(--touch)}.review-product-cover{align-items:flex-start}.review-product-cover img{width:100px;height:90px}.community-detail h2{font-size:20px}}

/* One reading column: the former empty aside must not shrink review media. */
.community-layout { grid-template-columns:minmax(0,1fr); max-width:var(--content-reading-width); margin-inline:auto; }
.community-detail .review-gallery { margin-block:var(--review-gap); }
.community-detail .review-body { margin-block:var(--density-pad); }
@media(max-width:900px) {
  .knowledge-task-nav { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); overflow:visible; }
  .knowledge-task-nav .button { min-width:0; white-space:normal; overflow-wrap:anywhere; text-align:center; }
}

/* One icon column and shared label baselines across navigation surfaces. */
:root {
  --nav-label-leading:1.45;
  --nav-mobile-label-leading:14px;
  --nav-mobile-label-height:28px;
  --nav-rail-label-gap:12px;
  --nav-disclosure-size:16px;
  --note-unread-border:3px;
}
.sidebar .nav-item,.all-menu .nav-item {
  display:grid;
  grid-template-columns:var(--control-icon-size) minmax(0,1fr);
  align-items:center;
  column-gap:var(--nav-rail-label-gap);
}
.sidebar .nav-item>.icon,.all-menu .nav-item>.icon {
  display:block;
  width:var(--control-icon-size);
  height:var(--control-icon-size);
  justify-self:center;
}
.sidebar .nav-item>span,.all-menu .nav-item>span {
  line-height:var(--nav-label-leading);
  text-align:start;
}
:root[data-layout="tablet"] .sidebar .nav-item,
:root[data-layout="mobile"] .all-menu .nav-item { column-gap:var(--mobile-action-gap); }
:root[data-layout="mobile"] .mobile-nav>a,
:root[data-layout="mobile"] .mobile-nav>button {
  display:grid;
  grid-template-columns:minmax(0,1fr);
  grid-template-rows:var(--control-icon-size) var(--nav-mobile-label-height);
  justify-content:stretch;
  align-content:center;
  justify-items:center;
  align-items:start;
  row-gap:var(--nav-icon-label-gap);
  font-family:var(--font);
  line-height:var(--nav-mobile-label-leading);
}
:root[data-layout="mobile"] .mobile-nav>.active { font-weight:700; }
:root[data-layout="mobile"] .mobile-nav>*>svg.icon { display:block; }
:root[data-layout="mobile"] .mobile-nav>*>span:not(.icon) {
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  overflow:hidden;
  width:100%;
  min-width:0;
  line-height:var(--nav-mobile-label-leading);
  max-height:var(--nav-mobile-label-height);
  margin:0;
}
.admin-nav-group>summary::after {
  flex:0 0 var(--nav-disclosure-size);
  width:var(--nav-disclosure-size);
  text-align:center;
  line-height:1;
}
/* Reading a note must not move the text when its unread marker disappears. */
.note-inbox-row { border-inline-start:var(--note-unread-border) solid transparent; }
.note-inbox-row.unread { border-inline-start-color:var(--teal); }

/* Release visual audit: align card content and use the available content width. */
:root {
  --review-title-lines:2;
  --review-title-leading:1.5;
  --review-excerpt-leading:1.7;
  --review-author-height:36px;
}
#app[data-view="reviews"] .review-view-album .review-preview-copy h3 {
  line-height:var(--review-title-leading);
  min-height:calc(var(--review-title-lines) * var(--review-title-leading) * 1em);
}
#app[data-view="reviews"] .review-view-album .review-preview-copy h3 button {
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:var(--review-title-lines);
  overflow:hidden;
  line-height:var(--review-title-leading);
  width:100%;
}
#app[data-view="reviews"] .review-view-album .review-author { min-height:var(--review-author-height); }
#app[data-view="reviews"] .review-view-album .review-excerpt {
  white-space:normal;
  min-height:calc(var(--review-preview-lines) * var(--review-excerpt-leading) * 1em);
}
.review-actions:empty { display:none; }
.admin-content { container-type:inline-size; container-name:admin-content; }
.admin-content table .button { white-space:nowrap; overflow-wrap:normal; }
/* A tablet sidebar or desktop admin rail can leave less room than a phone layout. */
@container admin-content (max-width:760px) {
  .admin-content .table-scroll:not(.server-fleet-summary) .mobile-records,.admin-content .table-scroll:not(.server-fleet-summary) .mobile-records tbody { display:block; width:100%; min-width:0; }
  .admin-content .table-scroll:not(.server-fleet-summary) .mobile-records thead { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip-path:inset(50%); }
  .admin-content .table-scroll:not(.server-fleet-summary) .mobile-records tbody tr { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--polish-record-gap); padding:var(--form-field-gap); margin-bottom:var(--polish-record-gap); border:1px solid var(--line); border-radius:var(--form-control-radius); }
  .admin-content .table-scroll:not(.server-fleet-summary) .mobile-records tbody :is(td,th) { display:block; min-width:0; padding:0; border:0; white-space:normal; overflow-wrap:anywhere; }
  .admin-content .table-scroll:not(.server-fleet-summary) .mobile-records tbody :is(td,th):first-child,.admin-content .table-scroll:not(.server-fleet-summary) .mobile-records tbody :is(td,th):last-child { grid-column:1/-1; }
  .admin-content .table-scroll:not(.server-fleet-summary) .mobile-records tbody :is(td,th):before { content:attr(data-label); display:block; color:var(--muted); font-size:var(--polish-label-size); font-weight:400; margin-bottom:var(--polish-record-label-gap); }
  .admin-content .table-scroll:not(.server-fleet-summary) .mobile-records .button { max-width:100%; }
  .admin-content .table-scroll:not(.server-fleet-summary) .mobile-records td:last-child .button { width:100%; }
  .admin-content .table-scroll:not(.server-fleet-summary) .mobile-records .micro { overflow-wrap:anywhere; }

  .admin-content .table-scroll:not(.server-fleet-summary) .mobile-records td:last-child .button { width:auto; min-width:var(--touch); }
}
@media(max-width:767px) {
  #app[data-view="reviews"] .review-view-album .review-preview-copy h3 { min-height:0; }
  #app[data-view="reviews"] .review-view-album .review-excerpt { min-height:0; }
}

.admin-content .panel .error-filters>label { display:grid; gap:var(--form-label-gap); margin:0; min-width:0; }
.error-filters :is(input,select) { margin:0; width:100%; }
.error-filters>.button { align-self:end; }
.map-filters { align-items:end; }
.map-filter-actions { align-items:stretch; }
:root[data-layout="tablet"] .map-filter-actions { grid-column:1/-1; justify-content:flex-end; }
:root[data-layout="tablet"] .map-filter-actions .button { flex:0 1 auto; white-space:nowrap; }

/* Long ledger source identifiers must not squeeze the reason into one character. */
:root {
  --ledger-col-date:13%; --ledger-col-member:18%; --ledger-col-kind:12%;
  --ledger-col-delta:9%; --ledger-col-balance:10%; --ledger-col-source:18%; --ledger-col-reason:20%;
}
@container admin-content (min-width:761px) {
  .admin-content .ops-ledger-table { table-layout:fixed; width:100%; min-width:0; }
  .admin-content .ops-ledger-table :is(th,td) { white-space:normal; overflow-wrap:anywhere; vertical-align:top; }
  .admin-content .ops-ledger-table th:nth-child(1) { width:var(--ledger-col-date); }
  .admin-content .ops-ledger-table th:nth-child(2) { width:var(--ledger-col-member); }
  .admin-content .ops-ledger-table th:nth-child(3) { width:var(--ledger-col-kind); }
  .admin-content .ops-ledger-table th:nth-child(4) { width:var(--ledger-col-delta); }
  .admin-content .ops-ledger-table th:nth-child(5) { width:var(--ledger-col-balance); }
  .admin-content .ops-ledger-table th:nth-child(6) { width:var(--ledger-col-source); }
  .admin-content .ops-ledger-table th:nth-child(7) { width:var(--ledger-col-reason); }
  .admin-content .ops-ledger-table .button { white-space:normal; overflow-wrap:anywhere; max-width:100%; }
}
