/* FreedomOS Coach — Platform tour styles (coach + client view) */
:root{
  --gold:#C5A55A;
  --gold-dark:#A88D44;
  --gold-light:#E8D9B0;
  --gold-bg:#FAF3E2;
  --charcoal:#2D2D2D;
  --charcoal-mid:#4D4D4D;
  --charcoal-light:#6B6B6B;
  --cream:#FAF8F5;
  --cream-warm:#F3EDE2;
  --white:#FFFFFF;
  --border:#E8E2D4;
  --border-soft:#F0EBDF;
  --muted:#8B8170;
  --muted-light:#B0A691;
  --success:#7C9070;
  --success-bg:#E8EFE2;
  --info:#5B7B8C;
  --info-bg:#DCE6EB;
  --warning:#C19756;
  --warning-bg:#F5E9D2;
  --danger:#A8634D;
  --danger-bg:#F4E5DE;
  --shadow:0 2px 8px rgba(45,45,45,0.06), 0 1px 2px rgba(45,45,45,0.04);
  --shadow-lg:0 8px 24px rgba(45,45,45,0.10);
  --radius-sm:6px;
  --radius:10px;
  --radius-lg:14px;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:16px;scroll-behavior:smooth}
body{
  font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;
  background:var(--cream);color:var(--charcoal);line-height:1.55;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
}
a{color:var(--gold-dark);text-decoration:none;transition:color .2s}
a:hover{color:var(--charcoal)}
.serif{font-family:'Playfair Display',Georgia,serif;font-weight:400;letter-spacing:-0.01em}

