.insights-overview{margin:0 0 40px}
.insight-heading{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:14px}
.insight-heading h2{margin:3px 0 0;font-size:23px;letter-spacing:-.02em}
.insight-note{margin:0;max-width:560px;color:var(--muted);font-size:11.5px;line-height:1.5;text-align:right}
.insight-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;margin-bottom:12px}
.insight-metric{padding:17px;border:1px solid var(--line);border-radius:16px;background:var(--paper);box-shadow:var(--shadow)}
.insight-metric span,.insight-metric small{display:block;color:var(--muted)}
.insight-metric span{font-size:11.5px;font-weight:800}
.insight-metric strong{display:block;margin:7px 0 4px;font-size:29px;line-height:1}
.insight-metric small{font-size:10.5px}
.insight-panels{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.55fr);gap:11px}
.insight-panel{min-width:0;padding:18px;border:1px solid var(--line);border-radius:18px;background:var(--paper)}
.insight-panel-head{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-bottom:13px}
.insight-panel-head h3{margin:2px 0 0;font-size:16.5px}
.insight-panel-head small{color:var(--muted);font-size:10px}
.weekly-chart{height:132px;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));align-items:end;gap:6px;padding-top:8px}
.weekly-col{height:100%;display:grid;grid-template-rows:minmax(0,1fr) 16px;align-items:end;gap:4px;min-width:0}
.weekly-bar{display:block;width:100%;min-height:5px;align-self:end;border-radius:5px 5px 2px 2px;background:var(--accent)}
.weekly-bar[data-empty="true"]{background:var(--paper-soft)}
.weekly-col small{overflow:hidden;color:var(--muted);font-size:9px;white-space:nowrap;text-align:center}
.rhythm-list{display:grid;gap:7px}
.rhythm-row{display:grid;grid-template-columns:minmax(155px,1.6fr) repeat(5,minmax(58px,.6fr));gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}
.rhythm-row:last-child{border-bottom:0}
.rhythm-name{display:flex;align-items:center;gap:9px;min-width:0}
.rhythm-name>span{width:30px;height:30px;display:grid;place-items:center;flex:0 0 auto;border-radius:9px;background:var(--paper-soft);font-size:15px}
.rhythm-name strong,.rhythm-name small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rhythm-name strong{font-size:12.5px}
.rhythm-name small{margin-top:2px;color:var(--muted);font-size:9.5px}
.rhythm-stat{min-width:0;text-align:right}
.rhythm-stat span,.rhythm-stat b{display:block}
.rhythm-stat span{color:var(--muted);font-size:8.5px;white-space:nowrap}
.rhythm-stat b{margin-top:3px;font-size:12.5px}

.history-activity-section{margin-top:42px}
.activity-routine-list{display:grid;gap:11px}
.activity-routine-card{padding:18px;border:1px solid var(--line);border-radius:18px;background:var(--paper);box-shadow:var(--shadow)}
.activity-routine-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:13px}
.activity-routine-name{display:flex;align-items:center;gap:10px;min-width:0}
.activity-routine-icon{width:40px;height:40px;display:grid;place-items:center;flex:0 0 auto;border-radius:12px;background:var(--paper-soft);font-size:20px}
.activity-routine-name strong,.activity-routine-name small{display:block}
.activity-routine-name strong{font-size:14px}
.activity-routine-name small{margin-top:2px;color:var(--muted);font-size:10.5px}
.activity-routine-meta{display:flex;align-items:center;justify-content:flex-end;gap:11px;flex-wrap:wrap;color:var(--muted);font-size:10.5px}
.activity-routine-meta span{white-space:nowrap}
.routine-activity{max-width:100%}
.activity-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:7px;color:var(--muted);font-size:10px;font-weight:750}
.activity-scroll{max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:none;padding-bottom:2px}
.activity-scroll::-webkit-scrollbar{display:none}
.activity-grid{display:grid;grid-template-rows:repeat(7,10px);grid-auto-flow:column;grid-auto-columns:10px;gap:3px;width:max-content}
.activity-cell{display:block;width:10px;height:10px;border-radius:2px;background:var(--paper-soft);border:1px solid color-mix(in srgb,var(--line) 82%,transparent)}
.activity-cell.level-1{background:color-mix(in srgb,var(--accent) 56%,var(--paper-soft));border-color:transparent}
.activity-cell.level-2{background:color-mix(in srgb,var(--accent) 78%,var(--paper-soft));border-color:transparent}
.activity-cell.level-3{background:var(--accent-strong);border-color:transparent}
.history-log-section{margin-top:44px}

