/* People, Habits, Calendar and Today share the Hub's landscape and typography. */
.life-space { --life-soft: #c7d5ba; --life-green: #435747; }
.life-space .page-heading { margin-bottom: .8rem; }
.life-space .page-heading h1 { font-size: 2.15rem; }
.life-space button { letter-spacing: 0; }
.life-panel { background: #1b211ee8; border: 1px solid var(--line); padding: 1.5rem; margin-bottom: 1.25rem; min-width: 0; }
.life-section-heading { display: flex; align-items: center; justify-content: space-between; gap: .8rem; margin-bottom: 1.1rem; }
.life-section-heading h2 { font-size: 1.8rem; margin: 0; }
.life-inline-link { color: var(--accent); font-size: .8rem; white-space: nowrap; }
.life-empty { padding: 1.8rem 1rem; text-align: center; }
.life-empty-mark { display: block; color: var(--accent); font-size: 1.5rem; margin-bottom: .75rem; }
.life-empty h3 { font: 1.7rem var(--serif); }
.life-empty p { max-width: 400px; margin: .65rem auto 1rem; font-size: .9rem; }
.life-empty button { margin-top: .5rem; }
.life-subnav { display: flex; flex-wrap: wrap; gap: .4rem; }
.life-subnav button { padding: .55rem .9rem; }
.life-avatar { width: 46px; height: 46px; border-radius: 50%; background: #cbdab217; color: #d0dbc5; display: inline-flex; align-items: center; justify-content: center; flex: 0 0 46px; font: 1.15rem var(--serif); border: 1px solid #d5dcb42b; }
.life-avatar.organisation { border-radius: 6px; background: #eab48112; color: var(--accent); }
.life-contact-list { border-top: 1px solid var(--line); }
.life-contact-row { display: flex; gap: 1rem; align-items: center; width: 100%; text-align: left; border: 0; border-bottom: 1px solid var(--line); padding: 1.1rem .65rem; border-radius: 0; background: #171e198a; }
.life-contact-row:hover { background: #d8c3a80a; }
.life-row-main { min-width: 0; flex: 1; }
.life-row-main strong,.life-row-main>a,.life-text-button { font-weight: 550; font-size: .95rem; color: var(--paper); }
.life-row-main small,.life-import-list small { display: block; font-size: .78rem; color: var(--muted); overflow-wrap: anywhere; }
.life-contact-city { min-width: 90px; font-size: .8rem; color: var(--muted); }
.life-contact-circles { display: flex; gap: .3rem; }
.life-star { color: var(--accent); margin-left: .25rem; }
.life-pagination,.life-bottom-bar { display: flex; align-items: center; justify-content: space-between; gap: .8rem; margin: 1rem 0; color: var(--muted); font-size: .8rem; }
.life-bottom-bar { border-top: 1px solid var(--line); padding-top: 1rem; margin-top: 2rem; }
.life-pagination>div,.life-bottom-bar>div { display: flex; gap: .5rem; }
.life-profile-top { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.life-text-button { background: transparent; padding: 0; border: 0; min-height: 24px!important; text-align: left; }
.life-profile-heading { display: flex; align-items: center; gap: 1.2rem; margin: 2rem 0 1rem; }
.life-profile-heading .life-avatar { width: 76px; height: 76px; flex-basis: 76px; font-size: 2.1rem; }
.life-profile-heading h2 { font-size: clamp(2.3rem,4vw,3.7rem); margin: 0 0 .4rem; overflow-wrap: anywhere; }
.life-profile-heading p { margin-bottom: .3rem; }
.life-pills { display: flex; flex-wrap: wrap; gap: .4rem; margin-bottom: 1.5rem; }
.life-profile-grid { display: grid; grid-template-columns: 1fr 1.15fr; gap: 1.2rem; align-items: start; }
.life-profile-grid>div { min-width: 0; }
.life-details { display: grid; grid-template-columns: 75px minmax(0,1fr); gap: .7rem; font-size: .9rem; }
.life-details dt { color: var(--muted); font-size: .8rem; }
.life-details dd { margin: 0; overflow-wrap: anywhere; }
.life-details a { color: var(--life-soft); }
.life-note { padding: 1rem; background: #d3c4a508; border-left: 2px solid #d7c4a447; white-space: pre-wrap; overflow-wrap: anywhere; color: #d2d0c7; font-size: .9rem; }
.life-list-row { display: flex; align-items: center; gap: .8rem; padding: .95rem 0; border-bottom: 1px solid var(--line); }
.life-list-row:last-child { border: 0; }
.life-check { min-width: 37px; width: 37px; height: 37px; min-height: 37px!important; border-radius: 50%; padding: 0; font-size: 1.2rem!important; color: var(--accent); flex-shrink: 0; }
.life-check.checked { background: var(--life-green); border-color: #adbea356; color: #e2e8d9; }
.life-timeline { border-left: 1px solid #c8ceaa36; margin-left: .35rem; padding-left: 1.2rem; }
.life-timeline article { padding: 0 0 1.5rem; position: relative; }
.life-timeline article:before { content: ''; position: absolute; left: -1.45rem; top: .35rem; width: 7px; height: 7px; background: var(--accent); border-radius: 50%; }
.life-timeline-date { font-size: .75rem; color: var(--accent); margin-bottom: .6rem; }
.life-timeline p { white-space: pre-wrap; overflow-wrap: anywhere; font-size: .92rem; }
.life-finance-total { display: grid; gap: .15rem; font-size: .8rem; padding-block: .5rem; border-bottom: 1px solid var(--line); }
.life-finance-total strong { color: var(--paper); font-weight: 500; }
.life-delete { font-size: .8rem!important; color: #e9af97; border-color: #e9af972e; }
.life-form { max-width: none; }
.life-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.life-form .hub-actions { margin-top: .5rem; }
.life-form input[type=checkbox],.life-space input[type=checkbox] { width: auto; accent-color: var(--accent); }
.life-weekdays { display: flex; gap: .65rem; flex-wrap: wrap; padding: 1rem; border: 1px solid var(--line); }
.life-weekdays legend { font-size: .85rem; color: var(--muted); }
.life-weekdays label { display: flex; align-items: center; font-size: .85rem; }
.life-import-list { max-height: 320px; overflow-y: auto; border: 1px solid var(--line); padding: .75rem; margin: 1rem 0; }
.life-import-list>div,.life-import-list>label { padding: .55rem; border-bottom: 1px solid var(--line); }
.life-duplicate { padding: 1rem; border: 1px solid var(--accent); color: var(--accent); }
.life-habits-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem; }
.life-habit { padding: 1.4rem; background: #202821c9; border: 1px solid var(--line); min-width: 0; }
.life-habit.is-complete { border-color: #83977566; background: #2935298c; }
.life-habit-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.life-habit-heading h3 { font: 1.7rem var(--serif); overflow-wrap: anywhere; }
.life-habit-heading .eyebrow { font-size: .65rem; margin-bottom: .3rem; }
.life-habit-progress { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .5rem; margin: 1rem 0 .6rem; }
.life-habit-progress strong { font-size: .9rem; font-weight: 500; }
.life-habit-progress span { font-size: .75rem; color: var(--muted); }
.life-progress-track { height: 3px; background: #ffffff15; overflow: hidden; }
.life-progress-track span { display: block; height: 100%; background: #b2c6a0; }
.life-minimum { font-size: .8rem; color: var(--accent); margin: .65rem 0; }
.life-heatmap { display: grid; grid-template-columns: repeat(14,minmax(0,1fr)); gap: 4px; margin-top: 1.4rem; }
.life-heatmap button { padding: 0; min-height: 0!important; height: auto; aspect-ratio: 1; border: 1px solid #ffffff16; background: #ffffff08; border-radius: 2px; }
.life-heatmap button.done { background: #afc498; border-color: #afc498; }
.life-heatmap button.paused { background: repeating-linear-gradient(45deg,#ffffff14,#ffffff14 2px,transparent 2px,transparent 5px); }
.life-heatmap button.rest { opacity: .35; }
.life-habit .hub-actions { margin-top: 1rem; gap: .5rem; }
.life-habit .hub-actions button { font-size: .73rem; padding: .4rem .7rem; }
.life-today-hero { display: grid; grid-template-columns: 1.3fr 1fr; gap: 2rem; align-items: center; padding: 2rem; margin-bottom: 1.5rem; background: linear-gradient(90deg,#1c2923f5 10%,#26352ecf), url('/assets/hero.jpg?v=965c2bcebdd7f9637e41a5d234129e2cb193cd595ad163b57babd814191205e6') center 57% / cover; border: 1px solid #dbbd8d36; }
.life-today-hero h2 { font-size: clamp(2.2rem,3.5vw,3rem); margin-bottom: .75rem; }
.life-today-hero p { max-width: 370px; font-size: .9rem; }
.life-today-stats { display: grid; grid-template-columns: repeat(3,1fr); gap: 1rem; }
.life-stat { padding-left: 1rem; border-left: 1px solid #f0e5ce33; }
.life-stat span { color: #d5caba; font-size: .68rem; display: block; }
.life-stat strong { font: 2.7rem var(--serif); display: block; margin: .25rem 0; }
.life-stat small { color: #c4c9b7; font-size: .68rem; display: block; }
.life-today-grid { display: grid; grid-template-columns: minmax(0,1.45fr) minmax(0,1fr); gap: 1.25rem; align-items: start; }
.life-today-grid .life-habit { padding: 1rem; margin-bottom: .7rem; }
.life-today-grid .life-habit:last-child { margin-bottom: 0; }
.life-event-row { display: flex; align-items: center; gap: 1rem; width: 100%; text-align: left; padding: 1rem 0; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; }
.life-event-time { color: var(--accent); font-size: .8rem; min-width: 52px; }
.life-birthday-row { display: flex; align-items: center; gap: .9rem; padding: .7rem 0; }
.life-birthday-row>span { color: var(--accent); font-size: 1.5rem; }
.life-birthday-row strong,.life-admin-row strong { font-size: .9rem; font-weight: 500; }
.life-birthday-row small,.life-admin-row small { display: block; font-size: .75rem; color: var(--muted); }
.life-admin-row { display: block; padding: .7rem 0; border-bottom: 1px solid var(--line); }
.life-quick-links { display: flex; flex-wrap: wrap; gap: 1rem; font-size: .85rem; color: var(--accent); }
.life-calendar-controls { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 1rem; margin: 1.4rem 0; }
.life-calendar-controls>label { font-size: .75rem; }
.life-calendar-controls .hub-actions { flex-wrap: wrap; }
.life-calendar-legend { display: flex; align-items: center; flex-wrap: wrap; gap: 1.5rem; font-size: .8rem; padding: 1rem 0; }
.life-calendar-legend i { width: 8px; height: 8px; border-radius: 50%; background: var(--accent); display: inline-block; margin-right: .4rem; }
.life-calendar-grid { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.life-calendar-day { min-width: 0; min-height: 130px; padding: .35rem; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: #1b211edb; }
.life-calendar-grid.week .life-calendar-day { min-height: 320px; }
.life-calendar-day.outside { background: #1117109e; color: var(--muted); }
.life-calendar-day.is-today { background: #34433387; }
.life-day-heading { display: flex; flex-direction: column; align-items: center; border: 0; width: 100%; padding: .4rem .2rem; }
.life-day-heading span { font-size: .6rem; text-transform: uppercase; color: var(--muted); }
.life-day-heading strong { font: 1.55rem var(--serif); }
.life-calendar-event { display: grid; gap: .15rem; width: 100%; padding: .45rem!important; margin-top: .3rem; text-align: left; background: #eab48115; border: 0; border-left: 2px solid var(--accent); border-radius: 2px; font-size: .72rem!important; overflow-wrap: anywhere; line-height: 1.4; }
.life-calendar-event small { color: var(--accent); font-size: .65rem; }
.life-birthday { display: block; background: #b1c69010; border-left: 2px solid #b1c690; font-size: .7rem; line-height: 1.4; padding: .4rem; margin-top: .4rem; overflow-wrap: anywhere; }
.life-agenda-day { margin-bottom: 1.5rem; }
.life-agenda-day>h3 { font-size: .8rem; color: var(--accent); }
@media(max-width:1150px) { .life-today-hero { grid-template-columns: 1fr; } .life-today-stats { max-width: 420px; } .life-contact-circles { display: none; } .life-profile-grid,.life-today-grid { grid-template-columns: 1fr; } }
@media(max-width:850px) { .life-habits-grid { grid-template-columns: 1fr; } .life-calendar-grid.week { grid-template-columns: 1fr; } .life-calendar-grid.week .life-calendar-day { min-height: 80px; } .life-calendar-grid.week .life-day-heading { flex-direction: row; gap: .5rem; justify-content: flex-start; width: auto; } }
@media(max-width:550px) { .life-panel { padding: 1rem; } .life-section-heading { flex-wrap: wrap; } .life-form-grid { grid-template-columns: 1fr; } .life-today-hero { padding: 1.4rem; } .life-contact-row { gap: .7rem; padding-inline: 0; } .life-contact-city { display: none; } .life-profile-top { align-items: flex-start; } .life-profile-heading .life-avatar { width: 56px; height: 56px; flex-basis: 56px; } .life-calendar-grid.month .life-calendar-day { min-height: 95px; padding: .15rem; } .life-calendar-event { font-size: .62rem!important; padding: .25rem!important; } .life-calendar-grid.month .life-birthday { font-size: .6rem; padding: .2rem; } .life-bottom-bar { flex-wrap: wrap; } .life-today-stats { gap: .6rem; } .life-stat { padding-left: .7rem; } .life-list-row { flex-wrap: wrap; } }

.life-calendar-status{padding:1rem;border:1px solid var(--line);border-radius:12px;margin:1rem 0}.life-calendar-status p{margin:.25rem 0}.life-form fieldset{border:1px solid var(--line);border-radius:12px;padding:1rem}.life-form legend{color:var(--accent);font-size:.9rem;padding:0 .4rem}
@media(max-width:720px){.sidebar nav{flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;gap:1.3rem;padding-bottom:.4rem}.sidebar nav a{flex:0 0 auto;white-space:nowrap}.sidebar{min-width:0}.life-calendar-controls .hub-actions{flex-wrap:wrap}}

/* Planned time and reminders use the same quiet, private workspace surfaces. */
.life-plan-actions { display: flex; align-items: center; flex-wrap: wrap; gap: .65rem 1rem; margin-top: 1rem; }
.life-plan-actions>button { font-size: .76rem; padding: .4rem .7rem; }
.life-plan-actions .life-planned-summary { color: var(--life-soft); font-size: .76rem; padding: 0; }
.life-plan-source { display: grid; gap: .4rem; margin-block: 1rem; padding: 1rem; border-left: 2px solid var(--life-soft); background: #b1c6900d; }
.life-plan-source>span { color: var(--life-soft); font-size: .76rem; }
.life-plan-source>a { color: var(--paper); text-decoration: underline; text-underline-offset: .2em; overflow-wrap: anywhere; }
.life-plan-source>small { color: var(--muted); font-size: .76rem; }
.life-planned-blocks { max-height: 340px; overflow-y: auto; }
.life-form [data-source-field][hidden] { display: none; }
.life-reminder-group { color: var(--life-soft); font: .75rem var(--sans); letter-spacing: .07em; text-transform: uppercase; margin: 1.25rem 0 .45rem; }
.life-reminder { padding: .95rem 0; border-bottom: 1px solid var(--line); }
.life-reminder:last-child { border-bottom: 0; padding-bottom: 0; }
.life-reminder-heading { display: flex; align-items: flex-start; gap: .75rem; justify-content: space-between; }
.life-reminder-heading .life-text-button { overflow-wrap: anywhere; min-width: 0; }
.life-reminder-heading .hub-badge { flex-shrink: 0; }
.life-reminder p { margin: .3rem 0 .1rem; font-size: .78rem; }
.life-reminder>small { color: var(--muted); font-size: .72rem; display: block; }
.life-reminder-actions { display: flex; gap: .35rem; flex-wrap: wrap; margin-top: .65rem; }
.life-reminder-actions button { font-size: .7rem; padding: .35rem .55rem; }
.life-reminder-empty { font-size: .88rem; }
.life-today-grid>div,.life-habit-heading>div { min-width: 0; }
.life-event-row strong,.life-text-button { overflow-wrap: anywhere; }
[data-life-reminders]:focus-visible { outline: 2px solid var(--accent); outline-offset: .4rem; }
@media(max-width:550px) { .life-reminder-heading { flex-wrap: wrap; gap: .4rem; } .life-reminder-actions button { min-height: 40px; } .life-list-row>.life-row-main { flex-basis: 65%; } }

/* Visitor introductions, kept inside the private People workspace. */
.connect-requests > .life-subnav { margin-block: 22px; }
.connect-request-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; margin-block: 22px; }
.connect-request-card { min-width: 0; padding: 26px; border: 1px solid #d8d6c52b; border-radius: 16px; background: linear-gradient(135deg,#f1dec50b,#7185770d); }
.connect-request-card h3 { font: 400 32px/1.15 var(--serif); margin: 16px 0 6px; overflow-wrap: anywhere; }
.connect-request-card .life-section-heading { flex-wrap: wrap; }
.connect-request-card small { color: var(--muted); }
.connect-request-card .connect-request-note { white-space: pre-wrap; overflow-wrap: anywhere; margin-block: 22px; line-height: 1.8; }
.connect-request-card .life-details dd { overflow-wrap: anywhere; }
.connect-request-card .hub-actions { margin-top: 20px; flex-wrap: wrap; }
@media(max-width:900px) { .connect-request-grid { grid-template-columns: 1fr; } .connect-request-card { padding: 20px; } }

/* Compact working headers keep the calendar and daily actions in view. */
.life-space .hub-toolbar{padding-block:.65rem;margin-bottom:.85rem;gap:.65rem}
.life-space .hub-toolbar button{padding:.5rem .7rem;min-height:38px;font-size:.78rem}
.life-space .hub-toolbar>.hub-actions{width:auto}
.life-today-hero{padding:1rem 1.2rem;gap:1rem;grid-template-columns:minmax(0,1fr) auto;border-radius:12px;margin-bottom:1rem}
.life-today-hero .eyebrow{font-size:.7rem;margin:0 0 .55rem}
.life-today-hero .hub-actions button{font-size:.8rem;min-height:38px;padding:.45rem .75rem}
.life-today-stats{gap:.8rem;max-width:none}
.life-stat{padding-left:.8rem}
.life-stat strong{font-size:1.65rem;line-height:1.1;margin:.2rem 0 0}
.life-stat small:empty{display:none}
.life-calendar-controls{margin:.65rem 0;gap:.65rem}
.life-calendar-controls button{min-height:38px;padding:.4rem .65rem;font-size:.8rem}
.life-calendar-controls .life-calendar-range{gap:.4rem}
.life-calendar-range strong{font-size:.9rem;margin-left:.35rem}
.life-calendar-controls>label{display:flex;align-items:center;gap:.5rem;font-size:.7rem}
.life-calendar-controls input{width:146px;min-height:38px;padding:.4rem .6rem;font-size:.75rem}
.life-calendar-meta{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.3rem .8rem;margin-bottom:.6rem}
.life-calendar-legend{padding:.35rem 0;gap:.75rem;font-size:.7rem}
.life-calendar-legend .hub-check{display:flex;align-items:center;width:auto;gap:.4rem;font-size:.7rem;margin:0}
.life-calendar-legend small{font-size:.65rem}
.life-calendar-meta .hint{font-size:.68rem!important;margin:0}
.life-calendar-meta .life-calendar-status{padding:.6rem .8rem;margin:0;font-size:.8rem}
.life-calendar-meta [data-life-calendar-status]:empty{display:none}
@media(max-width:1050px){.life-today-hero{grid-template-columns:1fr}.life-today-stats{display:flex;gap:1.2rem}.life-stat:first-child{border-left:0;padding-left:0}}
@media(max-width:720px){
  .life-space .page-heading h1{font-size:1.9rem}
  .life-space .hub-toolbar{gap:.5rem}
  .life-space .hub-toolbar button{min-height:40px;font-size:.75rem;padding:.45rem .55rem}
  .life-space .hub-toolbar>.hub-actions{gap:.4rem;flex-wrap:wrap}
  .life-calendar-controls{align-items:flex-start}
  .life-calendar-controls>label{font-size:.75rem}
  .life-calendar-controls input{font-size:16px;width:155px}
  .life-calendar-controls button{min-height:40px}
  .life-calendar-range strong{font-size:.82rem}
  .life-calendar-legend .hub-check{min-height:32px}
  .life-today-hero{padding:.85rem 1rem}
  .life-today-stats{gap:.85rem}
}
