/* Launchpad selected by Aaron, 22 Sep 2026, ws_223.
   Derived from dashboard-options-20260922-r001 option 1; scoped to Dashboard.
   Rollback: data/ui/dashboard-launchpad-20260922/backup/tab.{js,css}. */
.dsh-launchpad { --dsh-gap: var(--sp-3); }
.dsh-launchpad .dsh-topbar {
  position: relative;
  top: auto;
  z-index: auto;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  flex-shrink: 0;
  min-height: 44px;
  padding: var(--sp-2) var(--sp-4);
  background: var(--s-bg-page);
  border-bottom: 1px solid var(--s-border);
  box-sizing: border-box;
}
.dsh-launchpad .dsh-pad { width: 100%; max-width: 1280px; margin: 0 auto; box-sizing: border-box; }
.dsh-launchpad .dsh-body { display: flex; flex-direction: column; flex: 1; padding: 0; }
.dsh-launchpad .dsh-pad { padding: var(--sp-6) var(--sp-8) var(--sp-8); }
.dsh-launchpad svg { display: block; width: 22px; height: 22px; flex-shrink: 0; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.dsh-home { display: flex; flex-direction: column; gap: var(--sp-7, 1.75rem); width: 100%; }
.dsh-link-group { min-width: 0; margin: 0; padding: 0; border: 0; background: transparent; box-shadow: none; }
.dsh-link-head { display: flex; align-items: baseline; gap: var(--sp-3); margin-bottom: var(--sp-4); }
.dsh-launchpad .dsh-link-title { margin: 0; font-size: var(--t-font-size-lg); font-weight: var(--t-font-weight-medium); color: var(--c-heading-color); letter-spacing: -.015em; text-transform: none; }
.dsh-link-count { font-size: var(--t-font-size-xs); color: var(--s-text-secondary); }
.dsh-icon-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--sp-3); }
.dsh-tile { display: flex; position: relative; min-width: 0; border: 1px solid var(--s-border); border-radius: var(--radius-lg); background: var(--s-bg-surface); box-shadow: none; }
.dsh-launchpad .dsh-tile-main { display: flex; align-items: center; gap: var(--sp-3); flex: 1; min-width: 0; min-height: 80px; padding: var(--sp-4) var(--sp-3); margin: 0; border: 0; border-radius: inherit; background: transparent; color: var(--s-text-primary); text-decoration: none; text-align: left; font: inherit; cursor: pointer; box-shadow: none; appearance: none; box-sizing: border-box; }
.dsh-launchpad .dsh-tile-main:hover { background: var(--s-bg-hover, var(--s-hover-wash)); }
.dsh-launchpad a:focus-visible, .dsh-launchpad button:focus-visible { outline: 2px solid var(--s-accent); outline-offset: 3px; }
.dsh-app-icon { display: grid; place-items: center; flex-shrink: 0; width: 38px; height: 38px; border-radius: var(--radius-lg); background: var(--s-bg-surface-sunken); color: var(--c-heading-color); font-size: var(--t-font-size-xl); }
.dsh-tile-text { min-width: 0; }
.dsh-tile-name { display: block; font-size: var(--t-font-size-sm); font-weight: var(--t-font-weight-medium); color: var(--c-heading-color); line-height: var(--t-line-height-tight); overflow-wrap: anywhere; }
.dsh-launchpad .dsh-tile[data-id] { user-select: none; }
.dsh-launchpad .dsh-app-icon { cursor: grab; touch-action: none; }
.dsh-launchpad .dsh-tile.is-dragging { opacity: 0.45; }
.dsh-launchpad .dsh-tile.is-dragging,
.dsh-launchpad .dsh-tile.is-dragging .dsh-tile-main,
.dsh-launchpad .dsh-tile.is-dragging .dsh-app-icon { cursor: grabbing; }
.dsh-launchpad .dsh-tile.is-drop-before { outline: 2px solid var(--s-accent); outline-offset: -2px; }
.dsh-launchpad .dsh-link-group.is-drop-end .dsh-icon-grid { outline: 1px dashed var(--s-accent); outline-offset: 3px; }
.dsh-launchpad .dsh-link-title { cursor: text; border-radius: var(--radius-sm); }
.dsh-launchpad .dsh-link-title:hover,
.dsh-launchpad .dsh-link-title:focus { background: var(--s-bg-hover, var(--s-hover-wash)); outline: none; }
.dsh-launchpad .dsh-link-rename { width: 14rem; max-width: 100%; margin: 0; padding: 0 0 1px; border: 0; border-bottom: 1px solid var(--s-border); border-radius: 0; background: transparent; color: var(--c-heading-color); font: inherit; font-size: var(--t-font-size-lg); font-weight: var(--t-font-weight-medium); letter-spacing: -.015em; }
.dsh-launchpad .dsh-tile-x { display: none; align-self: center; flex-shrink: 0; width: 36px; height: 40px; margin: 0 var(--sp-2) 0 0; padding: 0; color: var(--s-text-secondary); }
.dsh-launchpad .dsh-tile-x:hover { color: var(--s-status-error); background: var(--s-status-error-bg); }
.dsh-link-empty { padding: var(--sp-5) 0; font-size: var(--t-font-size-sm); color: var(--s-text-secondary); }
.dsh-link-add { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-2); padding: var(--sp-4); border: 1px solid var(--s-border); border-radius: var(--radius-lg); background: var(--s-bg-surface); }
.dsh-link-add .mod-input { flex: 1 1 180px; min-width: 0; }
.dsh-hidden { border-top: 1px solid var(--s-border); padding-top: var(--sp-3); }
.dsh-hidden-list { margin-top: var(--sp-2); }
.dsh-hidden-row { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-3); padding: var(--sp-2) 0; border-bottom: 1px solid var(--s-border); }
.dsh-hidden-name { font-size: var(--t-font-size-sm); color: var(--s-text-secondary); overflow-wrap: anywhere; min-width: 0; }
.dsh-sync-warn { display: flex; align-items: center; gap: var(--sp-3); flex-wrap: wrap; padding: var(--sp-3); border: 1px solid var(--s-status-warning); border-radius: var(--radius-md); background: var(--s-status-warning-bg); color: var(--s-status-warning-text); font-size: var(--t-font-size-sm); }
.dsh-sync-warn-text { flex: 1 1 12rem; min-width: 0; }
.dsh-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
@media (max-width: 950px) { .dsh-icon-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 650px) {
  .dsh-launchpad .dsh-pad { padding: var(--sp-4) var(--sp-4) var(--sp-8); }
  .dsh-icon-grid { gap: var(--sp-2); }
  .dsh-launchpad .dsh-tile-main { flex-direction: column; align-items: flex-start; gap: var(--sp-3); padding: var(--sp-4) var(--sp-3); }
  .dsh-launchpad .dsh-tile-x { width: 32px; min-width: 32px; height: 44px; margin-right: var(--sp-1); }
}
/* Shared polish uses important rules; override only this approved layout. */
.mod-page.dsh-launchpad .dsh-body { padding: 0 !important; }
.mod-page.dsh-launchpad .dsh-pad { max-width: 1280px; }
@media (max-width: 650px) {
}
html.mirai-mobile .dsh-launchpad .dsh-pad { padding: var(--sp-4) var(--sp-4) var(--sp-8); }
html.mirai-mobile .dsh-launchpad .dsh-link-group { padding: 0; margin: 0; }

