/* MSV Goals Module v16 */
.msv-goals-wrap { position:relative; display:flex; flex-direction:column; min-height:100%; height:100%; overflow:hidden; }

/* ── Hero ── */
.msv-goals-topbar { padding:16px 16px 0; display:flex; align-items:flex-start; justify-content:space-between; }
.msv-goals-hero { flex:1; }
.msv-goals-hero-label { font-size:11px; font-weight:500; letter-spacing:1.2px; text-transform:uppercase; color:rgba(255,255,255,0.32); margin-bottom:5px; }
.msv-goals-hero-name { font-size:26px; font-weight:500; color:var(--msv-text); line-height:1.18; }
.msv-goals-accent { color:var(--msv-accent); }
.msv-goals-hero-sub { font-size:13px; color:var(--msv-text-muted); margin-top:6px; line-height:1.6; }
.msv-goals-add-fab { background:rgba(255,255,255,0.1); border:none; border-radius:50%; width:36px; height:36px; color:#fff; font-size:24px; cursor:pointer; display:flex; align-items:center; justify-content:center; flex-shrink:0; margin-top:4px; }
.msv-goals-add-fab:hover { background:rgba(255,255,255,0.2); }
.msv-goals-divider { height:1px; background:rgba(255,255,255,0.07); margin:14px 16px 0; }

/* ── Body ── */
.msv-goals-body { padding:14px 0 80px; }
.msv-goals-loading { display:flex; flex-direction:column; align-items:center; gap:12px; padding:48px 0; color:var(--msv-text-muted); }

/* ── Empty ── */
.msv-goals-empty { display:flex; flex-direction:column; align-items:center; text-align:center; padding:48px 20px; gap:13px; }
.msv-goals-empty-tagline { font-size:18px; font-weight:500; color:var(--msv-text); }
.msv-goals-empty-p { font-size:14px; color:var(--msv-text-muted); line-height:1.65; max-width:270px; }

/* ── Goal Cards ── */
.msv-goal-card { background:var(--msv-card-bg); border:1px solid var(--msv-card-border); border-radius:14px; padding:13px; margin-bottom:9px; }
.msv-goal-card--achieved { border-color:rgba(253,224,71,0.3); }
.msv-goal-card-header { display:flex; align-items:center; gap:8px; margin-bottom:8px; flex-wrap:wrap; }
.msv-goal-scope { font-size:11px; color:var(--msv-text-muted); margin-left:auto; }
.msv-achieved-badge { font-size:11px; font-weight:600; color:#fde047; padding:2px 7px; border-radius:10px; background:rgba(253,224,71,0.12); }
.msv-goal-stmt { font-size:15px; font-weight:500; color:var(--msv-text); line-height:1.45; margin-bottom:9px; }
.msv-goal-footer { display:flex; align-items:center; gap:8px; }
.msv-goal-emo { font-size:16px; }
.msv-goal-checkin-btn { font-size:12px; padding:5px 12px; border-radius:20px; background:rgba(255,255,255,0.08); border:1px solid rgba(255,255,255,0.14); color:var(--msv-text); cursor:pointer; }
.msv-goal-checkin-btn:hover { background:rgba(255,255,255,0.15); }
.msv-goal-menu-btn { font-size:18px; padding:3px 7px; background:transparent; border:none; color:var(--msv-text-muted); cursor:pointer; border-radius:6px; letter-spacing:1px; }
.msv-goal-menu-btn:hover { background:rgba(255,255,255,0.08); }
.msv-goals-add-row-btn { width:100%; padding:12px; background:transparent; border:1px solid rgba(255,255,255,0.12); border-radius:14px; color:var(--msv-text-muted); font-size:13px; cursor:pointer; margin-top:4px; }
.msv-goals-add-row-btn:hover { border-color:rgba(255,255,255,0.25); color:var(--msv-text); }

/* ── Type Badges ── */
.msv-type-badge { display:inline-flex; align-items:center; gap:4px; padding:3px 9px; border-radius:12px; font-size:11px; font-weight:600; }
.msv-badge-process   { background:rgba(96,165,250,0.12);  color:#60a5fa; border:1px solid rgba(96,165,250,0.25); }
.msv-badge-mindset   { background:rgba(167,139,250,0.12); color:#a78bfa; border:1px solid rgba(167,139,250,0.25); }
.msv-badge-technical { background:rgba(52,211,153,0.12);  color:#34d399; border:1px solid rgba(52,211,153,0.25); }
.msv-badge-presence  { background:rgba(251,146,60,0.12);  color:#fb923c; border:1px solid rgba(251,146,60,0.25); }
.msv-badge-north_star{ background:rgba(56,189,248,0.12);  color:#38bdf8; border:1px solid rgba(56,189,248,0.25); }

/* ── North Star Cards ── */
.msv-ns-card { background:rgba(56,189,248,0.07); border:1px solid rgba(56,189,248,0.22); border-radius:16px; padding:14px 16px; margin-bottom:10px; transition:all 0.4s; }
.msv-ns-card--has-goals { border-color:rgba(56,189,248,0.4); background:rgba(56,189,248,0.1); }
.msv-ns-card--branch { margin:0; }
.msv-ns-card-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:7px; }
.msv-ns-label { font-size:10px; font-weight:600; letter-spacing:1px; text-transform:uppercase; color:#38bdf8; }
.msv-ns-stmt { font-size:16px; font-weight:500; color:var(--msv-text); line-height:1.3; }
.msv-ns-pills { display:flex; gap:6px; flex-wrap:wrap; margin-top:7px; }
.msv-ns-pill { font-size:11px; padding:2px 9px; border-radius:9px; background:rgba(56,189,248,0.1); color:#38bdf8; border:1px solid rgba(56,189,248,0.2); }
.msv-ns-pinned { display:flex; flex-direction:column; gap:7px; margin-top:10px; padding-top:10px; border-top:1px solid rgba(56,189,248,0.15); }
.msv-ns-pinned-row { display:flex; align-items:flex-start; gap:9px; animation:msv-pin-in 0.4s cubic-bezier(0.34,1.56,0.64,1); }
@keyframes msv-pin-in { from{opacity:0;transform:translateY(-5px) scale(0.97);}to{opacity:1;transform:none;} }
.msv-ns-pin-dot { width:8px; height:8px; border-radius:50%; flex-shrink:0; margin-top:4px; }
.msv-dot-process  { background:#60a5fa; } .msv-dot-mindset { background:#a78bfa; }
.msv-dot-technical{ background:#34d399; } .msv-dot-presence{ background:#fb923c; }
.msv-ns-pin-content { flex:1; }
.msv-ns-pin-type { font-size:10px; font-weight:600; color:var(--msv-text-muted); letter-spacing:0.5px; }
.msv-ns-pin-stmt { font-size:13px; color:var(--msv-text); line-height:1.4; margin-top:2px; }
.msv-ns-add-btn { width:100%; margin-top:11px; padding:9px; background:transparent; border:1px dashed rgba(56,189,248,0.3); border-radius:10px; color:rgba(56,189,248,0.7); font-size:12px; cursor:pointer; }
.msv-ns-add-btn:hover { border-color:rgba(56,189,248,0.6); color:#38bdf8; }

/* ── Fullscreen Overlay ── */
.msv-goals-fullscreen { position:fixed; inset:0; background:#0f1117; z-index:150; flex-direction:column; overflow-y:auto; }

/* ── Onboarding ── */
.msv-ob-inner { flex:1; padding:20px; }
.msv-ob-card { padding:20px 8px; }
.msv-ob-eyebrow { font-size:11px; font-weight:600; letter-spacing:1.1px; text-transform:uppercase; color:var(--msv-accent); margin-bottom:12px; }
.msv-ob-headline { font-size:26px; font-weight:500; color:var(--msv-text); line-height:1.25; margin-bottom:18px; }
.msv-ob-headline em { color:var(--msv-accent); font-style:normal; }
.msv-ob-body { font-size:15px; color:var(--msv-text-muted); line-height:1.7; }
.msv-ob-body strong { color:var(--msv-text); font-weight:500; }
.msv-ob-example { margin-top:22px; background:rgba(255,255,255,0.04); border:1px solid rgba(255,255,255,0.09); border-radius:12px; padding:14px; }
.msv-ob-ex-label { font-size:10px; font-weight:600; letter-spacing:0.8px; text-transform:uppercase; color:var(--msv-text-muted); margin-bottom:10px; }
.msv-ob-ex-row { display:flex; align-items:flex-start; gap:9px; margin-bottom:7px; }
.msv-ob-badge { font-size:10px; font-weight:600; padding:2px 7px; border-radius:8px; flex-shrink:0; margin-top:1px; }
.ex-result  { background:rgba(255,255,255,0.07); color:var(--msv-text-muted); }
.ex-process { background:rgba(56,189,248,0.12); color:#38bdf8; border:1px solid rgba(56,189,248,0.25); }
.ex-mindset { background:rgba(167,139,250,0.12); color:#a78bfa; border:1px solid rgba(167,139,250,0.25); }
.msv-ob-ex-text { font-size:13px; color:var(--msv-text); line-height:1.45; }
.msv-ob-bottom { padding:14px 20px 32px; display:flex; flex-direction:column; align-items:center; gap:10px; }
.msv-ob-dots { display:flex; gap:6px; margin-bottom:4px; }
.msv-ob-dot { width:6px; height:6px; border-radius:50%; background:rgba(255,255,255,0.15); transition:all 0.3s; }
.msv-ob-dot.active { background:var(--msv-accent); width:18px; border-radius:3px; }
.msv-ob-dot.done { background:rgba(56,189,248,0.4); }
.msv-ob-skip { background:none; border:none; color:var(--msv-text-muted); font-size:13px; cursor:pointer; }

/* ── Bridge ── */
.msv-bridge-inner { flex:1; padding:28px 24px 16px; display:flex; flex-direction:column; gap:14px; }
.msv-bridge-avatar { font-size:40px; }
.msv-bridge-eyebrow { font-size:11px; font-weight:600; letter-spacing:1.1px; text-transform:uppercase; color:var(--msv-accent); }
.msv-bridge-headline { font-size:26px; font-weight:500; color:var(--msv-text); line-height:1.25; }
.msv-bridge-body { font-size:15px; color:var(--msv-text-muted); line-height:1.7; }
.msv-bridge-steps { display:flex; flex-direction:column; gap:12px; margin-top:6px; }
.msv-bridge-step { display:flex; align-items:flex-start; gap:12px; }
.msv-bridge-num { width:24px; height:24px; border-radius:50%; background:rgba(56,189,248,0.12); border:1px solid rgba(56,189,248,0.25); color:#38bdf8; font-size:12px; font-weight:600; display:flex; align-items:center; justify-content:center; flex-shrink:0; margin-top:1px; }
.msv-bridge-step p { font-size:14px; color:var(--msv-text-muted); line-height:1.5; }
.msv-bridge-step strong { color:var(--msv-text); font-weight:500; }
.msv-bridge-bottom { padding:16px 24px 36px; display:flex; flex-direction:column; gap:10px; }

/* ── Sheet ── */
.msv-goals-sheet-overlay { position:fixed; inset:0; background:rgba(0,0,0,0.6); z-index:200; align-items:flex-end; }
.msv-goals-sheet-overlay[style*="display:none"] { pointer-events:none; }
.msv-goals-sheet { background:var(--msv-surface,#1a1d27); border-radius:20px 20px 0 0; width:100%; max-height:88vh; display:flex; flex-direction:column; }
.msv-convo-sheet { max-height:82vh; }
.msv-goals-sheet-handle-row { padding:12px 18px 0; display:flex; align-items:center; justify-content:space-between; flex-shrink:0; }
.msv-goals-sheet-handle { width:32px; height:4px; background:rgba(255,255,255,0.1); border-radius:2px; }
.msv-goals-sheet-close { background:rgba(255,255,255,0.08); border:none; border-radius:50%; width:26px; height:26px; color:var(--msv-text-muted); font-size:16px; cursor:pointer; display:flex; align-items:center; justify-content:center; }
.msv-goals-sheet-body { overflow-y:auto; padding:16px 20px 28px; }

/* ── Wizard Steps ── */
.msv-wiz-step { display:flex; flex-direction:column; gap:14px; }
.msv-wiz-avatar { font-size:30px; text-align:center; }
.msv-wiz-avatar-sm { font-size:20px; flex-shrink:0; margin-top:2px; }
.msv-wiz-q { font-size:17px; font-weight:500; color:var(--msv-text); line-height:1.4; }
.msv-wiz-hint { font-size:13px; color:var(--msv-text-muted); line-height:1.5; }
.msv-wiz-reflection p { font-size:14px; color:var(--msv-text); line-height:1.65; margin-bottom:10px; }
.msv-wiz-textarea { width:100%; background:rgba(255,255,255,0.05); border:1px solid rgba(255,255,255,0.12); border-radius:10px; padding:12px; color:var(--msv-text); font-size:14px; line-height:1.55; resize:none; font-family:inherit; }
.msv-wiz-textarea:focus { outline:none; border-color:var(--msv-accent); }
.msv-wiz-actions { display:flex; gap:10px; justify-content:flex-end; flex-wrap:wrap; }
.msv-wiz-loading { display:flex; flex-direction:column; align-items:center; gap:14px; padding:36px 0; color:var(--msv-text-muted); font-size:13px; }
.msv-scope-row { display:flex; align-items:center; gap:10px; font-size:13px; color:var(--msv-text-muted); }
.msv-scope-row select { background:rgba(255,255,255,0.05); border:1px solid rgba(255,255,255,0.12); border-radius:8px; padding:7px 10px; color:var(--msv-text); font-size:13px; flex:1; }

/* ── Coach Bubble ── */
.msv-coach-row { display:flex; align-items:flex-start; gap:9px; }
.msv-coach-bubble { background:rgba(255,255,255,0.05); border:1px solid rgba(255,255,255,0.08); border-radius:0 12px 12px 12px; padding:12px 14px; flex:1; display:flex; flex-direction:column; gap:8px; overflow:hidden; }
.msv-coach-bubble p { font-size:14px; color:var(--msv-text); line-height:1.6; }
.msv-coach-bubble p+p { margin-top:0; }
.msv-suggested-pill { display:inline-flex; margin-top:8px; }
.msv-section-label { font-size:10px; font-weight:600; letter-spacing:0.9px; text-transform:uppercase; color:var(--msv-text-muted); margin-top:4px; }

/* ── Type Picker ── */
.msv-type-list { display:flex; flex-direction:column; gap:8px; }
.msv-type-card { display:flex; align-items:center; gap:12px; padding:12px 13px; background:rgba(255,255,255,0.04); border:1.5px solid rgba(255,255,255,0.09); border-radius:13px; cursor:pointer; position:relative; transition:all 0.15s; }
.msv-type-card:hover { background:rgba(255,255,255,0.07); }
.msv-type-card--suggested { border-color:var(--msv-accent); background:rgba(56,189,248,0.07); }
.msv-type-suggested-tag { position:absolute; top:0; right:10px; transform:translateY(-50%); font-size:10px; font-weight:600; padding:2px 8px; border-radius:8px; background:var(--msv-accent); color:#0f1117; }
.msv-type-icon-wrap { width:38px; height:38px; border-radius:9px; display:flex; align-items:center; justify-content:center; font-size:18px; flex-shrink:0; }
.msv-type-icon-process   { background:rgba(96,165,250,0.12); }
.msv-type-icon-mindset   { background:rgba(167,139,250,0.12); }
.msv-type-icon-technical { background:rgba(52,211,153,0.12); }
.msv-type-icon-presence  { background:rgba(251,146,60,0.12); }
.msv-type-text { flex:1; }
.msv-type-name { font-size:14px; font-weight:500; color:var(--msv-text); margin-bottom:2px; }
.msv-type-desc { font-size:12px; color:var(--msv-text-muted); line-height:1.35; }
.msv-type-check { width:20px; height:20px; border-radius:50%; border:1.5px solid rgba(255,255,255,0.15); flex-shrink:0; display:flex; align-items:center; justify-content:center; font-size:11px; color:transparent; transition:all 0.15s; }
.msv-type-check--process   { background:#60a5fa; border-color:#60a5fa; color:#0f1117; }
.msv-type-check--mindset   { background:#a78bfa; border-color:#a78bfa; color:#0f1117; }
.msv-type-check--technical { background:#34d399; border-color:#34d399; color:#0f1117; }
.msv-type-check--presence  { background:#fb923c; border-color:#fb923c; color:#0f1117; }

/* ── Shaped Goal ── */
.msv-shaped-box { background:rgba(255,255,255,0.04); border:1px solid rgba(255,255,255,0.1); border-radius:12px; padding:13px; display:flex; flex-direction:column; gap:8px; overflow:hidden; }
.msv-shaped-box--convo { margin-top:8px; }
.msv-shaped-box .msv-wiz-textarea { min-height:80px; max-height:140px; overflow-y:auto; resize:none; flex-shrink:0; }
.msv-shaped-reasoning { font-size:12px; color:var(--msv-text-muted); font-style:italic; }
.msv-shaped-edit-hint { font-size:11px; color:rgba(255,255,255,0.22); flex-shrink:0; margin-top:0; }
.msv-shaped-q { font-size:13px; color:var(--msv-text-muted); margin-top:8px; }

/* ── Branch ── */
.msv-branch-header { padding:14px 18px 0; display:flex; align-items:center; gap:12px; flex-shrink:0; }
.msv-goals-back-btn { background:rgba(255,255,255,0.07); border:none; border-radius:50%; width:32px; height:32px; color:var(--msv-text-muted); font-size:15px; cursor:pointer; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.msv-wiz-progress { flex:1; height:3px; background:rgba(255,255,255,0.08); border-radius:2px; overflow:hidden; }
.msv-wiz-fill { height:100%; background:var(--msv-accent); border-radius:2px; transition:width 0.4s; }
.msv-branch-body { flex:1; padding:14px 16px; display:flex; flex-direction:column; gap:11px; overflow-y:auto; }
.msv-branch-footer { padding:10px 16px 28px; }
.msv-branch-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.msv-branch-card { border-radius:13px; padding:11px 12px 10px; border:1.5px solid rgba(255,255,255,0.08); background:rgba(255,255,255,0.03); display:flex; flex-direction:column; gap:4px; cursor:pointer; transition:all 0.18s; position:relative; min-height:100px; }
.msv-branch-card:hover { background:rgba(255,255,255,0.07); }
.msv-bc--has { border-style:solid; }
.msv-bc-process.msv-bc--has   { border-color:#60a5fa; background:rgba(96,165,250,0.07); }
.msv-bc-mindset.msv-bc--has   { border-color:#a78bfa; background:rgba(167,139,250,0.07); }
.msv-bc-technical.msv-bc--has { border-color:#34d399; background:rgba(52,211,153,0.07); }
.msv-bc-presence.msv-bc--has  { border-color:#fb923c; background:rgba(251,146,60,0.07); }
.msv-bc-icon { font-size:18px; }
.msv-bc-name { font-size:12px; font-weight:500; color:var(--msv-text); }
.msv-bc-desc { font-size:11px; color:var(--msv-text-muted); line-height:1.35; }
.msv-bc-desc.has { color:rgba(255,255,255,0.55); font-style:italic; }
.msv-bc-check { position:absolute; top:7px; right:7px; width:16px; height:16px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:9px; font-weight:700; }
.msv-bc-chk-process   { background:#60a5fa; color:#0f1117; }
.msv-bc-chk-mindset   { background:#a78bfa; color:#0f1117; }
.msv-bc-chk-technical { background:#34d399; color:#0f1117; }
.msv-bc-chk-presence  { background:#fb923c; color:#0f1117; }
.msv-save-nudge { background:rgba(255,255,255,0.03); border:1px solid rgba(255,255,255,0.07); border-radius:11px; padding:9px 12px; font-size:12px; color:var(--msv-text-muted); line-height:1.5; }
.msv-save-nudge strong { color:var(--msv-text); font-weight:500; }

/* ── Convo ── */
.msv-convo-messages { flex:1; overflow-y:auto; padding:14px 16px 20px; display:flex; flex-direction:column; gap:10px; min-height:0; }
.msv-convo-coach-row { display:flex; align-items:flex-start; gap:8px; }
.msv-convo-athlete-row { display:flex; justify-content:flex-end; }
.msv-athlete-bubble { background:rgba(56,189,248,0.1); border:1px solid rgba(56,189,248,0.2); border-radius:12px 12px 0 12px; padding:10px 13px; max-width:82%; }
.msv-athlete-bubble p { font-size:14px; color:var(--msv-text); line-height:1.5; }
.msv-thinking { display:flex; align-items:center; gap:3px; padding:10px 14px; background:rgba(255,255,255,0.05); border:1px solid rgba(255,255,255,0.08); border-radius:0 12px 12px 12px; }
.msv-thinking span { display:inline-block; width:6px; height:6px; border-radius:50%; background:rgba(255,255,255,0.25); animation:msv-blink 1.2s infinite; }
.msv-thinking span:nth-child(2){animation-delay:.2s;} .msv-thinking span:nth-child(3){animation-delay:.4s;}
@keyframes msv-blink{0%,80%,100%{opacity:.2;}40%{opacity:1;}}
.msv-convo-input-row { padding:10px 14px 14px; display:flex; gap:8px; align-items:flex-end; flex-shrink:0; border-top:1px solid rgba(255,255,255,0.06); }
.msv-convo-input { flex:1; background:rgba(255,255,255,0.05); border:1px solid rgba(255,255,255,0.12); border-radius:18px; padding:10px 14px; color:var(--msv-text); font-size:14px; line-height:1.4; resize:none; font-family:inherit; max-height:72px; }
.msv-convo-input:focus { outline:none; border-color:var(--msv-accent); }
.msv-convo-input::placeholder { color:var(--msv-text-muted); }
.msv-convo-send { width:36px; height:36px; border-radius:50%; background:var(--msv-accent); border:none; color:#0f1117; font-size:16px; cursor:pointer; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.msv-convo-pin-row { padding:10px 16px 16px; display:flex; gap:8px; flex-shrink:0; }
.msv-convo-keep { flex:1; } .msv-convo-pin { flex:1; }

/* ── Pin Flash ── */
.msv-pin-flash {
    position: fixed;
    inset: 0;
    background: rgba(10,14,26,0.88);
    z-index: 300;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 14px;
    animation: msv-fade-in 0.2s ease;
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
}
@keyframes msv-fade-in{from{opacity:0;}to{opacity:1;}}
.msv-pin-flash-icon {
    font-size: 52px;
    animation: msv-pop 0.45s cubic-bezier(0.34,1.56,0.64,1);
    filter: drop-shadow(0 0 24px rgba(56,189,248,0.6));
}
@keyframes msv-pop{from{transform:scale(0.2);opacity:0;}to{transform:scale(1);opacity:1;}}
.msv-pin-flash-title {
    font-size: 20px;
    font-weight: 600;
    color: #fff;
    letter-spacing: -0.01em;
}
.msv-pin-flash-sub {
    font-size: 14px;
    color: rgba(255,255,255,0.45);
}

/* ── Check-in ── */
.msv-checkin-title { font-size:16px; font-weight:600; color:var(--msv-text); }
.msv-checkin-goal { font-size:13px; color:var(--msv-text-muted); font-style:italic; line-height:1.4; }
.msv-checkin-prompt { font-size:15px; color:var(--msv-text); font-weight:500; }
.msv-checkin-emojis { display:flex; gap:10px; justify-content:center; padding:8px 0; }
.msv-emoji-btn { font-size:28px; background:rgba(255,255,255,0.05); border:2px solid transparent; border-radius:12px; padding:10px 13px; cursor:pointer; transition:all 0.15s; }
.msv-emoji-btn:hover { transform:scale(1.08); }
.msv-emoji-btn.selected { border-color:var(--msv-accent); background:rgba(56,189,248,0.12); transform:scale(1.1); }

/* ── Achievement ── */
.msv-goals-achievement { position:fixed; inset:0; background:rgba(10,10,20,0.92); z-index:250; flex-direction:column; align-items:center; justify-content:center; gap:16px; padding:32px; text-align:center; }
.msv-achievement-icon { font-size:54px; }
.msv-achievement-title { font-size:24px; font-weight:700; color:#fde047; }
.msv-achievement-type { font-size:14px; color:var(--msv-text-muted); }
.msv-achievement-stmt { font-size:17px; font-weight:500; color:var(--msv-text); font-style:italic; line-height:1.5; max-width:280px; }
.msv-achievement-note { font-size:13px; color:var(--msv-text-muted); }

/* ── Context Menu ── */
.msv-goal-menu { position:absolute; z-index:100; background:var(--msv-surface,#1a1d27); border:1px solid rgba(255,255,255,0.12); border-radius:12px; overflow:hidden; box-shadow:0 8px 24px rgba(0,0,0,0.4); min-width:160px; }
.msv-goal-menu button { display:block; width:100%; padding:10px 16px; background:transparent; border:none; color:var(--msv-text); font-size:13px; text-align:left; cursor:pointer; }
.msv-goal-menu button:hover { background:rgba(255,255,255,0.08); }

/* ── Buttons ── */
.msv-goals-btn-primary { padding:12px 22px; border-radius:24px; background:var(--msv-accent,#38bdf8); border:none; color:#0f1117; font-size:14px; font-weight:600; cursor:pointer; transition:opacity 0.15s; width:100%; }
.msv-goals-btn-primary:hover { opacity:0.88; }
.msv-goals-btn-ghost { padding:11px 18px; border-radius:24px; background:transparent; border:1px solid rgba(255,255,255,0.18); color:var(--msv-text-muted); font-size:13px; cursor:pointer; width:100%; }
.msv-goals-btn-ghost:hover { border-color:rgba(255,255,255,0.35); color:var(--msv-text); }

/* ── Spinner ── */
.msv-g-spinner { width:24px; height:24px; border:2px solid rgba(255,255,255,0.1); border-top-color:var(--msv-accent); border-radius:50%; animation:msv-spin 0.7s linear infinite; }
@keyframes msv-spin{to{transform:rotate(360deg);}}

/* ── Path Choice ── */
.msv-path-choice-step { padding-top: 4px; }
.msv-path-options { display: flex; flex-direction: column; gap: 9px; padding-left: 0; margin-top: 4px; }
.msv-path-btn { background: rgba(255,255,255,0.04); border: 1.5px solid rgba(255,255,255,0.12); border-radius: 13px; padding: 14px 16px; text-align: left; cursor: pointer; transition: all 0.18s; width: 100%; }
.msv-path-btn:hover { background: rgba(56,189,248,0.08); border-color: rgba(56,189,248,0.4); }
.msv-path-title { font-size: 14px; font-weight: 500; color: #f0f0f0; margin-bottom: 4px; font-family: var(--font-sans); }
.msv-path-sub { font-size: 12px; color: rgba(255,255,255,0.38); line-height: 1.45; font-family: var(--font-sans); }

/* ── North Star Confirm Card (in wizard) ── */
.msv-ns-confirm-card { background: rgba(56,189,248,0.08); border: 1.5px solid rgba(56,189,248,0.35); border-radius: 14px; padding: 14px 16px; display: flex; flex-direction: column; gap: 8px; }
.msv-ns-confirm-label { font-size: 10px; font-weight: 600; letter-spacing: 1px; text-transform: uppercase; color: #38bdf8; }
.msv-ns-stmt-edit { background: rgba(255,255,255,0.06) !important; border-color: rgba(56,189,248,0.25) !important; }
.msv-ns-stmt-edit:focus { border-color: #38bdf8 !important; }

/* ── Hidden state — applied by JS hide() to ALL overlays ── */
/* Ensures nothing intercepts clicks when not visible */
.msv-hidden {
    display: none !important;
    pointer-events: none !important;
    visibility: hidden !important;
}

/* ── Goals Carousel ─────────────────────────────────────────────────────── */
.msv-carousel-hint { font-size:10px; font-weight:600; letter-spacing:0.9px; text-transform:uppercase; color:rgba(255,255,255,0.22); padding:0 16px; margin-bottom:10px; }

.msv-goal-carousel { display:flex; gap:10px; padding:4px 16px 24px; overflow-x:auto; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; }
.msv-goal-carousel::-webkit-scrollbar { display:none; }

/* ── Flip card wrapper ── */
.msv-flip-wrap { scroll-snap-align:start; flex-shrink:0; width:200px; height:248px; perspective:900px; cursor:pointer; }
.msv-flip-inner { width:100%; height:100%; position:relative; transform-style:preserve-3d; transition:transform 0.42s cubic-bezier(0.4,0,0.2,1); }
.msv-flip-wrap.msv-flipped .msv-flip-inner { transform:rotateY(180deg); }

/* ── Card faces ── */
.msv-card-face { position:absolute; inset:0; border-radius:16px; padding:14px; backface-visibility:hidden; -webkit-backface-visibility:hidden; display:flex; flex-direction:column; background:rgba(255,255,255,0.04); border:1px solid rgba(255,255,255,0.09); }
.msv-card-back  { transform:rotateY(180deg); }
.msv-card-ns    { background:rgba(56,189,248,0.07); border-color:rgba(56,189,248,0.28); }

/* ── Front face ── */
.msv-fc-type-row { display:flex; align-items:center; justify-content:space-between; margin-bottom:9px; flex-shrink:0; }
.msv-fc-flip-hint { font-size:14px; color:rgba(255,255,255,0.18); }
.msv-fc-emo { font-size:16px; }
.msv-fc-stmt { font-size:13px; font-weight:500; color:#f0f0f0; line-height:1.45; flex:1; overflow:hidden; display:-webkit-box; -webkit-line-clamp:5; -webkit-box-orient:vertical; }
.msv-fc-pills { display:flex; gap:4px; flex-wrap:wrap; margin-top:8px; flex-shrink:0; }
.msv-fc-pill { font-size:10px; padding:2px 7px; border-radius:8px; background:rgba(56,189,248,0.1); color:#38bdf8; border:1px solid rgba(56,189,248,0.2); }
.msv-fc-scope { font-size:10px; color:rgba(255,255,255,0.22); margin-top:auto; padding-top:8px; flex-shrink:0; }

/* ── Back face ── */
.msv-fc-back-label { font-size:10px; font-weight:600; letter-spacing:0.8px; text-transform:uppercase; color:rgba(255,255,255,0.28); margin-bottom:8px; flex-shrink:0; }
.msv-fc-back-stmt { font-size:12px; color:rgba(255,255,255,0.65); line-height:1.5; flex:1; overflow:hidden; display:-webkit-box; -webkit-line-clamp:6; -webkit-box-orient:vertical; }
.msv-fc-empty-back { font-size:12px; color:rgba(255,255,255,0.28); font-style:italic; line-height:1.4; }
.msv-fc-pin-list { display:flex; flex-direction:column; gap:6px; flex:1; overflow:hidden; }
.msv-fc-pin-row { display:flex; align-items:flex-start; gap:7px; }
.msv-fc-pin-dot { width:6px; height:6px; border-radius:50%; flex-shrink:0; margin-top:4px; }
.msv-fc-pin-text { font-size:11px; color:rgba(255,255,255,0.55); line-height:1.35; }
.msv-fc-back-actions { display:flex; gap:5px; margin-top:auto; padding-top:9px; border-top:1px solid rgba(255,255,255,0.07); flex-shrink:0; }
.msv-fc-btn { padding:6px 0; font-size:10px; font-weight:600; border-radius:18px; border:none; cursor:pointer; font-family:inherit; flex:1; }
.msv-fc-btn-checkin { background:rgba(56,189,248,0.15); color:#38bdf8; }
.msv-fc-btn-add { background:rgba(56,189,248,0.08); color:rgba(56,189,248,0.7); }
.msv-fc-btn-menu { background:rgba(255,255,255,0.06); color:rgba(255,255,255,0.35); flex:0 0 36px; }

/* ── Add card ── */
.msv-card-add { border:1.5px dashed rgba(255,255,255,0.1) !important; background:transparent !important; align-items:center; justify-content:center; gap:8px; cursor:pointer; }
.msv-card-add:hover { border-color:rgba(255,255,255,0.22) !important; }
.msv-add-plus { font-size:28px; color:rgba(255,255,255,0.15); line-height:1; }
.msv-add-label { font-size:11px; color:rgba(255,255,255,0.2); }

/* ── Scope selector on confirm card ── */
.msv-scope-selector { margin-top:4px; }
.msv-scope-label { font-size:11px; color:var(--msv-text-muted); margin-bottom:7px; }
.msv-scope-pills { display:flex; gap:7px; }
.msv-scope-pill { flex:1; padding:7px 0; border-radius:20px; background:rgba(255,255,255,0.05); border:1.5px solid rgba(255,255,255,0.1); color:rgba(255,255,255,0.4); font-size:12px; font-weight:500; cursor:pointer; font-family:inherit; transition:all 0.15s; }
.msv-scope-pill--active { background:rgba(56,189,248,0.12); border-color:rgba(56,189,248,0.45); color:#38bdf8; }

/* ── Post-pin navigation ── */
.msv-post-pin-step { align-items:center; text-align:center; padding-top:8px; }
.msv-post-pin-icon { font-size:40px; margin-bottom:4px; }
.msv-post-pin-heading { font-size:22px; font-weight:500; color:var(--msv-text); }
.msv-post-pin-sub { font-size:14px; color:var(--msv-text-muted); margin-bottom:4px; }
.msv-post-pin-options { display:flex; flex-direction:column; gap:9px; width:100%; margin-top:8px; }
.msv-post-pin-btn { display:flex; align-items:center; gap:13px; padding:13px 15px; background:rgba(255,255,255,0.04); border:1.5px solid rgba(255,255,255,0.09); border-radius:14px; cursor:pointer; text-align:left; width:100%; transition:all 0.15s; font-family:inherit; }
.msv-post-pin-btn:hover { background:rgba(255,255,255,0.08); border-color:rgba(255,255,255,0.18); }
.msv-pp-btn-icon { font-size:20px; flex-shrink:0; }
.msv-pp-btn-text { flex:1; }
.msv-pp-btn-title { font-size:14px; font-weight:500; color:var(--msv-text); margin-bottom:2px; }
.msv-pp-btn-sub { font-size:11px; color:var(--msv-text-muted); line-height:1.3; }

/* ── Goals footer row ── */
.msv-goals-footer-row { display:flex; align-items:center; justify-content:space-between; padding:4px 16px 8px; margin-top:4px; }
.msv-goals-archive-link { background:transparent; border:none; color:rgba(255,255,255,0.22); font-size:12px; cursor:pointer; font-family:inherit; padding:6px 0; }
.msv-goals-archive-link:hover { color:rgba(255,255,255,0.45); }
.msv-goals-export-btn { background:rgba(255,255,255,0.06); border:1px solid rgba(255,255,255,0.12); border-radius:18px; color:rgba(255,255,255,0.55); font-size:12px; font-weight:500; padding:7px 16px; cursor:pointer; font-family:inherit; }
.msv-goals-export-btn:hover { background:rgba(255,255,255,0.1); color:var(--msv-text); }

/* ── Archived goals view ── */
.msv-archived-heading { font-size:17px; font-weight:500; color:var(--msv-text); }
.msv-archived-sub { font-size:13px; color:var(--msv-text-muted); line-height:1.5; }
.msv-archived-list { display:flex; flex-direction:column; gap:8px; margin-top:4px; }
.msv-archived-row { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:11px 13px; background:rgba(255,255,255,0.03); border:1px solid rgba(255,255,255,0.08); border-radius:12px; }
.msv-archived-row-left { flex:1; display:flex; flex-direction:column; gap:5px; }
.msv-archived-stmt { font-size:13px; color:rgba(255,255,255,0.55); line-height:1.4; }
.msv-archived-restore { font-size:11px; font-weight:600; padding:5px 12px; border-radius:16px; background:rgba(255,255,255,0.06); border:1px solid rgba(255,255,255,0.12); color:rgba(255,255,255,0.4); cursor:pointer; font-family:inherit; flex-shrink:0; }
.msv-archived-restore:hover { background:rgba(56,189,248,0.1); border-color:rgba(56,189,248,0.3); color:#38bdf8; }

/* ── Export sheet ── */
.msv-export-list { display:flex; flex-direction:column; gap:7px; margin-top:4px; max-height:360px; overflow-y:auto; }
.msv-export-row { display:flex; align-items:flex-start; gap:10px; padding:11px 13px; background:rgba(255,255,255,0.03); border:1px solid rgba(255,255,255,0.08); border-radius:12px; cursor:pointer; }
.msv-export-row--ns { background:rgba(56,189,248,0.05); border-color:rgba(56,189,248,0.2); }
.msv-export-row--sub { margin-left:16px; border-style:dashed; }
.msv-export-row input[type="checkbox"] { margin-top:3px; flex-shrink:0; accent-color:#38bdf8; width:16px; height:16px; cursor:pointer; }
.msv-export-row-content { flex:1; display:flex; flex-direction:column; gap:5px; }
.msv-export-stmt { font-size:13px; color:var(--msv-text); line-height:1.4; }

/* ── Frequency pills (wider than scope pills) ── */
.msv-freq-pills { flex-wrap:wrap; }
.msv-freq-pills .msv-scope-pill { font-size:11px; padding:6px 0; flex:1; min-width:60px; }

/* ── Check-in due badge on carousel card ── */
.msv-card-due { border-color:rgba(251,191,36,0.45) !important; }
.msv-fc-due-badge { display:inline-block; font-size:10px; font-weight:600; padding:2px 8px; border-radius:10px; background:rgba(251,191,36,0.15); color:#fbbf24; border:1px solid rgba(251,191,36,0.3); margin-bottom:7px; flex-shrink:0; align-self:flex-start; }

/* ── Freeform check-in textarea ── */
.msv-checkin-freeform { min-height:100px; }

/* ── Tile due dot ── */
.msv-tile-due-dot { position:absolute; top:6px; right:6px; width:8px; height:8px; border-radius:50%; background:#fbbf24; box-shadow:0 0 0 2px rgba(15,17,23,0.8); }
