:root {
  --dashboard-gap: 18px;
  --dashboard-card-height: 320px;
  --dashboard-ink: #182230;
  --dashboard-text: #344054;
  --dashboard-muted: #667085;
  --dashboard-border: #e6ebf2;
}

.dashboard-widget-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--dashboard-gap);
  align-items: stretch;
  min-width: 0;
}

.dashboard-widget {
  --dashboard-card-shadow: 0 0 0 0 transparent;
  --widget-accent: #304b6a;
  position: relative;
  min-width: 0;
  height: var(--dashboard-card-height);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  padding: 20px;
  border: 1px solid var(--dashboard-border);
  border-radius: 20px;
  background: #fff;
  color: var(--dashboard-text);
  box-shadow: var(--dashboard-card-shadow);
  transition: border-color 190ms ease-out, background-color 190ms ease-out, box-shadow 190ms ease-out;
}

.dashboard-widget:not(.is-editing)[data-widget-route] { cursor: pointer; }
.dashboard-widget:not(.is-editing):hover { transform: none; border-color: #cfdbea; box-shadow: var(--dashboard-card-shadow),0 0 0 3px rgba(92,137,201,.07); }
.widget-standard { grid-column: span 1; }
.widget-wide { grid-column: span 2; }
.widget-quick_dock { grid-column: 1 / -1; height: auto; min-height: 154px; }

.dashboard-widget-head {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  min-height: 32px;
  margin-bottom: 16px;
}

.dashboard-widget-head h3 {
  min-width: 0;
  margin: 0;
  overflow: hidden;
  color: var(--widget-accent);
  font-size: 16px;
  font-weight: 760;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.dashboard-widget-head > button {
  min-height: 30px;
  margin-left: auto;
  padding: 0 8px;
  gap: 5px;
  border: 0;
  background: transparent;
  color: #55708f;
  font-size: 12px;
  font-weight: 650;
}

.dashboard-widget-head > button:hover { background: #f1f5f9; filter: none; }
.dashboard-widget-head > button svg { width: 15px; height: 15px; }
.dashboard-widget-title-icon { width: 20px; height: 20px; flex: 0 0 20px; display: grid; place-items: center; border: 0; border-radius: 0; background: transparent; color: var(--widget-accent); }
.dashboard-widget-title-icon svg,.quick-access-icon svg,.widget-option-icon svg,.widget-drag-handle svg,.add-widget svg,.dashboard-quick-link svg,.dashboard-quick-link-add svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.dashboard-widget-body { position: relative; z-index: 2; flex: 1; display: flex; flex-direction: column; min-height: 0; }
.dashboard-widget-meta { position: relative; z-index: 2; max-width: 63%; margin-top: auto; color: var(--dashboard-muted); font-size: 13px; line-height: 1.45; }

.widget-type-latest_profit_report { --widget-accent:#315c9b; background: linear-gradient(145deg,#e8f2ff 0%,#e9edff 58%,rgba(255,255,255,.95) 100%); border-color: #d6e2fb; }
.widget-type-latest_profit_report.profit-theme-green { background: linear-gradient(145deg,#edfbf5,#dff5ed 64%,#e9f9f1); border-color: #cfeade; }
.widget-type-latest_profit_report.profit-theme-purple { background: linear-gradient(145deg,#f5f0ff,#e9e1ff 64%,#f7efff); border-color: #ded3f8; }
.widget-type-latest_profit_report.profit-theme-warm { background: linear-gradient(145deg,#fff6eb,#fee9da 64%,#fff1e9); border-color: #f4ddca; }
.widget-type-latest_profit_report.profit-theme-navy { background: linear-gradient(145deg,#edf3fb,#dde7f5 64%,#e8e8fa); border-color: #cfdbed; }
.widget-type-inventory_health { --widget-accent:#b35f14; background: linear-gradient(145deg,#fff5e8 0%,#ffecd6 54%,rgba(255,255,255,.96) 100%); border-color: #f5ddbf; }
.widget-type-replenishment_plan { --widget-accent:#15745e; background: linear-gradient(145deg,#e9faf3 0%,#dcf4ea 55%,rgba(255,255,255,.96) 100%); border-color: #cae9dc; }
.widget-type-purchase_order_status { --widget-accent:#5b52a6; background: linear-gradient(145deg,#f1efff 0%,#e8e6fb 54%,rgba(255,255,255,.96) 100%); border-color: #dcd8f3; }
.widget-type-shipment_status { --widget-accent:#246ca5; background: linear-gradient(145deg,#eaf6ff 0%,#dff0fc 56%,rgba(255,255,255,.96) 100%); border-color: #d0e5f5; }
.widget-type-todo_summary { --widget-accent:#5f4ba1; background: linear-gradient(145deg,#f4edff 0%,#ebe5fb 57%,rgba(255,255,255,.96) 100%); border-color: #ddd4f4; }
.widget-type-gift_summary { --widget-accent:#a34d83; background: linear-gradient(145deg,#fff0f8 0%,#f7e6f4 56%,rgba(255,255,255,.96) 100%); border-color: #edd7e9; }
.widget-type-return_status { --widget-accent:#a94d36; background: linear-gradient(145deg,#fff0ea 0%,#fbe3da 55%,rgba(255,255,255,.96) 100%); border-color: #efd4ca; }
.widget-type-weather { padding: 0; background: #dfeeff; }
.widget-type-weather .dashboard-widget-head { margin: 18px 20px 0; }
.widget-type-ai_assistant { --widget-accent:#4b56a5; background: linear-gradient(145deg,#edf3ff 0%,#e9e8fb 58%,rgba(255,255,255,.95) 100%); border-color: #d9def5; }

.dashboard-widget-illustration { position: absolute; z-index: 1; right: -4%; bottom: 1%; width: 52%; height: 54%; display: grid; place-items: end; pointer-events: none; user-select: none; -webkit-user-drag: none; opacity: var(--illustration-opacity,.26); filter: saturate(.88) drop-shadow(0 12px 24px rgba(83,103,139,.12)); transition: opacity 190ms ease-out; animation: dashboardFloat 8s ease-in-out infinite; }
.dashboard-widget-illustration img { width: 100%; height: 100%; object-fit: contain; object-position: right bottom; pointer-events: none; user-select: none; -webkit-user-drag: none; }
.dashboard-widget:hover .dashboard-widget-illustration { opacity: calc(var(--illustration-opacity,.26) + .05); }
.dashboard-widget-illustration.is-missing { display: none; }
.widget-standard:not(.widget-type-weather):not(.widget-type-quick_links) .dashboard-widget-body { max-width: 64%; }
.dashboard-primary-number { position: relative; z-index: 2; display: grid; gap: 5px; margin: 3px 0 18px; }
.dashboard-primary-number strong { color: var(--dashboard-ink); font-size: clamp(34px,3vw,48px); line-height: 1; font-variant-numeric: tabular-nums; letter-spacing: -.035em; }
.dashboard-primary-number span { color: var(--dashboard-muted); font-size: 14px; }
.dashboard-mini-metrics,.dashboard-mini-metrics.two { position: relative; z-index: 2; display: grid; grid-template-columns: minmax(0,1fr); gap: 0; }
.dashboard-mini-metrics > div { min-width: 0; min-height: 37px; display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 12px; padding: 7px 0; border: 0; border-bottom: 1px solid rgba(92,109,131,.12); border-radius: 0; background: transparent; }
.dashboard-mini-metrics span { overflow: hidden; color: var(--dashboard-muted); font-size: 13px; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-mini-metrics strong { overflow: hidden; color: var(--widget-accent); font-size: 15px; font-variant-numeric: tabular-nums; text-overflow: ellipsis; white-space: nowrap; }

.profit-widget-period { position: relative; z-index: 2; margin: 7px 0 16px; overflow: hidden; color: #294f82; font-size: 22px; font-weight: 780; line-height: 1.3; text-overflow: ellipsis; white-space: nowrap; }
.profit-widget-range { position: relative; z-index: 2; margin: 0; color: #647b98; font-size: 13px; }
.profit-entry-body { justify-content: space-between; max-width: 65% !important; padding: 2px 0 4px; }
.profit-widget-range { display: grid; gap: 5px; line-height: 1.55; }
.profit-widget-range span { color: #506b92; font-size: 13px; font-weight: 700; }
.dashboard-status { margin-left: auto; padding: 4px 9px; border-radius: 999px; font-size: 11px; font-weight: 700; }
.dashboard-status.success { background: rgba(16,185,129,.12); color: #087b58; }
.dashboard-soft-action { position: relative; z-index: 3; width: fit-content; min-height: 36px; margin-top: auto; padding: 0 12px; border: 1px solid rgba(90,119,170,.2); border-radius: 10px; background: rgba(255,255,255,.66); color: #315fae; font-size: 13px; font-weight: 700; }
.dashboard-soft-action:hover { background: #fff; filter: none; }
.widget-type-latest_profit_report .dashboard-soft-action { margin-top: auto; }
.widget-type-latest_profit_report .dashboard-widget-illustration { right: -8%; bottom: 16px; width: 68%; height: 70%; opacity: var(--illustration-opacity,.3); }

.widget-wide { padding: 18px 20px; background: linear-gradient(180deg,#fff,#fdfefe); }
.widget-wide::before { content: ""; position: absolute; z-index: 0; inset: -34px 8% auto; height: 76px; border-radius: 50%; background: radial-gradient(ellipse at center,rgba(122,166,245,.2),rgba(171,148,236,.08) 45%,transparent 72%); filter: blur(10px); opacity: .8; pointer-events: none; }
.widget-type-gift_order_list::before { background: radial-gradient(ellipse at center,rgba(241,148,205,.2),rgba(180,146,235,.08) 45%,transparent 72%); }
.widget-type-todo_list::before { background: radial-gradient(ellipse at center,rgba(135,125,230,.19),rgba(113,163,235,.08) 45%,transparent 72%); }
.widget-type-warehouse_issue_orders::before { background: radial-gradient(ellipse at center,rgba(87,179,216,.18),rgba(100,203,183,.08) 45%,transparent 72%); }
.dashboard-work-list { flex: 1; min-height: 0; display: grid; align-content: start; }
.dashboard-work-list button { min-width: 0; min-height: 42px; display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 14px; padding: 0 4px; border-bottom: 1px solid #eef1f5; border-radius: 0; background: transparent; color: var(--dashboard-text); text-align: left; }
.dashboard-work-list button:hover { background: #f8fafc; filter: none; }
.dashboard-work-list button span { overflow: hidden; font-size: 14px; line-height: 1.4; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-work-list button em { padding: 4px 9px; border-radius: 999px; font-size: 12px; font-style: normal; white-space: nowrap; }
.dashboard-work-list button em.biz-badge.green { background:#e8f6ee; color:#198754; }
.dashboard-work-list button em.biz-badge.yellow { background:#fff2d9; color:#ad6900; }
.dashboard-work-list button em.biz-badge.gray { background:#eef2f6; color:#4c5b70; }
.dashboard-work-list button em.biz-badge.blue { background:#dbeafe; color:#1d4ed8; }
.dashboard-work-list button em.biz-badge.red { background:#fee2e2; color:#b42318; }
.dashboard-work-list button em.biz-badge.purple { background:#ede9fe; color:#6d28d9; }
.dashboard-wide-footer { position: relative; z-index: 2; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-top: 10px; color: var(--dashboard-muted); font-size: 13px; }
.dashboard-wide-footer button { min-height: 30px; padding: 0; border: 0; background: transparent; color: #4a6f9c; font-size: 13px; font-weight: 680; }
.dashboard-wide-footer button:hover { background: transparent; color: #2f5f9a; filter: none; }
.dashboard-widget-empty { flex: 1; display: grid; place-items: center; color: var(--dashboard-muted); font-size: 13px; text-align: center; }

.widget-type-quick_access_dock { padding: 16px 20px 18px; isolation: isolate; }
.widget-type-quick_access_dock::before { content:""; position:absolute; z-index:0; inset:0 0 auto; height:78px; border-radius:inherit; pointer-events:none; background:radial-gradient(ellipse 54% 80% at 12% 0%,rgba(94,170,255,.12),transparent 72%),radial-gradient(ellipse 46% 76% at 48% 0%,rgba(96,220,190,.09),transparent 74%),linear-gradient(180deg,rgba(234,247,255,.23),transparent); }
.widget-type-quick_access_dock > * { position:relative; z-index:1; }
.widget-type-quick_access_dock .dashboard-widget-head { margin-bottom: 8px; }
.quick-access-grid { display: grid; grid-template-columns: repeat(auto-fill,minmax(88px,106px)); justify-content: start; gap: 10px 12px; }
.quick-access-grid > button { min-width: 0; min-height: 82px; display: grid; gap: 7px; place-items: center; padding: 7px 6px; border: 1px solid transparent; border-radius: 13px; background: transparent; color: var(--dashboard-text); }
.quick-access-grid > button:hover { background: #f6f8fb; filter: none; }
.quick-access-icon { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 14px; color: #4776c8; background: #edf4ff; transition: transform 190ms ease, background-color 190ms ease; }
.quick-access-grid > button:hover .quick-access-icon { transform: translateY(-1px); background: #e3edff; }
.quick-access-grid > .quick-access-add { width:60px; min-width:60px; min-height:82px; padding:7px 6px; border:0; background:transparent; color:#667085; }
.quick-access-grid > .quick-access-add:hover { background:transparent; }
.quick-access-grid > .quick-access-add .quick-access-icon { background:#f1f5f9; color:#607089; }
.quick-access-grid > .quick-access-add:hover .quick-access-icon { background:#e5edf6; color:#315fae; }
.quick-access-grid strong { max-width: 100%; overflow: hidden; font-size: 12px; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
.tone-inventory,.tone-replenish { color: #159673; background: #e9f9f3; }
.tone-purchase,.tone-todo { color: #945fd0; background: #f5edfc; }
.tone-shipment { color: #2188d6; background: #eaf6ff; }
.tone-profit { color: #496ee3; background: #edf1ff; }
.tone-gift,.tone-returns { color: #d97957; background: #fff0e9; }

.dashboard-quick-links { flex: 1; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px 9px; align-content: start; }
.dashboard-quick-link,.dashboard-quick-link-add { min-width: 0; display: grid; gap: 6px; justify-items: center; color: var(--dashboard-text); text-decoration: none; }
.dashboard-quick-link > span,.dashboard-quick-link-add > span { width: 44px; height: 44px; display: grid; place-items: center; overflow: hidden; border: 1px solid #e5eaf1; border-radius: 12px; background: #f8fafc; }
.dashboard-quick-link i { display: grid; place-items: center; width: 100%; height: 100%; color: #607690; font-style: normal; }
.dashboard-quick-link img { width: 100%; height: 100%; object-fit: cover; }
.dashboard-quick-link strong,.dashboard-quick-link-add strong { max-width: 100%; overflow: hidden; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-quick-link-add { min-height: 68px; padding: 0; border: 0; background: transparent; color: #607089; }
.dashboard-quick-link-add > span { border-style: dashed; }
.dashboard-quick-link-add:hover { background: transparent; filter: none; }
.dashboard-quick-link-add:hover > span { border-color: #b9c7d9; background: #f1f5f9; }
.dashboard-quick-link-add svg { width: 21px; height: 21px; }
.dashboard-link-more { display: grid; place-items: center; color: var(--dashboard-muted); font-size: 14px; }
.dashboard-widget-grid:not(.editing) .quick-link-tools { display: none; }

.weather-widget { position: absolute; inset: 0; z-index: 0; display: flex; flex-direction: column; padding: 66px 22px 22px; overflow: hidden; color: #203653; isolation: isolate; }
.weather-widget > div,.weather-widget > p,.weather-widget > footer { position: relative; z-index: 3; }
.weather-location { width: 54%; display: grid; gap: 5px; }
.weather-location strong { overflow: hidden; font-size: 17px; font-weight: 760; text-overflow: ellipsis; white-space: nowrap; }
.weather-location span { font-size: 14px; opacity: .8; }
.weather-current { width: 58%; display: grid; gap: 8px; margin-top: 25px; }
.weather-current strong { font-size: clamp(40px,3.4vw,52px); line-height: 1; font-variant-numeric: tabular-nums; letter-spacing: -.04em; }
.weather-current span { font-size: 15px; font-weight: 680; }
.weather-widget > footer { margin-top: auto; font-size: 15px; font-weight: 650; opacity: .86; }
.weather-clear,.weather-partly_cloudy { background:linear-gradient(145deg,#e8f6ff 0%,#b9ddfb 58%,#94c8ee 100%); }
.weather-cloudy,.weather-fog { background:linear-gradient(145deg,#eef5fa 0%,#c9dce9 58%,#a9c3d5 100%); }
.weather-drizzle,.weather-rain,.weather-heavy_rain,.weather-thunderstorm { color:#f5f9ff; background:linear-gradient(145deg,#536f8f 0%,#6f91ad 56%,#93aec3 100%); }
.weather-heavy_rain,.weather-thunderstorm { background:linear-gradient(145deg,#324b69 0%,#4e6d8b 58%,#718ca5 100%); }
.weather-snow { background: linear-gradient(145deg,#f3fbff 0%,#d6eaf5 58%,#bdd7e7 100%); }
.weather-night { color:#f7f9ff; background: linear-gradient(145deg,#182b58 0%,#304b82 56%,#514b8f 100%); }
.widget-type-weather .dashboard-widget-head { z-index: 4; }
.widget-type-weather .dashboard-widget-head h3,.widget-type-weather .dashboard-widget-title-icon { color:#fff; text-shadow:0 1px 2px rgba(35,65,92,.3); }
.weather-scene-svg { position: absolute; z-index: 2; right: -4%; top: 67px; width: 61%; height: 63%; overflow: visible; pointer-events: none; user-select: none; filter: drop-shadow(0 12px 24px rgba(43,82,116,.14)); }
.weather-scene-cloud { animation:weatherCloud 6s ease-in-out infinite alternate; transform-origin:center; }
.weather-scene-cloud-back { opacity:.88; animation-delay:-2.7s; }
.weather-scene-cloud-front { animation-duration:7s; }
.weather-scene-sun { transform-origin: 126px 52px; animation: weatherSunPulse 10s ease-in-out infinite; filter: drop-shadow(0 0 13px rgba(255,190,72,.35)); }
.weather-scene-moon { filter: drop-shadow(0 0 12px rgba(222,231,255,.28)); }
.weather-scene-stars circle { transform-origin: center; animation: weatherStar 6s ease-in-out infinite; }
.weather-scene-stars circle:nth-child(2) { animation-delay:-2s; }.weather-scene-stars circle:nth-child(3) { animation-delay:-4s; }.weather-scene-stars circle:nth-child(4) { animation-delay:-1s; }
.weather-rain-particles { position:absolute!important; z-index:1!important; right:3%; top:64%; width:58%; height:31%; overflow:hidden; pointer-events:none; user-select:none; }
.weather-rain-particles i { position:absolute; top:-14px; left:var(--rain-x); width:1.5px; height:10px; border-radius:999px; background:rgba(238,247,255,.92); opacity:0; transform:translate3d(0,0,0) rotate(-10deg); animation:weatherRainParticle var(--rain-duration) linear var(--rain-delay) infinite; }
.weather-rain-particles.drizzle i { width:1.5px; height:5px; background:rgba(235,246,255,.75); transform:translate3d(0,0,0); }
.weather-rain-particles.heavy-rain i { width:2px; height:16px; transform:translate3d(0,0,0) rotate(-15deg); }
.weather-lightning { position:absolute; z-index:1; right:24%; top:60%; width:34px; height:62px; overflow:visible; fill:#ffea8a; filter:drop-shadow(0 0 8px rgba(255,231,116,.48)); opacity:0; pointer-events:none; animation:weatherLightning 7.4s linear infinite; }
.weather-refresh-button { margin-left:auto; width:32px; height:32px; padding:0; display:grid; place-items:center; border:0; border-radius:9px; background:rgba(255,255,255,.2); color:#fff; box-shadow:none; }
.weather-refresh-button:hover { background:rgba(255,255,255,.34); transform:none; filter:none; }
.weather-refresh-button svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round; }
.weather-scene-snow circle { animation: weatherSnow 5s ease-in-out infinite; }
.weather-unavailable { flex: 1; display: flex; flex-direction: column; justify-content: center; gap: 7px; color: #475467; }.weather-unavailable strong { color: #24364d; font-size: 18px; }.weather-unavailable p { margin: 0 0 10px; }
.weather-actions { display: flex; gap: 8px; }.weather-actions button { min-height: 34px; padding: 0 10px; border: 1px solid #dce4ef; background: #f8fafc; color: #47617c; }

.ai-dashboard-copy { position: relative; z-index: 2; display: grid; gap: 10px; width: 66%; }.ai-dashboard-copy > strong { color: var(--dashboard-ink); font-size: 22px; }.ai-dashboard-copy p { color: var(--dashboard-muted); font-size: 13px; line-height: 1.6; }.ai-dashboard-avatar { position: absolute; right: 10px; bottom: 8px; width: 145px; height: 145px; opacity: .92; animation: dashboardFloat 10s ease-in-out infinite; }.ai-dashboard-avatar-art { width: 100%; height: 100%; }
.dashboard-banner-link { display: contents; }.dashboard-banner-image { width: 100%; flex: 1; min-height: 0; object-fit: cover; border-radius: 13px; }

.dashboard-edit-actions { display: flex; align-items: center; gap: 8px; }
.dashboard-ghost-button { min-height: 38px; gap: 7px; padding: 0 13px; border: 1px solid #dfe5ec; border-radius: 10px; background: rgba(255,255,255,.75); color: #344054; }
.dashboard-ghost-button:hover { background: #f5f7fa; filter: none; }.dashboard-ghost-button svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.dashboard-widget.is-editing { padding-top: 58px; border-style: dashed; cursor: grab; }
.dashboard-edit-shell { position: relative; margin-top: 4px; padding: 14px; border: 1px solid transparent; border-radius: 24px; background: linear-gradient(#f8fafc,#f8fafc) padding-box,linear-gradient(110deg,rgba(95,155,255,.42),rgba(202,129,227,.34),rgba(111,175,223,.4)) border-box; }
.dashboard-edit-shell::before { content: ""; position: absolute; inset: -5px; z-index: -1; border-radius: 28px; background: linear-gradient(90deg,rgba(99,156,255,.08),rgba(205,132,229,.08)); filter: blur(12px); }
.edit-mode-label { display: inline-flex; align-items: center; min-height: 30px; padding: 0 10px; border-radius: 999px; background: #eef4ff; color: #315fae; font-size: 12px; }
.edit-mode-label.is-dirty::after { content: "未保存"; margin-left: 7px; color: #9b5a1d; }
.dashboard-widget.is-editing:active { cursor: grabbing; }.dashboard-widget.is-drag-over { outline: 3px solid rgba(74,141,255,.28); outline-offset: 3px; }.dashboard-widget.is-dragging { opacity: .45; }
.widget-tools { position: absolute; z-index: 10; inset: 10px 10px auto; min-height: 36px; margin: 0; display: flex; align-items: center; justify-content: flex-end; gap: 5px; padding-bottom: 8px; border-bottom: 1px dashed #e2e8f0; }
.widget-drag-handle { width: 30px; height: 30px; margin-right: auto; display: grid; place-items: center; color: #8592a3; cursor: grab; }.widget-drag-handle svg { width: 18px; height: 18px; }
.widget-tools select { width: auto; min-height: 30px; padding: 0 25px 0 8px; font-size: 11px; }
.widget-tool-button { width: auto; min-height: 30px; padding: 0 8px; border: 1px solid #e2e8f0; background: #fff; color: #566477; font-size: 11px; }.widget-tool-button.danger { color: #b42318; background: #fff5f3; }
.add-widget { height: var(--dashboard-card-height); min-height: 0; display: grid; gap: 9px; place-content: center; justify-items: center; border: 1px dashed #bdc8d6; border-radius: 20px; background: rgba(255,255,255,.5); color: #667085; font-size: 14px; }.add-widget svg { width: 28px; height: 28px; }

.widget-sheet-dialog { width: 100vw; max-width: none; height: 100vh; max-height: none; margin: 0; padding: 0; border: 0; background: transparent; overflow: hidden; }
.widget-sheet-dialog[open] { display: flex; align-items: flex-end; }
.widget-sheet-dialog::backdrop { background: rgba(22,34,52,.14); backdrop-filter: blur(4px); }
.widget-library-sheet { position: relative; width: 100%; max-height: min(58vh,580px); display: flex; flex-direction: column; gap: 12px; margin: 0; padding: 18px clamp(18px,3vw,42px) 20px; border: 1px solid rgba(218,226,236,.88); border-radius: 24px 24px 0 0; background: linear-gradient(180deg,rgba(249,252,255,.76) 0%,rgba(249,252,255,.91) 108px,rgba(250,252,255,.985) 48%); -webkit-backdrop-filter: blur(18px) saturate(1.12); backdrop-filter: blur(18px) saturate(1.12); box-shadow: 0 -10px 32px rgba(34,49,70,.08); animation: widgetSheetIn 220ms ease-out; }
.widget-library-sheet-head { display: flex; align-items: center; gap: 14px; }.widget-library-sheet-head h3 { margin: 0; }.widget-library-sheet-head p { margin: 2px 0 0; color: #667085; font-size: 12px; }
.widget-library-toolbar { display: flex; align-items: center; gap: 12px; }.widget-library-tabs { flex: 1; display: flex; gap: 6px; overflow-x: auto; }.widget-library-tabs button { min-height: 34px; padding: 0 12px; border: 1px solid transparent; background: transparent; color: #5e6d80; white-space: nowrap; }.widget-library-tabs button.active { border-color: #d7e3f7; background: #edf4ff; color: #315fae; }.widget-library-search { width: min(280px,28vw); min-height: 36px; }
.widget-library { min-height: 0; flex: 1; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); grid-auto-rows: 190px; align-items: stretch; gap: 12px; overflow-y: auto; padding: 2px 4px 8px; }
.widget-library .widget-library-card { min-width: 0; min-height: 0; height: 190px; display: grid; grid-template-columns: minmax(0,1fr); grid-template-rows: 110px minmax(0,1fr); align-items: stretch; gap: 9px; padding: 10px; border: 1px solid rgba(222,229,238,.94); border-radius: 16px; background: rgba(255,255,255,.88); color: #344054; text-align: left; overflow: hidden; }.widget-library .widget-library-card:hover { border-color: #c9d8ee; background: rgba(255,255,255,.96); filter: none; }.widget-library .widget-library-card:disabled { opacity: .55; cursor: not-allowed; }
.widget-library-card-meta { min-width: 0; display: grid; gap: 4px; }.widget-library-card-meta strong { color: #182230; }.widget-library-card-meta small { overflow: hidden; color: #667085; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }.widget-library-card-meta em { width: fit-content; padding: 3px 7px; border-radius: 999px; background: #f0f5fb; color: #4b6a91; font-size: 10px; font-style: normal; }
.widget-mini-preview { position: relative; overflow: hidden; padding: 12px; border: 1px solid #e4eaf2; border-radius: 13px; background: linear-gradient(145deg,#fff,#f5f8fc); }.widget-mini-preview.preview-theme-report { background: linear-gradient(145deg,#edf5ff,#e7edff); }.widget-mini-preview.preview-theme-inventory { background: linear-gradient(145deg,#fff9f1,#ffeedb); }.widget-mini-preview.preview-theme-todo { background: linear-gradient(145deg,#f8f3ff,#ece7ff); }.widget-mini-preview.preview-theme-gift { background: linear-gradient(145deg,#fff4fb,#f6e9ff); }.widget-mini-preview.preview-theme-weather { background: linear-gradient(145deg,#6f90e6,#7bb8e2); }.preview-head { position: relative; z-index: 2; display: flex; gap: 6px; align-items: center; color: #334e70; font-size: 10px; font-weight: 700; }.preview-head svg { width: 13px; height: 13px; fill: none; stroke: currentColor; stroke-width: 1.9; }.preview-content { display: grid; gap: 7px; width: 54%; margin-top: 18px; }.preview-content i { height: 7px; border-radius: 999px; background: rgba(75,102,139,.13); }.preview-content i:nth-child(2){width:78%}.preview-content i:nth-child(3){width:62%}.widget-mini-preview img { position: absolute; right: -5%; bottom: -8%; width: 43%; height: 70%; object-fit: contain; opacity: .4; }
.widget-option-icon svg { width: 22px; height: 22px; }.widget-option-text em { color: #4772b8; font-size: 10px; font-style: normal; font-weight: 700; }
.dashboard-dock-dialog { width: min(720px,calc(100vw - 40px)); }
.quick-dock-selected { min-height: 76px; display: grid; gap: 7px; margin: 14px 0 18px; }
.quick-dock-selected > div { display: grid; grid-template-columns: 28px 38px minmax(100px,.7fr) minmax(150px,1fr) auto; align-items: center; gap: 10px; min-height: 58px; padding: 7px 9px; border: 1px solid #e3e8ef; border-radius: 12px; background: #fff; cursor: grab; }.quick-dock-selected > div.is-drag-over { border-color: #7da9ef; background: #f2f7ff; }.quick-dock-selected > div.is-dragging { opacity: .5; }
.quick-dock-selected input,.quick-dock-selected select { min-width: 0; min-height: 36px; }
.quick-dock-selected .quick-access-icon { width: 36px; height: 36px; border-radius: 10px; }
.quick-dock-selected svg,.quick-dock-available svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.quick-dock-selected button { min-height: 28px; padding: 0 7px; background: #f5f7fa; color: #5d6878; }
.quick-dock-available { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; }.quick-dock-available button { justify-content: flex-start; gap: 8px; min-height: 42px; padding: 0 10px; border: 1px solid #e3e8ef; background: #f8fafc; color: #475467; }
.quick-links-manager-list { min-height: 100px; display: grid; gap: 8px; margin: 14px 0; }
.quick-links-manager-row { display: grid; grid-template-columns: 44px minmax(0,1fr) auto; align-items: center; gap: 11px; padding: 9px 10px; border: 1px solid #e4e9f0; border-radius: 12px; background: #fff; }
.quick-links-manager-icon { width: 42px; height: 42px; display: grid; place-items: center; overflow: hidden; border-radius: 11px; background: #f5f8fc; }.quick-links-manager-icon img { width: 100%; height: 100%; object-fit: contain; }.quick-links-manager-icon i { display: grid; place-items: center; color: #667b95; }.quick-links-manager-icon svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.9; }
.quick-links-manager-row > span:nth-child(2) { min-width: 0; display: grid; gap: 3px; }.quick-links-manager-row strong,.quick-links-manager-row small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.quick-links-manager-row small { color: #667085; }.quick-links-manager-row > div { display: flex; gap: 5px; }.quick-links-manager-row button { min-height: 30px; padding: 0 8px; background: #f6f8fb; color: #566579; }.quick-links-manager-row button.danger { color: #b42318; background: #fff5f3; }
.quick-links-manager-add { width: fit-content; }
.favicon-preview { display: flex; align-items: center; gap: 10px; }.favicon-preview img,.favicon-preview i { width: 38px; height: 38px; display: grid; place-items: center; object-fit: contain; border: 1px solid #e4e9f0; border-radius: 10px; background: #f8fafc; }.favicon-preview i { color: #637992; }.favicon-preview svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.9; }.favicon-preview em { color: #667085; font-size: 12px; font-style: normal; }

.dashboard-skeleton { border-radius: 10px; background: linear-gradient(90deg,#eef1f5 25%,#f8fafc 45%,#eef1f5 65%); background-size: 220% 100%; animation: dashboardSkeleton 1.4s ease-in-out infinite; }
.dashboard-skeleton-head { width: 54%; height: 30px; }.dashboard-skeleton-value { width: 72%; height: 68px; margin-top: 30px; }.dashboard-skeleton-lines { width: 100%; height: 82px; margin-top: 22px; }.weather-skeleton { position: absolute; inset: 70px 20px 20px; }

@keyframes dashboardFloat { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-6px); } }
@keyframes dashboardDrift { 0%,100% { transform: translate3d(0,0,0) scale(1); } 50% { transform: translate3d(-7px,-4px,0) scale(1.035); } }
@keyframes weatherCloud { from { transform:translate3d(-2px,-2px,0); } to { transform:translate3d(3px,3px,0); } }
@keyframes weatherRainParticle { 0% { transform:translate3d(0,0,0) rotate(-12deg); opacity:0; } 14% { opacity:.65; } 78% { opacity:.5; } 100% { transform:translate3d(-5px,var(--rain-distance),0) rotate(-12deg); opacity:0; } }
@keyframes weatherLightning { 0%,61%,68%,100% { opacity:0; } 62% { opacity:.9; } 63% { opacity:.16; } 64% { opacity:1; } 66% { opacity:.08; } }
@keyframes weatherStar { 0%,100% { opacity: .25; transform: scale(.8); } 50% { opacity: .9; transform: scale(1.2); } }
@keyframes weatherSunPulse { 0%,100% { transform: scale(1); opacity:.92; } 50% { transform: scale(1.04); opacity:1; } }
@keyframes weatherSnow { 0%,100% { transform:translate3d(0,0,0); opacity:.55; } 50% { transform:translate3d(-2px,7px,0); opacity:1; } }
@keyframes widgetSheetIn { from { transform: translate3d(0,28px,0); opacity: .7; } to { transform: none; opacity: 1; } }
@keyframes dashboardSkeleton { 0% { background-position: 100% 0; } 100% { background-position: -100% 0; } }

@media (max-width: 1359px) {
  .dashboard-widget-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .widget-quick_dock { grid-column: 1 / -1; }
  .widget-library { grid-template-columns: repeat(3,minmax(0,1fr)); }
}

@media (max-width: 1023px) {
  .dashboard-widget-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .widget-wide,.widget-quick_dock { grid-column: 1 / -1; }
  .widget-library { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 767px) {
  .dashboard-widget-grid { grid-template-columns: minmax(0,1fr); }
  .widget-standard,.widget-wide,.widget-quick_dock { grid-column: span 1; }
  .dashboard-widget { height: auto; min-height: 300px; }
  .widget-quick_dock { min-height: 0; }
  .quick-access-grid { grid-template-columns: repeat(2,minmax(0,106px)); }
  .widget-library { grid-template-columns: 1fr; }
  .widget-library-toolbar { align-items: stretch; flex-direction: column; }.widget-library-search { width: 100%; }.widget-library { grid-auto-rows: 142px; }.widget-library .widget-library-card { height: 142px; grid-template-columns: 130px minmax(0,1fr); grid-template-rows: auto; }
  .quick-dock-available { grid-template-columns: 1fr; }
  .quick-dock-selected > div { grid-template-columns: 28px 38px minmax(0,1fr) auto; }.quick-dock-selected select { grid-column: 3 / -1; }.quick-links-manager-row { grid-template-columns: 42px minmax(0,1fr); }.quick-links-manager-row > div { grid-column: 1 / -1; justify-content: flex-end; }
  .dashboard-hero { align-items: start; }
  .global-search em,.global-search kbd { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .dashboard-widget,.dashboard-widget-illustration,.profit-widget-geometry,.weather-scene-cloud,.weather-scene-sun,.weather-scene-stars circle,.weather-rain-particles i,.weather-lightning,.weather-scene-snow circle,.ai-dashboard-avatar,.dashboard-skeleton,.dashboard-edit-shell,.widget-library-sheet { animation:none!important; transition:none!important; }
}

body.card-shadow-enabled .dashboard-widget { --dashboard-card-shadow: 0 8px 22px rgba(15,23,42,.07); }
body.no-card-shadow .dashboard-widget { --dashboard-card-shadow: 0 0 0 0 transparent; }
body.square-cards .dashboard-widget,
body.square-cards .add-widget { border-radius: 0 !important; }