@media (max-width: 1250px) { .dsh-icon-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 950px) { .dsh-icon-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.dsh-launchpad .dsh-tile-x { display: inline-flex; position: absolute; top: 0; right: 0; margin: 0; width: 28px; height: 28px; opacity: 0; }
.dsh-launchpad .dsh-tile:hover .dsh-tile-x,
.dsh-launchpad .dsh-tile:focus-within .dsh-tile-x { opacity: 1; }
.dsh-launchpad .dsh-tile-main { padding-right: var(--sp-7, 1.75rem); }
@media (hover: none) { .dsh-launchpad .dsh-tile-x { opacity: 1; } }

/* P116 approved Workspace redesign r002 — 28 September 2026. */
/* Application destinations stay in their existing user-managed groups. */
.dsh-launchpad .dsh-icon-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:0 28px}
.dsh-launchpad .dsh-tile{border:0;border-bottom:1px solid var(--s-border);border-radius:0;background:transparent}
.dsh-launchpad .dsh-tile-main{min-height:90px;padding:20px 40px 20px 0;gap:16px}
.dsh-launchpad .dsh-app-icon{background:transparent;width:32px;height:36px;color:var(--s-accent)}
.dsh-launchpad .dsh-tile-x{width:36px;height:44px;top:23px}
.dsh-launchpad .dsh-link-head{margin-bottom:8px}.dsh-launchpad .dsh-home{gap:36px}
.dsh-launchpad .dsh-link-add{background:transparent;border-width:0 0 1px;border-radius:0;padding:16px 0}
@media(max-width:760px){.dsh-launchpad .dsh-icon-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}.dsh-launchpad .dsh-tile-main{flex-direction:row;align-items:center;gap:10px;padding:18px 28px 18px 0;min-height:90px}.dsh-launchpad .dsh-tile-x{width:28px}.dsh-launchpad .dsh-app-icon{width:24px}.dsh-launchpad .dsh-tile-name{font-size:12px}}