/* Readability pass across the main LifeHub shell. */
.hero-subtitle,.page-head p{font-size:15px;line-height:1.55}
.eyebrow{font-size:11px;letter-spacing:.13em}
.page-head h1{font-size:44px}
.summary-card{padding:19px 19px 17px}
.summary-label{font-size:13px}
.summary-card strong{font-size:34px}
.summary-card small{font-size:11px}
.section-head h2,.data-panel h2{font-size:23px}
.section-note{font-size:12px}
.routine-title-row h3{font-size:16px}
.status-badge{min-height:24px;padding:0 9px;font-size:10px}
.routine-meta,.routine-next{font-size:12.5px;line-height:1.5}
.button,.filter-chip{font-size:13.5px}
.button-compact{font-size:13px}
.history-row strong{font-size:14px}
.history-row span{font-size:11.5px}
.history-date{font-size:12px}
.data-panel p:not(.eyebrow){font-size:12.5px;line-height:1.55}
.field>span{font-size:12px}
.form-help{font-size:11px;line-height:1.5}

/* Routine detail + cadence suggestion. */
.activity-routine-card.is-interactive{cursor:pointer;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}
.activity-routine-card.is-interactive:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--accent) 34%,var(--line));box-shadow:0 2px 4px rgba(42,50,43,.05),0 14px 34px rgba(42,50,43,.08)}
.activity-routine-card.is-interactive:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 24%,transparent);outline-offset:3px}
.activity-routine-cta{color:var(--accent-strong);font-weight:800}
.cadence-review-badge{display:inline-flex;margin-top:5px;padding:3px 6px;border-radius:999px;background:var(--accent-soft);color:var(--accent-strong);font-size:8px;font-style:normal;font-weight:800;letter-spacing:.02em}