/* Tour banner */
.tour-banner{
  background:linear-gradient(135deg,#1F1F1F 0%,#2D2D2D 100%);color:var(--gold);
  font-size:11px;padding:6px 24px;text-align:center;letter-spacing:0.18em;text-transform:uppercase;font-weight:600;
}
.tour-banner a{color:var(--gold);text-decoration:underline}

/* Header */
.app-header{
  position:sticky;top:0;z-index:40;
  background:linear-gradient(135deg,#1F1F1F 0%,#2D2D2D 50%,#3A3A3A 100%);
  color:#fff;
  border-bottom:2px solid var(--gold);
  box-shadow:0 2px 16px rgba(0,0,0,0.18);
}
.app-header-inner{
  display:flex;align-items:center;justify-content:space-between;gap:18px;
  padding:14px 24px;max-width:1280px;margin:0 auto;
}
.app-brand{display:flex;align-items:center;gap:14px;color:#fff}
.app-brand:hover{color:#fff}
.app-mark{font-family:'Playfair Display',serif;font-size:22px;color:#fff;font-weight:600}
.app-mark span{color:var(--gold)}
.app-tag{font-size:10px;letter-spacing:0.22em;color:var(--gold);font-weight:600;text-transform:uppercase;padding-left:14px;border-left:1px solid rgba(197,165,90,0.35)}
.role-pill{
  display:inline-flex;align-items:center;gap:8px;
  background:rgba(255,255,255,0.06);border:1px solid rgba(197,165,90,0.4);border-radius:30px;
  padding:6px 14px;font-size:11px;color:var(--gold);letter-spacing:0.08em;font-weight:600;text-transform:uppercase;
}
.role-pill .dot{width:8px;height:8px;border-radius:50%;background:var(--gold)}

/* Layout w/ sidebar */
.app-shell{display:grid;grid-template-columns:240px 1fr;min-height:calc(100vh - 56px - 28px);max-width:1280px;margin:0 auto}
.app-shell.no-sidebar{grid-template-columns:1fr}
.app-sidebar{
  background:#fff;border-right:1px solid var(--border-soft);padding:24px 16px 32px;
  position:sticky;top:78px;height:calc(100vh - 78px - 28px);overflow-y:auto;
}
.nav-group{margin-bottom:24px}
.nav-group-title{font-size:10px;letter-spacing:0.18em;text-transform:uppercase;color:var(--muted);font-weight:700;padding:0 10px 8px}
.nav-item{
  display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:8px;
  color:var(--charcoal-mid);font-size:13.5px;font-weight:500;margin-bottom:2px;transition:all .15s;
}
.nav-item:hover{background:var(--cream-warm);color:var(--charcoal)}
.nav-item.active{background:var(--gold-bg);color:var(--gold-dark);font-weight:600}
.nav-item.active::before{content:"";display:inline-block;width:3px;height:14px;background:var(--gold);border-radius:2px;margin-right:6px}
.nav-icon{width:18px;height:18px;flex-shrink:0;color:currentColor}

.app-main{padding:32px 36px 64px;max-width:none;overflow-x:hidden;background:var(--cream)}
.page-head{margin-bottom:28px;display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:16px;padding-bottom:18px;border-bottom:2px solid var(--gold)}
.page-eyebrow{font-size:11px;letter-spacing:0.18em;text-transform:uppercase;color:var(--gold-dark);font-weight:600;margin-bottom:6px}
.page-title{font-family:'Playfair Display',serif;font-size:32px;color:var(--charcoal);font-weight:600;line-height:1.1;margin:0}
.page-meta{font-size:13px;color:var(--charcoal-mid);text-align:right}

.section{margin-bottom:36px}
.section-title{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:14px}
.section-title h2{font-family:'Playfair Display',serif;font-size:20px;color:var(--charcoal);font-weight:600}
.section-title .meta{font-size:12px;color:var(--muted);letter-spacing:0.04em}

/* KPI strip */
.kpi-row{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin-bottom:32px}
.kpi-card{background:#fff;border:1px solid var(--border-soft);border-radius:var(--radius);padding:16px 18px;border-top:3px solid var(--gold)}
.kpi-card.alt{border-top-color:var(--info)}
.kpi-card.warm{border-top-color:var(--warning)}
.kpi-card.calm{border-top-color:var(--success)}
.kpi-label{font-size:10px;letter-spacing:0.16em;text-transform:uppercase;color:var(--muted);font-weight:600;margin-bottom:6px}
.kpi-value{font-family:'Playfair Display',serif;font-size:28px;color:var(--charcoal);font-weight:600;line-height:1.05}
.kpi-trend{font-size:11.5px;color:var(--success);font-weight:500;margin-top:4px}
.kpi-trend.down{color:var(--danger)}
.kpi-trend.flat{color:var(--muted)}

/* Cards */
.grid-2{display:grid;grid-template-columns:1.4fr 1fr;gap:18px;margin-bottom:32px}
.grid-2-eq{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:32px}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:32px}
.card{background:#fff;border:1px solid var(--border-soft);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
.card-head{padding:18px 20px;border-bottom:1px solid var(--border-soft);display:flex;align-items:center;justify-content:space-between;gap:12px}
.card-title{font-family:'Playfair Display',serif;font-size:17px;color:var(--charcoal);font-weight:600}
.card-eyebrow{font-size:10px;letter-spacing:0.16em;text-transform:uppercase;color:var(--gold-dark);font-weight:600;margin-bottom:4px}
.card-body{padding:18px 20px}
.card-tight{padding:14px 16px}
.card-flat{box-shadow:none;border:1px solid var(--border-soft)}

/* Done-today timeline */
.done-list{display:flex;flex-direction:column;gap:10px}
.done-item{display:flex;align-items:flex-start;gap:14px;padding:14px;border:1px solid var(--border-soft);border-radius:var(--radius-sm);background:#fff;transition:all .2s}
.done-item:hover{border-color:var(--gold-light);background:var(--cream)}
.done-icon{
  width:32px;height:32px;border-radius:8px;background:var(--gold-bg);color:var(--gold-dark);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.done-body{flex:1;min-width:0}
.done-title{font-size:14px;font-weight:600;color:var(--charcoal);margin-bottom:2px}
.done-detail{font-size:12.5px;color:var(--charcoal-mid)}
.done-time{font-size:11px;color:var(--muted);font-weight:500;flex-shrink:0;letter-spacing:0.04em}

/* Activity feed */
.activity{display:flex;flex-direction:column}
.activity-item{display:flex;gap:14px;padding:12px 0;border-bottom:1px solid var(--border-soft);font-size:13px}
.activity-item:last-child{border-bottom:none}
.activity-dot{width:8px;height:8px;border-radius:50%;margin-top:7px;flex-shrink:0;background:var(--gold)}
.activity-dot.calm{background:var(--success)}
.activity-dot.alt{background:var(--info)}
.activity-dot.warm{background:var(--warning)}
.activity-dot.danger{background:var(--danger)}
.activity-text{flex:1;line-height:1.4;color:var(--charcoal-mid)}
.activity-text strong{color:var(--charcoal);font-weight:600}
.activity-time{font-size:11px;color:var(--muted);margin-top:2px}

/* Tables */
.table{width:100%;border-collapse:collapse;font-size:13px}
.table th{text-align:left;padding:10px 14px;font-size:10.5px;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;color:var(--muted);border-bottom:2px solid var(--border)}
.table td{padding:13px 14px;border-bottom:1px solid var(--border-soft);color:var(--charcoal);vertical-align:top}
.table tr:last-child td{border-bottom:none}
.table tr:hover td{background:var(--cream)}
.table .name{font-weight:600;color:var(--charcoal)}
.table .muted{color:var(--muted)}

/* Badges */
.badge{display:inline-block;padding:3px 10px;border-radius:14px;font-size:10.5px;font-weight:700;letter-spacing:0.06em;text-transform:uppercase}
.badge-success{background:var(--success-bg);color:var(--success)}
.badge-info{background:var(--info-bg);color:var(--info)}
.badge-warm{background:var(--warning-bg);color:var(--warning)}
.badge-danger{background:var(--danger-bg);color:var(--danger)}
.badge-muted{background:var(--cream-warm);color:var(--muted)}
.badge-gold{background:var(--gold-bg);color:var(--gold-dark)}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:9px 18px;border-radius:var(--radius-sm);font:inherit;font-size:12.5px;font-weight:600;cursor:pointer;border:none;transition:all .2s;text-decoration:none;line-height:1;letter-spacing:0.02em}
.btn-primary{background:var(--charcoal);color:var(--gold)}
.btn-primary:hover{background:#000;color:var(--gold-light);transform:translateY(-1px)}
.btn-gold{background:var(--gold);color:var(--charcoal)}
.btn-gold:hover{background:var(--gold-dark);color:#fff}
.btn-outline{background:#fff;color:var(--charcoal);border:1px solid var(--border)}
.btn-outline:hover{border-color:var(--gold);color:var(--gold-dark)}
.btn-ghost{background:transparent;color:var(--gold-dark);padding:6px 10px;font-size:11.5px}
.btn-ghost:hover{color:var(--charcoal)}
.btn-sm{padding:6px 12px;font-size:11.5px}

/* Approval queue */
.approve-list{display:flex;flex-direction:column;gap:10px}
.approve-item{
  display:grid;grid-template-columns:1fr auto;gap:14px;align-items:center;
  padding:14px 16px;background:var(--cream-warm);border:1px solid var(--border-soft);border-radius:var(--radius-sm);
}
.approve-title{font-size:13px;font-weight:600;color:var(--charcoal)}
.approve-detail{font-size:12px;color:var(--charcoal-mid);margin-top:2px}
.approve-actions{display:flex;gap:6px}

/* Charts */
.chart-wrap{position:relative;height:240px}
.chart-wrap-tall{position:relative;height:300px}

/* Avatar */
.avatar{
  width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--gold) 0%,var(--gold-dark) 100%);
  color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:13px;flex-shrink:0;
  font-family:'Playfair Display',serif;
}
.avatar.lg{width:64px;height:64px;font-size:22px}
.avatar.sm{width:26px;height:26px;font-size:11px}
.client-row{display:flex;align-items:center;gap:12px}

/* Filter bar */
.filterbar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}
.filter-chip{padding:6px 14px;background:#fff;border:1px solid var(--border);border-radius:30px;font-size:12px;color:var(--charcoal-mid);cursor:pointer;font-weight:500}
.filter-chip:hover{border-color:var(--gold)}
.filter-chip.active{background:var(--charcoal);color:var(--gold);border-color:var(--charcoal)}

/* Telegram thread */
.tg-shell{
  background:linear-gradient(180deg,#E5DDCB 0%,#D8CFB9 100%);
  padding:18px;border-radius:var(--radius);max-height:560px;overflow-y:auto;
}
.tg-day{text-align:center;font-size:11px;color:rgba(45,45,45,0.55);margin:14px 0 10px;font-weight:500;letter-spacing:0.04em}
.tg-msg{max-width:78%;margin-bottom:8px;padding:9px 14px;border-radius:14px;font-size:13.5px;line-height:1.45;word-wrap:break-word;position:relative}
.tg-msg.client{background:#fff;color:var(--charcoal);border-bottom-left-radius:4px;margin-right:auto}
.tg-msg.ai{background:linear-gradient(135deg,#E8D9B0 0%,#C5A55A 100%);color:var(--charcoal);border-bottom-right-radius:4px;margin-left:auto;font-weight:500}
.tg-msg .stamp{display:block;font-size:10px;color:rgba(45,45,45,0.5);margin-top:4px;font-weight:500;letter-spacing:0.02em}
.tg-meta{font-size:11.5px;color:var(--charcoal-mid);font-style:italic;text-align:center;padding:6px 12px;background:rgba(255,255,255,0.55);border-radius:12px;display:inline-block;margin:6px auto;max-width:80%}
.tg-meta-wrap{text-align:center}
.tg-voice{
  display:inline-flex;align-items:center;gap:8px;background:#fff;color:var(--charcoal);
  padding:8px 14px;border-radius:14px;font-size:12.5px;font-style:italic;
}
.tg-voice .wave{display:inline-flex;gap:2px;align-items:center}
.tg-voice .wave span{width:2px;background:var(--gold-dark);border-radius:2px;animation:none}
.tg-voice .wave span:nth-child(1){height:8px}
.tg-voice .wave span:nth-child(2){height:14px}
.tg-voice .wave span:nth-child(3){height:10px}
.tg-voice .wave span:nth-child(4){height:16px}
.tg-voice .wave span:nth-child(5){height:8px}

/* Identity goals / progress */
.goal{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:center;padding:13px 16px;background:#fff;border:1px solid var(--border-soft);border-radius:var(--radius-sm);margin-bottom:8px}
.goal-text{font-size:13.5px;color:var(--charcoal)}
.goal-state{font-size:11px;letter-spacing:0.04em;font-weight:600;color:var(--gold-dark);text-transform:uppercase;white-space:nowrap}

/* Streak dots */
.streak{display:flex;gap:4px;margin-top:6px}
.streak-dot{width:9px;height:9px;border-radius:50%;background:var(--cream-warm)}
.streak-dot.on{background:var(--gold)}

/* Cohort feed */
.feed{display:flex;flex-direction:column;gap:14px}
.post{background:#fff;border:1px solid var(--border-soft);border-radius:var(--radius);padding:18px 20px;transition:all .2s}
.post:hover{border-color:var(--gold-light);box-shadow:var(--shadow)}
.post-head{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.post-meta{flex:1}
.post-author{font-size:13px;font-weight:600;color:var(--charcoal)}
.post-when{font-size:11.5px;color:var(--muted)}
.post-tag{font-size:10px;letter-spacing:0.12em;text-transform:uppercase;color:var(--gold-dark);font-weight:600}
.post-body{font-size:14px;color:var(--charcoal);line-height:1.55;margin-bottom:10px}
.post-body em{color:var(--charcoal-mid)}
.post-actions{display:flex;gap:14px;font-size:12px;color:var(--muted-light);padding-top:10px;border-top:1px solid var(--border-soft)}
.post-actions span{cursor:pointer}
.post-actions span:hover{color:var(--gold-dark)}

.cohort-grid{display:grid;grid-template-columns:1fr 280px;gap:18px}
.cohort-side{display:flex;flex-direction:column;gap:18px}
.member-strip{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.member-strip .avatar.sm{width:30px;height:30px;font-size:12px}

/* Course cards */
.course-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.course{background:#fff;border:1px solid var(--border-soft);border-radius:var(--radius);overflow:hidden;transition:all .2s}
.course:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}
.course-hero{height:170px;background:linear-gradient(135deg,var(--charcoal) 0%,var(--charcoal-mid) 50%,var(--gold-dark) 100%);position:relative;padding:20px;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden}
.course-hero::before{content:"";position:absolute;inset:0;background-repeat:no-repeat;background-position:right -20px top -20px;background-size:200px 200px;opacity:0.45;pointer-events:none;background-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200' fill='none' stroke='%23C5A55A' stroke-width='1.2'%3E%3Ccircle cx='100' cy='100' r='90'/%3E%3Ccircle cx='100' cy='100' r='70'/%3E%3Ccircle cx='100' cy='100' r='50'/%3E%3Ccircle cx='100' cy='100' r='30'/%3E%3Ccircle cx='100' cy='100' r='10' fill='%23C5A55A' fill-opacity='0.5'/%3E%3C/svg%3E")}
.course-hero.alt{background:linear-gradient(135deg,#1F1F1F 0%,#3A3A3A 50%,#5B7B8C 100%)}
.course-hero.alt::before{background-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200' fill='none' stroke='%23C5A55A' stroke-width='1.4'%3E%3Cpath d='M-20 60 Q40 30 100 60 T220 60'/%3E%3Cpath d='M-20 100 Q40 70 100 100 T220 100' stroke-opacity='0.7'/%3E%3Cpath d='M-20 140 Q40 110 100 140 T220 140' stroke-opacity='0.5'/%3E%3Cpath d='M-20 180 Q40 150 100 180 T220 180' stroke-opacity='0.3'/%3E%3C/svg%3E");opacity:0.55}
.course-hero.warm{background:linear-gradient(135deg,#1F1F1F 0%,#3A3A3A 50%,#C19756 100%)}
.course-hero.warm::before{background-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200' fill='%23C5A55A'%3E%3Crect x='10' y='20' width='160' height='3' rx='1.5'/%3E%3Crect x='30' y='40' width='140' height='3' rx='1.5' fill-opacity='0.85'/%3E%3Crect x='50' y='60' width='120' height='3' rx='1.5' fill-opacity='0.7'/%3E%3Crect x='70' y='80' width='100' height='3' rx='1.5' fill-opacity='0.55'/%3E%3Crect x='90' y='100' width='80' height='3' rx='1.5' fill-opacity='0.4'/%3E%3Crect x='110' y='120' width='60' height='3' rx='1.5' fill-opacity='0.25'/%3E%3C/svg%3E");opacity:0.6;background-position:right -10px top -5px}
.course-hero.green{background:linear-gradient(135deg,#1F1F1F 0%,#3A3A3A 50%,#7C9070 100%)}
.course-hero.green::before{background-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200' fill='none' stroke='%23C5A55A' stroke-width='1.3'%3E%3Cpath d='M100 100 m-80 0 a80 80 0 1 1 160 0 a60 60 0 1 1 -120 0 a40 40 0 1 1 80 0 a20 20 0 1 1 -40 0 a10 10 0 1 1 20 0'/%3E%3Ccircle cx='100' cy='100' r='3' fill='%23C5A55A'/%3E%3C/svg%3E");opacity:0.55}
.course-hero h3{font-family:'Playfair Display',serif;font-size:22px;color:#fff;font-weight:600;line-height:1.2;position:relative;z-index:1}
.course-hero .badge{margin-top:8px;align-self:flex-start;background:rgba(255,255,255,0.15);color:var(--gold-light);backdrop-filter:blur(4px);position:relative;z-index:1}
.course-meta{padding:18px 20px;display:flex;justify-content:space-between;align-items:center;font-size:12.5px;color:var(--charcoal-mid)}
.course-meta strong{color:var(--charcoal)}

/* Module rows */
.module-row{
  display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;
  padding:14px 18px;border:1px solid var(--border-soft);border-radius:var(--radius-sm);background:#fff;margin-bottom:8px;
}
.module-row.locked{opacity:0.6;background:var(--cream-warm)}
.module-num{font-family:'Playfair Display',serif;font-size:18px;color:var(--gold-dark);font-weight:600}
.module-title{font-size:13.5px;font-weight:600;color:var(--charcoal)}
.module-detail{font-size:11.5px;color:var(--muted);margin-top:2px}
.lesson-icons{display:flex;gap:4px}
.lesson-icon{width:18px;height:18px;color:var(--muted-light)}

/* Calendar */
.cal-week{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}
.cal-day{background:#fff;border:1px solid var(--border-soft);border-radius:var(--radius-sm);padding:10px;min-height:130px}
.cal-day-head{font-size:10px;letter-spacing:0.12em;text-transform:uppercase;color:var(--muted);font-weight:700;margin-bottom:4px}
.cal-day-num{font-family:'Playfair Display',serif;font-size:18px;color:var(--charcoal);font-weight:600;margin-bottom:8px}
.cal-day.today{background:var(--gold-bg);border-color:var(--gold)}
.cal-event{padding:6px 8px;background:var(--cream-warm);border-radius:4px;font-size:11px;color:var(--charcoal);margin-bottom:4px;border-left:3px solid var(--gold)}
.cal-event-time{font-weight:600}
.cal-month{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-top:18px}
.cal-cell{background:#fff;border:1px solid var(--border-soft);min-height:80px;padding:6px;font-size:11px}
.cal-cell.muted{background:var(--cream-warm);color:var(--muted-light)}
.cal-cell-num{font-family:'Playfair Display',serif;font-size:14px;color:var(--charcoal);margin-bottom:4px}
.cal-dot-row{display:flex;gap:3px;flex-wrap:wrap}
.cal-dot{width:6px;height:6px;border-radius:50%;background:var(--gold)}

/* Wheel of life chart container */
.wheel-wrap{background:#fff;border:1px solid var(--border-soft);border-radius:var(--radius);padding:24px;text-align:center}
.wheel-legend{display:flex;justify-content:center;gap:20px;margin-top:14px;font-size:11.5px;color:var(--charcoal-mid)}
.legend-item{display:flex;align-items:center;gap:6px}
.legend-dot{width:10px;height:10px;border-radius:50%}

/* Reflections */
.reflection{
  display:grid;grid-template-columns:1fr auto;gap:16px;align-items:start;
  padding:16px 18px;background:#fff;border:1px solid var(--border-soft);border-radius:var(--radius-sm);margin-bottom:10px;
}
.reflection-meta{font-size:11px;color:var(--muted);letter-spacing:0.06em;text-transform:uppercase;font-weight:600;margin-bottom:6px}
.reflection-title{font-family:'Playfair Display',serif;font-size:16px;color:var(--charcoal);font-weight:600;margin-bottom:6px}
.reflection-snip{font-size:13.5px;color:var(--charcoal-mid);font-style:italic;line-height:1.55}
.reflection-tags{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}

/* Sessions list */
.sess-list{display:flex;flex-direction:column;gap:8px}
.sess-item{display:grid;grid-template-columns:80px 1fr auto;gap:14px;align-items:center;padding:14px 18px;background:#fff;border:1px solid var(--border-soft);border-radius:var(--radius-sm)}
.sess-date{text-align:center;border-right:1px solid var(--border-soft);padding-right:14px}
.sess-date-day{font-family:'Playfair Display',serif;font-size:24px;color:var(--charcoal);font-weight:600;line-height:1}
.sess-date-mon{font-size:10px;color:var(--muted);letter-spacing:0.12em;text-transform:uppercase;font-weight:600;margin-top:2px}
.sess-title{font-size:14px;font-weight:600;color:var(--charcoal);margin-bottom:2px}
.sess-detail{font-size:12px;color:var(--charcoal-mid)}

/* Action items */
.todo-list{display:flex;flex-direction:column;gap:8px}
.todo{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:12px 16px;background:#fff;border:1px solid var(--border-soft);border-radius:var(--radius-sm)}
.todo-check{width:18px;height:18px;border:2px solid var(--gold);border-radius:50%;flex-shrink:0;background:#fff}
.todo-check.done{background:var(--gold)}
.todo-check.done::after{content:"";position:relative;display:block;width:4px;height:8px;border-right:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(45deg);top:-2px;left:5px}
.todo-text{font-size:13.5px;color:var(--charcoal)}
.todo-text.done{color:var(--muted-light);text-decoration:line-through}

/* Toast */
.toast{
  position:fixed;bottom:24px;right:24px;background:var(--charcoal);color:var(--gold);
  padding:12px 18px;border-radius:8px;font-size:13px;font-weight:500;box-shadow:var(--shadow-lg);z-index:100;
  opacity:0;transform:translateY(8px);transition:all .25s;
}
.toast.show{opacity:1;transform:translateY(0)}

/* Footer */
.app-foot{background:#1F1F1F;color:rgba(255,255,255,0.6);padding:18px 24px;font-size:11.5px;text-align:center;letter-spacing:0.04em}
.app-foot a{color:var(--gold)}

/* Responsive */
@media (max-width:1100px){
  .kpi-row{grid-template-columns:repeat(3,1fr)}
  .grid-2,.grid-2-eq{grid-template-columns:1fr}
  .grid-3{grid-template-columns:1fr}
  .course-grid{grid-template-columns:1fr}
  .cohort-grid{grid-template-columns:1fr}
  .cal-week{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:880px){
  .app-shell{grid-template-columns:1fr}
  .app-sidebar{display:none}
  .app-main{padding:24px 18px 64px}
  .kpi-row{grid-template-columns:repeat(2,1fr)}
  .page-title{font-size:24px}
}

/* Hide tour banner content on print */
@media print{ .tour-banner,.app-header{display:none} }