/* P116 — dashboard chat start, Aaron 28 September 2026. */
#dashboard-panel .dsh-launchpad { height: 100%; min-height: 0; padding: 0 !important; }
#dashboard-panel .dsh-body { overflow-y: auto; overscroll-behavior-y: contain; }
#dashboard-panel .dsh-chat-start {
  position: relative; isolation: isolate; flex: 0 0 auto; box-sizing: border-box;
  min-height: 100dvh; display: flex; align-items: center; justify-content: center;
  padding: 48px 24px; background: var(--s-bg-page); overflow: hidden;
}
.dsh-hero-field { position: absolute; inset: 0; width: 100%; height: 100%; z-index: -1; pointer-events: none; }
.dsh-start-center { width: 100%; max-width: 760px; display: flex; flex-direction: column; align-items: center; gap: 28px; }
.dsh-composer-slot { width: 100%; }
html[data-theme] .app.voice-app[data-active-tab="dashboard"] .dsh-chat-start .controls {
  display: flex !important; position: relative !important; inset: auto !important;
  width: 100%; margin: 0 !important; padding: 0 !important; border: 0 !important;
  background: transparent !important; box-shadow: none !important; transform: none !important;
}
html[data-theme] .app.voice-app .dsh-chat-start .text-input-wrap {
  margin: 0; padding: 10px !important; border: 0 !important; background: transparent !important;
}
html[data-theme] .dsh-chat-start .text-input { background: transparent !important; border: 0 !important; box-shadow: none !important; }
.dsh-chat-start .controls::before { display: none !important; }
.dsh-chat-start :is(#filePills, #composerActivity, #uploadProgress, #uploadSizeWarning) { display: none !important; }
#dashboard-panel .dsh-chat-start .composer-actions svg { fill: currentColor; stroke: none; }
.dsh-start-status { min-height: 20px; font-size: 13px; color: var(--s-text-secondary); text-align: center; }
#dashboard-panel .dsh-topbar { position: static; background: transparent; border: 0; flex: 0 0 auto; }
#dashboard-panel .dsh-pad { flex: 0 0 auto; }
@media (max-width: 768px) {
  #dashboard-panel .dsh-chat-start { padding-inline: 16px; }
  .dsh-start-center { gap: 20px; }
}
/* Beat shared module form chrome; this is the chat composer, not a form card. */
html[data-theme] #dashboard-panel .dsh-chat-start .text-input:focus {
  outline: none !important; box-shadow: none !important;
}
html[data-theme] #dashboard-panel .dsh-chat-start .composer-actions button { min-width: 44px; min-height: 44px; }
html[data-theme] #dashboard-panel { padding: 0 !important; }
body:has(#appContainer[data-active-tab="dashboard"]) :is(#mcw-fab, #mcw-panel) { display: none !important; }

/* P116 — input first, quiet action row and name-only agent menu (28 Sep). */
.dsh-start-center { position: relative; max-width: 720px; gap: 0; }
.dsh-start-status { position: absolute; top: calc(100% + 16px); left: 0; right: 0; }
html[data-theme] #dashboard-panel .dsh-chat-start .text-input-wrap {
  grid-template-columns: minmax(0, 1fr) !important; gap: 16px !important;
  padding: 0 !important; margin: 0 !important; width: 100%;
}
html[data-theme] #dashboard-panel .dsh-chat-start .text-input {
  grid-column: 1; grid-row: 1; min-height: 64px !important;
  padding: 16px 4px !important; font-size: 20px !important; line-height: 1.6 !important;
  text-align: center !important;
}
html[data-theme] #dashboard-panel .dsh-chat-start .text-input-wrap::after {
  left: calc(50% - 1px); top: 20px; margin: 0; height: 24px;
}
html[data-theme] #dashboard-panel .dsh-chat-start .composer-actions {
  grid-column: 1; grid-row: 2; width: 100%; gap: 4px; padding: 0; align-items: center;
  justify-content: flex-start;
}
/* Empty: agent alone on the right. With text or stop: send sits immediately left of it. */
#dashboard-panel .dsh-chat-start .dsh-agent-picker { margin-left: auto; }
#dashboard-panel .dsh-chat-start .text-input-wrap:is(.has-text, :has(#sendBtn.show), :has(#sendBtn.is-stop)) #sendBtn { margin-left: auto; }
#dashboard-panel .dsh-chat-start .text-input-wrap:is(.has-text, :has(#sendBtn.show), :has(#sendBtn.is-stop)) .dsh-agent-picker { margin-left: 0; }
.dsh-agent-picker { position: relative; min-width: 0; }
html[data-theme] #dashboard-panel .dsh-agent-trigger {
  display: flex; align-items: center; justify-content: center; gap: 6px;
  width: auto !important; max-width: 180px; padding: 0 10px !important; min-height: 44px;
  border: 0; border-radius: 8px; background: transparent; box-shadow: none;
  color: var(--s-text-secondary); font: inherit; font-size: 13px; cursor: pointer;
}
.dsh-agent-trigger span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
#dashboard-panel .dsh-chat-start .composer-actions .dsh-agent-trigger svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 1.5; }
html[data-theme] #dashboard-panel .dsh-agent-trigger:is(:hover, [aria-expanded="true"]) { background: var(--s-bg-hover); color: var(--s-text-primary); }
html[data-theme] #dashboard-panel .dsh-agent-menu {
  position: absolute; z-index: 20; bottom: calc(100% + 8px); left: auto; right: 0;
  width: 184px; max-width: calc(100vw - 144px); max-height: min(264px, 32dvh);
  padding: 6px; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin;
  border: 1px solid var(--s-border); border-radius: 12px; background: var(--s-bg-surface);
}
.dsh-agent-menu[hidden] { display: none !important; }
html[data-theme] #dashboard-panel .dsh-agent-menu .dsh-agent-option {
  display: block; width: 100% !important; min-height: 44px; padding: 10px 12px !important;
  border: 0; border-radius: 6px; background: transparent; box-shadow: none;
  color: var(--s-text-primary); font: inherit; font-size: 13px; text-align: left; cursor: pointer;
}
html[data-theme] #dashboard-panel .dsh-agent-menu .dsh-agent-option:is(:hover, :focus-visible, [aria-selected="true"]) {
  background: var(--s-bg-hover); color: var(--s-accent);
}
html[data-theme] #dashboard-panel :is(.dsh-agent-trigger, .dsh-agent-option):focus-visible {
  outline: 2px solid var(--s-accent) !important; outline-offset: -2px;
}
@media (max-width: 768px) {
  html[data-theme] #dashboard-panel .dsh-chat-start .text-input { font-size: 18px !important; }
  html[data-theme] #dashboard-panel .dsh-agent-trigger { max-width: 140px; }
}

/* P116 spacing pass: zoom and long labels must not clip hero actions. */
#dashboard-panel .dsh-start-center { container-type: inline-size; }
html[data-theme] #dashboard-panel .dsh-chat-start .composer-actions {
  flex-wrap: wrap;
  row-gap: 8px;
}
#dashboard-panel .dsh-chat-start .dsh-agent-picker { max-width: 100%; }
html[data-theme] #dashboard-panel .dsh-agent-trigger {
  min-width: 0;
  max-width: min(180px, 100cqi);
}
html[data-theme] #dashboard-panel .dsh-agent-menu {
  width: min(184px, 100cqi);
  max-width: 100cqi;
  box-sizing: border-box;
}