.routine-detail-dialog{width:min(960px,calc(100vw - 36px));max-width:960px;max-height:min(88vh,900px);padding:0;overflow:hidden}
.routine-detail-dialog::backdrop{background:rgba(24,29,25,.34);backdrop-filter:blur(3px)}
.routine-detail-shell{max-height:min(88vh,900px);overflow:auto;padding:24px}
.routine-detail-head{position:sticky;top:-24px;z-index:3;margin:-24px -24px 20px;padding:20px 24px 16px;background:color-mix(in srgb,var(--paper) 94%,transparent);border-bottom:1px solid var(--line);backdrop-filter:blur(14px)}
.routine-detail-title-wrap{display:flex;align-items:center;gap:13px;min-width:0}
.routine-detail-icon{width:46px;height:46px;display:grid;place-items:center;flex:0 0 auto;border-radius:14px;background:var(--paper-soft);font-size:23px}
.routine-detail-head h2{margin:2px 0 0;font-size:28px;letter-spacing:-.025em;overflow-wrap:anywhere}
.routine-detail-subtitle{margin:5px 0 0;color:var(--muted);font-size:11.5px;line-height:1.5}
.detail-stat-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px;margin-bottom:22px}
.detail-stat{min-width:0;padding:13px;border:1px solid var(--line);border-radius:13px;background:var(--paper-soft)}
.detail-stat span,.detail-stat strong{display:block}
.detail-stat span{color:var(--muted);font-size:9px;font-weight:750}
.detail-stat strong{margin-top:5px;font-size:19px;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.detail-section{padding:20px 0;border-top:1px solid var(--line)}
.detail-section-head{display:flex;align-items:end;justify-content:space-between;gap:14px;margin-bottom:12px}
.detail-section-head h3{margin:2px 0 0;font-size:18px;letter-spacing:-.015em}
.detail-section-head small{color:var(--muted);font-size:10px;text-align:right}
.cadence-suggestion{padding:15px 16px;border:1px solid var(--line);border-radius:14px;background:var(--paper-soft)}
.cadence-suggestion strong{display:block;font-size:13px}
.cadence-suggestion p{margin:5px 0 0;color:var(--muted);font-size:11.5px;line-height:1.55}
.cadence-suggestion.is-review{border-color:color-mix(in srgb,var(--accent) 38%,var(--line));background:color-mix(in srgb,var(--accent-soft) 72%,var(--paper))}
.cadence-suggestion.is-review strong{color:var(--accent-strong)}
.cadence-suggestion.is-aligned{background:color-mix(in srgb,var(--accent-soft) 46%,var(--paper))}
.cadence-suggestion.is-aligned strong{color:var(--accent-strong)}
.routine-activity-year .activity-head{font-size:11px;margin-bottom:9px}
.activity-grid-year{grid-template-rows:repeat(7,11px);grid-auto-columns:11px;gap:3px}
.activity-grid-year .activity-cell{width:11px;height:11px;border-radius:2.5px}
.detail-record-list{display:grid;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.detail-record-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 13px;background:var(--paper);border-bottom:1px solid var(--line)}
.detail-record-row:last-child{border-bottom:0}
.detail-record-row strong{font-size:12px;font-weight:700}
.detail-record-row span{color:var(--muted);font-size:10.5px;text-align:right}
.detail-record-empty{margin:0;padding:16px;color:var(--muted);font-size:11.5px}
.routine-detail-actions{position:sticky;bottom:-24px;z-index:3;margin:4px -24px -24px;padding:15px 24px 20px;background:color-mix(in srgb,var(--paper) 94%,transparent);border-top:1px solid var(--line);backdrop-filter:blur(14px)}

@media(max-width:900px){
  .insight-panels{grid-template-columns:1fr}
  .rhythm-row{grid-template-columns:minmax(155px,1.5fr) repeat(5,minmax(54px,.6fr))}
  .detail-stat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}

@media(max-width:680px){
  .insight-heading{align-items:flex-start;flex-direction:column;gap:5px}
  .insight-note{text-align:left}
  .insight-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .insight-metric{padding:14px;box-shadow:none}
  .insight-metric span{font-size:10.5px}
  .insight-metric small{font-size:9.5px}
  .insight-panel{padding:14px}
  .rhythm-list{overflow-x:auto;scrollbar-width:none}
  .rhythm-list::-webkit-scrollbar{display:none}
  .rhythm-row{min-width:660px}
  .weekly-chart{height:118px;gap:4px}
  .activity-routine-card{padding:14px;box-shadow:none}
  .activity-routine-head{align-items:flex-start;flex-direction:column;gap:8px}
  .activity-routine-meta{justify-content:flex-start;gap:8px}
  .activity-grid{grid-template-rows:repeat(7,9px);grid-auto-columns:9px;gap:3px}
  .activity-cell{width:9px;height:9px}
  .activity-head{font-size:9px}
  .hero-subtitle,.page-head p{font-size:13.5px}
  .page-head h1{font-size:34px}
  .section-head h2,.data-panel h2{font-size:20px}
  .routine-meta,.routine-next{font-size:11.5px}
  .activity-routine-cta{width:100%;margin-top:2px}
  .routine-detail-dialog{width:calc(100vw - 20px);max-height:92vh}
  .routine-detail-shell{max-height:92vh;padding:16px}
  .routine-detail-head{top:-16px;margin:-16px -16px 16px;padding:16px}
  .routine-detail-icon{width:40px;height:40px;font-size:20px}
  .routine-detail-head h2{font-size:23px}
  .detail-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
  .detail-stat{padding:11px}
  .detail-stat strong{font-size:17px}
  .detail-section-head{align-items:flex-start;flex-direction:column;gap:3px}
  .detail-section-head small{text-align:left}
  .activity-grid-year{grid-template-rows:repeat(7,10px);grid-auto-columns:10px;gap:3px}
  .activity-grid-year .activity-cell{width:10px;height:10px}
  .detail-record-row{align-items:flex-start;flex-direction:column;gap:3px}
  .detail-record-row span{text-align:left}
  .routine-detail-actions{bottom:-16px;margin:4px -16px -16px;padding:13px 16px 16px}
}

@media(max-width:420px){
  .insight-metric strong{font-size:24px}
  .insight-panel-head{align-items:flex-start;flex-direction:column;gap:2px}
}

/* Centered shell + floating navigation anchored to the content column. */
@media(min-width:1480px){
  .sidebar{
    inset:28px auto auto max(22px,calc(50% - 768px));
    width:170px;
    height:auto;
    max-height:calc(100vh - 56px);
    padding:13px 11px 11px;
    border:1px solid var(--line);
    border-radius:20px;
    background:color-mix(in srgb,var(--paper) 91%,transparent);
    box-shadow:0 14px 40px rgba(42,50,43,.10);
    backdrop-filter:blur(18px);
    overflow:auto;
  }
  .brand{padding:6px 7px 13px;margin:0 0 10px;border-bottom:1px solid var(--line);gap:9px}
  .brand-mark{width:31px;height:31px;font-size:19px;flex:0 0 auto}
  .brand strong{font-size:15px}
  .brand small{font-size:7px;letter-spacing:.13em}
  .side-nav{gap:4px}
  .nav-label{padding:4px 8px 5px;font-size:9px}
  .nav-item{min-height:41px;padding:0 9px;border-radius:11px;font-size:13px;gap:8px}
  .nav-item>span:first-child{width:18px;font-size:16px}
  .sidebar-foot{margin-top:11px;padding:11px 7px 3px;font-size:9.5px;line-height:1.45}
  .app-shell{
    width:min(1140px,calc(100% - 64px));
    max-width:none;
    margin:0 auto;
    padding:44px 0 84px;
  }
  .view{width:100%;max-width:none;margin:0}
}

@media(min-width:681px) and (max-width:1479px){
  body{padding-bottom:78px}
  .sidebar{display:none}
  .mobile-header{
    position:sticky;
    top:0;
    z-index:30;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    min-height:64px;
    padding:10px max(20px,calc((100% - 1080px)/2));
    background:color-mix(in srgb,var(--bg) 88%,transparent);
    border-bottom:1px solid var(--line);
    backdrop-filter:blur(12px);
  }
  .mobile-brand strong{font-size:16px}
  .app-shell{
    width:min(1080px,calc(100% - 48px));
    max-width:none;
    margin:0 auto;
    padding:32px 0 96px;
  }
  .view{width:100%;max-width:none;margin:0}
  .bottom-nav{
    position:fixed;
    z-index:40;
    left:50%;
    right:auto;
    bottom:16px;
    transform:translateX(-50%);
    display:grid;
    grid-template-columns:repeat(3,1fr);
    width:min(380px,calc(100% - 32px));
    min-height:60px;
    padding:5px;
    border:1px solid var(--line);
    border-radius:18px;
    background:color-mix(in srgb,var(--paper) 94%,transparent);
    box-shadow:0 14px 40px rgba(0,0,0,.16);
    backdrop-filter:blur(16px);
  }
  .bottom-nav-item{
    border:0;
    border-radius:13px;
    background:transparent;
    color:var(--muted);
    display:grid;
    place-items:center;
    align-content:center;
    gap:2px;
    min-height:48px;
  }
  .bottom-nav-item>span{font-size:19px;line-height:1}
  .bottom-nav-item small{font-size:10px;font-weight:800}
  .bottom-nav-item.is-active{background:var(--accent-soft);color:var(--accent-strong)}
}

@media(max-width:680px){
  .app-shell{width:auto;max-width:none;margin-left:0}
  .bottom-nav{transform:none;width:auto}
}
