/* ORO — Midnight Calm theme */
:root {
  --bg-main:#070A12; --bg-card:#101624; --bg-deep:#161D2A;
  --text:#F5F0E6; --muted:#A7A9B0; --line:rgba(245,240,230,.08);
  --gold:#C9A75D; --cream:#E8D6A3; --blue:#60789A; --amber:#B8844E; --sage:#8FAE9B;
  --r:18px; --font:-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",Inter,sans-serif;
}
* { box-sizing:border-box; margin:0; padding:0; -webkit-tap-highlight-color:transparent; }
html,body { background:var(--bg-main); color:var(--text); font-family:var(--font); -webkit-font-smoothing:antialiased; }
#app { max-width:480px; margin:0 auto; min-height:100vh; position:relative; }
.screen { display:none; }
.screen.active { display:block; animation:fade .5s ease; }
@keyframes fade { from{opacity:0;transform:translateY(8px)} to{opacity:1;transform:none} }

/* Buttons */
.btn-gold { width:100%; padding:15px; margin-top:18px; background:linear-gradient(180deg,var(--cream),var(--gold)); color:#1a1206; border:none; border-radius:14px; font-size:16px; font-weight:600; cursor:pointer; transition:transform .15s, opacity .2s; }
.btn-gold:active { transform:scale(.99); }
.btn-ghost { width:100%; padding:14px; margin-top:12px; background:transparent; color:var(--text); border:1px solid var(--line); border-radius:14px; font-size:15px; cursor:pointer; }
.btn-ghost.slim { padding:10px; margin-top:18px; color:var(--muted); font-size:13px; }
.err { color:#f0a3a3; text-align:center; margin-top:14px; font-size:14px; }

/* ===== Onboarding ===== */
.onb { min-height:100vh; padding:32px 24px; }
.onb.active { display:flex; align-items:center; justify-content:center; }
.splash, .creating { text-align:center; }
.logo { font-size:46px; letter-spacing:10px; color:var(--gold); font-weight:600; margin-top:24px; }
.tagline { color:var(--muted); margin:10px 0 36px; letter-spacing:.5px; }
.drop { width:84px; height:84px; margin:0 auto; border-radius:50%;
  background:radial-gradient(circle at 38% 34%, var(--cream), var(--gold) 55%, #6b4f1d 100%);
  box-shadow:0 0 50px rgba(201,167,93,.4), inset -6px -8px 16px rgba(0,0,0,.45); }
.drop.spin { animation:spin 3s linear infinite, breathe 3s ease-in-out infinite; }
@keyframes spin { to{ transform:rotate(360deg) } }
@keyframes breathe { 0%,100%{transform:scale(.95)} 50%{transform:scale(1.05)} }
.onb-body, .onb-form { width:100%; }
.onb-body { text-align:center; }
.ripple-line { width:120px; height:120px; margin:0 auto 30px; border-radius:50%; border:1px solid var(--line);
  box-shadow:0 0 0 14px rgba(201,167,93,.04), 0 0 0 30px rgba(201,167,93,.02); position:relative; }
.ripple-line::after { content:""; position:absolute; inset:50% auto auto 50%; width:12px; height:12px; transform:translate(-50%,-50%); border-radius:50%; background:var(--gold); box-shadow:0 0 18px var(--gold); }
.onb-h { font-size:30px; font-weight:600; letter-spacing:-.02em; line-height:1.15; }
.onb-h.sm { font-size:24px; margin-bottom:6px; }
.onb-p { color:var(--muted); margin-top:14px; font-size:16px; line-height:1.5; }
.onb-p.sm { font-size:14px; margin-bottom:18px; }
.creating p { color:var(--muted); margin-top:26px; }

/* Form */
.onb-form label { display:block; margin-bottom:16px; }
.onb-form label span { display:block; font-size:13px; color:var(--muted); margin-bottom:7px; }
input { width:100%; padding:14px; background:var(--bg-deep); border:1px solid var(--line); border-radius:12px; color:var(--text); font-size:16px; font-family:var(--font); }
input:focus { outline:none; border-color:var(--gold); }
.privacy { color:var(--muted); font-size:12px; text-align:center; margin-top:4px; }

/* Place picker */
.place-field { position:relative; }
.place-results { position:absolute; left:0; right:0; top:100%; z-index:30; margin-top:6px; background:#11151c; border:1px solid var(--line); border-radius:12px; overflow:hidden auto; max-height:240px; box-shadow:0 18px 40px rgba(0,0,0,.5); }
.place-item { padding:11px 14px; cursor:pointer; }
.place-item:hover, .place-item:active { background:var(--bg-deep); }
.pi-name { font-size:14px; display:block; }
.pi-meta { font-size:11px; color:var(--muted); }
.place-loading { padding:12px 14px; font-size:13px; color:var(--muted); }
.place-chosen { margin-top:6px; font-size:12px; color:var(--sage); }
.loc-status { text-align:center; color:var(--muted); font-size:13px; margin-top:14px; min-height:18px; }

/* Chips / options */
.chips { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:8px; }
.chip { padding:11px 16px; background:var(--bg-deep); border:1px solid var(--line); border-radius:999px; color:var(--muted); font-size:14px; cursor:pointer; }
.chip.active { background:rgba(201,167,93,.14); border-color:var(--gold); color:var(--cream); }
.opts { display:flex; gap:10px; }
.opt { flex:1; padding:14px; background:var(--bg-deep); border:1px solid var(--line); border-radius:12px; color:var(--muted); cursor:pointer; }
.opt.active { background:var(--gold); color:#1a1206; border-color:var(--gold); font-weight:600; }

/* ===== App shell ===== */
.app-head { display:flex; justify-content:space-between; align-items:center; padding:20px 20px 10px; }
.app-date { font-size:18px; font-weight:600; }
.app-loc { color:var(--muted); font-size:13px; margin-top:2px; }
.head-name { width:38px; height:38px; border-radius:50%; border:1px solid var(--line); background:var(--bg-card); color:var(--gold); font-weight:600; font-size:15px; cursor:pointer; }
.tabview { padding:6px 16px 110px; }

/* Tab bar */
.tabbar { position:fixed; bottom:0; left:50%; transform:translateX(-50%); width:100%; max-width:480px; display:flex; background:rgba(10,13,20,.86); backdrop-filter:blur(20px); border-top:1px solid var(--line); padding:8px 6px calc(8px + env(safe-area-inset-bottom)); }
.tab { flex:1; background:none; border:none; color:var(--muted); display:flex; flex-direction:column; align-items:center; gap:3px; padding:6px; cursor:pointer; font-size:11px; }
.tab i { font-style:normal; font-size:20px; line-height:1; }
.tab.active { color:var(--gold); }

/* ===== Today day-map ===== */
.path-head { text-align:center; padding:14px 0 22px; }
.path-name { font-size:30px; font-weight:600; letter-spacing:-.02em; }
.path-line { color:var(--muted); margin-top:8px; font-size:15px; line-height:1.4; }
.block { background:var(--bg-card); border:1px solid var(--line); border-radius:var(--r); padding:18px; margin-bottom:14px; }
.block.flag { border-color:rgba(201,167,93,.4); box-shadow:0 0 0 1px rgba(201,167,93,.12); }
.block-top { display:flex; justify-content:space-between; align-items:baseline; gap:10px; margin-bottom:6px; }
.block-name { font-size:13px; letter-spacing:1px; text-transform:uppercase; color:var(--gold); font-weight:600; }
.block-time { color:var(--muted); font-size:13px; font-variant-numeric:tabular-nums; }
.block-title { font-size:16px; margin-bottom:12px; color:var(--text); }
.block ul { list-style:none; }
.block li { position:relative; padding:5px 0 5px 22px; font-size:15px; line-height:1.4; color:#dfe3ea; }
.block li::before { content:"✓"; position:absolute; left:0; color:var(--sage); }
.block.avoid li::before { content:"×"; color:var(--amber); }
.block.health li::before { content:"•"; color:var(--blue); }
.flag-tag { font-size:10px; background:rgba(201,167,93,.16); color:var(--cream); padding:3px 8px; border-radius:999px; letter-spacing:.5px; }
.colour-card { display:flex; align-items:center; gap:14px; background:var(--bg-card); border:1px solid var(--line); border-radius:var(--r); padding:16px 18px; margin-bottom:14px; }
.colour-dot { width:40px; height:40px; border-radius:50%; flex-shrink:0; box-shadow:inset -4px -4px 10px rgba(0,0,0,.4); }
.colour-name { font-weight:600; }
.colour-mean { color:var(--muted); font-size:13px; margin-top:2px; }
.cue { text-align:center; padding:18px; margin:6px 0 18px; background:linear-gradient(180deg,rgba(201,167,93,.08),transparent); border:1px solid var(--line); border-radius:14px; color:var(--cream); font-size:16px; line-height:1.5; }
.today-actions { display:flex; gap:10px; }
.today-actions button { flex:1; padding:12px; font-size:13px; border-radius:12px; border:1px solid var(--line); background:var(--bg-deep); color:var(--text); cursor:pointer; }
.foot-note { text-align:center; color:var(--muted); font-size:12px; margin-top:18px; }

/* Timing */
.tcard { background:var(--bg-card); border:1px solid var(--line); border-radius:var(--r); padding:16px 18px; margin-bottom:12px; border-left:3px solid var(--line); }
.tcard.move { border-left-color:var(--sage); }
.tcard.hold { border-left-color:var(--amber); }
.tcard.reset { border-left-color:var(--blue); }
.tcard h3 { font-size:15px; display:flex; justify-content:space-between; }
.tcard .win { color:var(--muted); font-size:13px; font-variant-numeric:tabular-nums; }
.tcard p { color:var(--muted); font-size:14px; margin-top:6px; line-height:1.4; }
.timeline { margin-top:18px; }
.tl-item { display:flex; justify-content:space-between; padding:13px 0; border-bottom:1px solid var(--line); font-size:15px; }
.tl-item:last-child { border-bottom:none; }
.tl-item b { color:var(--muted); font-weight:500; font-variant-numeric:tabular-nums; font-size:13px; }

/* Reflect */
.reflect-h { text-align:center; font-size:24px; font-weight:600; margin:20px 0 22px; }
.yn { display:flex; gap:10px; margin-bottom:24px; }
.yn button { flex:1; padding:16px; border-radius:14px; border:1px solid var(--line); background:var(--bg-deep); color:var(--text); font-size:15px; cursor:pointer; }
.yn button.sel { border-color:var(--gold); background:rgba(201,167,93,.14); color:var(--cream); }
.section-label { color:var(--muted); font-size:13px; margin-bottom:12px; }
.reflect-foot { text-align:center; color:var(--muted); font-size:13px; margin-top:22px; }

/* Profile */
.p-card { background:var(--bg-card); border:1px solid var(--line); border-radius:var(--r); padding:16px 18px; margin-bottom:12px; }
.p-card h3 { font-size:15px; margin-bottom:4px; }
.p-card p { color:var(--muted); font-size:13px; }
.p-card .chips { margin-top:12px; }
.guides-row { display:flex; gap:8px; margin-top:12px; }
.guides-row button { flex:1; padding:11px; border-radius:10px; border:1px solid var(--line); background:var(--bg-deep); color:var(--text); font-size:13px; cursor:pointer; }
#guide-out { margin-top:14px; }

/* Toast */
.toast { position:fixed; bottom:96px; left:50%; transform:translateX(-50%); background:var(--bg-deep); border:1px solid var(--line); color:var(--text); padding:11px 18px; border-radius:999px; font-size:14px; z-index:60; box-shadow:0 10px 30px rgba(0,0,0,.5); }
.muted { color:var(--muted); }

/* Onboarding extras */
textarea { width:100%; padding:14px; background:var(--bg-deep); border:1px solid var(--line); border-radius:12px; color:var(--text); font-size:16px; font-family:var(--font); resize:none; }
textarea:focus { outline:none; border-color:var(--gold); }
.opts.col { flex-direction:column; }
.opts.small .opt { padding:11px; font-size:14px; }
.opt small { display:block; color:var(--muted); font-size:11px; font-weight:400; margin-top:2px; }
.opt.active small { color:#5a4a1e; }

/* ===== Today: top summary ===== */
.summary { text-align:center; padding:16px 0 8px; }
.score-row { display:flex; align-items:baseline; justify-content:center; gap:12px; }
.score { font-size:44px; font-weight:700; color:var(--gold); letter-spacing:-1px; }
.direction { font-size:20px; font-weight:600; }
.one-line { color:#dfe3ea; margin:12px auto 0; max-width:22em; line-height:1.45; font-size:16px; }
.win-row { display:flex; gap:8px; margin-top:18px; }
.wchip { flex:1; background:var(--bg-card); border:1px solid var(--line); border-radius:12px; padding:10px 6px; border-top:2px solid var(--line); }
.wchip span { display:block; font-size:11px; color:var(--muted); text-transform:uppercase; letter-spacing:.5px; }
.wchip b { font-size:12.5px; font-variant-numeric:tabular-nums; }
.wchip.best { border-top-color:var(--clear-sage); }
.wchip.slow { border-top-color:var(--hold-amber); }
.wchip.health { border-top-color:var(--reset-blue); }

/* Concern answer */
.concern-card { background:linear-gradient(180deg,rgba(201,167,93,.09),var(--bg-card)); border:1px solid rgba(201,167,93,.25); border-radius:var(--r); padding:16px 18px; margin-bottom:14px; }
.concern-q { color:var(--cream); font-style:italic; margin-bottom:10px; font-size:14px; }
.concern-card ul { list-style:none; }
.concern-card li { padding:4px 0 4px 16px; position:relative; font-size:14px; line-height:1.45; color:#dfe3ea; }
.concern-card li::before { content:"›"; position:absolute; left:0; color:var(--gold); }

/* Right now */
.now-card { background:var(--bg-deep); border:1px solid var(--line); border-radius:var(--r); padding:14px 16px; margin-bottom:14px; }
.now-label { font-size:11px; letter-spacing:.5px; text-transform:uppercase; color:var(--gold); }
.now-card p { margin-top:5px; font-size:15px; line-height:1.4; }

/* At a glance */
.glance { display:flex; gap:10px; margin-bottom:12px; }
.glance-col { flex:1; background:var(--bg-card); border:1px solid var(--line); border-radius:var(--r); padding:14px; }
.glance-col h4 { font-size:11px; letter-spacing:.5px; text-transform:uppercase; color:var(--muted); margin-bottom:8px; }
.glance-col ul { list-style:none; }
.glance-col li { position:relative; padding:4px 0 4px 18px; font-size:13.5px; line-height:1.35; color:#dfe3ea; }
.glance-col.do li::before { content:"✓"; position:absolute; left:0; color:var(--clear-sage); }
.glance-col.avoid li::before { content:"×"; position:absolute; left:0; color:var(--hold-amber); }
.best-use { background:var(--bg-card); border:1px solid var(--line); border-radius:12px; padding:12px 14px; margin-bottom:14px; font-size:14px; color:#dfe3ea; }
.best-use span { color:var(--gold); font-size:11px; text-transform:uppercase; letter-spacing:.5px; margin-right:6px; }

/* Block variants */
.block.health li::before { content:"•"; color:var(--reset-blue); }
.block .flag-tag { font-size:10px; background:rgba(201,167,93,.16); color:var(--cream); padding:3px 8px; border-radius:999px; letter-spacing:.5px; }
.block.flag { border-color:rgba(201,167,93,.4); }

/* Timing extras */
.tsub { color:var(--muted); font-size:13px; margin:4px 0 14px; }
.tcard.health { border-left-color:var(--reset-blue); }
.ask-h { font-size:16px; margin:22px 0 12px; }

/* Ask ORO */
.ask-card { margin:16px 0 4px; }
.ask-input { width:100%; padding:13px 14px; background:var(--bg-deep); border:1px solid var(--line); border-radius:12px; color:var(--text); font-size:15px; }
.ask-input:focus { outline:none; border-color:var(--gold); }
.ask-btn { width:100%; margin-top:10px; padding:12px; border:none; border-radius:12px; background:linear-gradient(180deg,var(--cream),var(--gold)); color:#1a1206; font-weight:600; cursor:pointer; }
.ask-answer { margin-top:14px; background:var(--bg-card); border:1px solid var(--line); border-radius:14px; padding:16px; }
.ask-line { color:var(--cream); font-size:15px; line-height:1.45; }
.ask-win { margin-top:10px; font-size:14px; }
.ask-answer p { font-size:14px; line-height:1.45; color:#dfe3ea; margin-top:8px; }
.ak { color:var(--muted); font-size:11px; text-transform:uppercase; letter-spacing:.5px; margin-right:6px; }
.ak.av { color:#c98a7a; }
.ask-next { color:var(--muted); font-style:italic; }

/* Detailed mode section */
.detail-card { background:var(--bg-card); border:1px solid var(--line); border-radius:var(--r); padding:16px 18px; margin-bottom:14px; }
.detail-card h3 { font-size:12px; letter-spacing:1px; text-transform:uppercase; color:var(--gold); margin-bottom:12px; }
.detail-row { font-size:14px; line-height:1.45; color:#dfe3ea; padding:5px 0; border-bottom:1px solid var(--line); }
.detail-row:last-of-type { border-bottom:none; }
.detail-row span { color:var(--muted); font-size:11px; text-transform:uppercase; letter-spacing:.5px; margin-right:6px; }
.detail-reason { margin-top:10px; font-style:italic; color:var(--muted); font-size:13px; }

/* Concern shortcut chips */
.chips.small .chip { font-size:12.5px; padding:9px 12px; text-align:left; }
.chip.used { border-color:var(--gold); color:var(--cream); }

/* Ask calendar button */
.ask-cal-btn { margin-top:12px; padding:9px 14px; font-size:13px; border:1px solid var(--line); background:var(--bg-deep); color:var(--text); border-radius:10px; cursor:pointer; }

/* Sync */
.sync-open { width:100%; margin-top:12px; padding:11px; border:1px solid var(--line); background:var(--bg-deep); color:var(--text); border-radius:10px; cursor:pointer; }
#sync-box input { margin-top:10px; }
#sync-box .btn-gold { margin-top:12px; }
.sync-result { margin-top:16px; }
.sync-today { font-size:15px; }
.sync-sec { margin-top:14px; }
.sync-sec h4 { font-size:11px; text-transform:uppercase; letter-spacing:.5px; color:var(--muted); margin-bottom:8px; }
.sync-sec ul { list-style:none; }
.sync-sec li { position:relative; padding:4px 0 4px 18px; font-size:14px; color:#dfe3ea; }
.sync-sec li::before { content:"✓"; position:absolute; left:0; color:var(--clear-sage); }
.sync-sec.avoid li::before { content:"›"; color:var(--hold-amber); }
.sync-win { margin-top:14px; font-size:15px; }
.today-actions button { font-size:12.5px; }

/* Warm greeting (#14) */
.greeting { font-size:20px; font-weight:600; color:var(--cream); margin:4px 0 2px; }

/* ===== Humanized Today ===== */
.theme-card { margin:6px 0 18px; }
.kw { font-size:13px; color:var(--muted); letter-spacing:.3px; }
.kw b { color:var(--gold); font-weight:600; }
.theme { font-size:18px; line-height:1.55; color:var(--text); margin-top:10px; }
.theme-meta { display:flex; align-items:center; gap:10px; margin-top:14px; color:var(--muted); font-size:14px; }
.score-pill { background:rgba(201,167,93,.14); color:var(--cream); border:1px solid rgba(201,167,93,.3); padding:3px 12px; border-radius:999px; font-weight:600; font-size:14px; }

.concern-line { font-size:15px; line-height:1.55; color:#e7e3d8; margin-top:6px; }

.area { padding:16px 0; border-bottom:1px solid var(--line); }
.area:last-of-type { border-bottom:none; }
.area-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:8px; }
.area-name { font-size:16px; font-weight:600; color:var(--text); }
.stars { color:var(--gold); font-size:15px; letter-spacing:2px; }
.area-text { font-size:15px; line-height:1.6; color:#dfe3ea; }

.windows-card { background:var(--bg-card); border:1px solid var(--line); border-radius:var(--r); padding:16px 18px; margin:16px 0; }
.windows-card h3 { font-size:12px; letter-spacing:1px; text-transform:uppercase; color:var(--gold); margin-bottom:12px; }
.wrow { display:flex; justify-content:space-between; align-items:baseline; margin-top:10px; }
.wrow:first-of-type { margin-top:0; }
.wlabel { font-size:15px; color:var(--text); }
.wtime { font-size:13px; color:var(--muted); font-variant-numeric:tabular-nums; }
.wnote { font-size:13.5px; line-height:1.5; color:var(--muted); margin:3px 0 4px; }
.wrow.health .wlabel { color:var(--reset-blue); }

.question-card { background:linear-gradient(180deg,rgba(96,120,154,.12),transparent); border:1px solid var(--line); border-radius:var(--r); padding:16px 18px; margin:16px 0; }
.q-label { font-size:11px; text-transform:uppercase; letter-spacing:.5px; color:var(--muted); }
.question-card p { font-size:16px; line-height:1.5; color:var(--cream); font-style:italic; margin-top:8px; }

.intentions { margin:16px 0; }
.intentions h3 { font-size:12px; letter-spacing:1px; text-transform:uppercase; color:var(--gold); margin-bottom:10px; }
.intentions ul { list-style:none; }
.intentions li { position:relative; padding:6px 0 6px 22px; font-size:15px; line-height:1.5; color:#dfe3ea; }
.intentions li::before { content:"›"; position:absolute; left:0; color:var(--gold); }

/* Skeleton "personalizing" hint */
.personalizing { display:flex; align-items:center; gap:8px; font-size:12px; color:var(--muted); margin:2px 0 6px; }
.pdot { width:8px; height:8px; border-radius:50%; background:var(--gold); animation:pblink 1.1s ease-in-out infinite; }
@keyframes pblink { 0%,100%{opacity:.3} 50%{opacity:1} }

/* Disabled Continue until place chosen (#1) */
.btn-gold.disabled, .btn-gold:disabled { opacity:.4; pointer-events:none; }

/* Editable profile cards (#7) */
.pc-head { display:flex; justify-content:space-between; align-items:center; }
.pc-edit { background:none; border:1px solid var(--line); color:var(--gold); font-size:12px; padding:5px 12px; border-radius:999px; cursor:pointer; width:auto; }
.pc-val { margin-top:6px; }
.pc-editor { margin-top:12px; }
.pc-editor input { margin-bottom:10px; }
.pc-editor .btn-gold { margin-top:2px; padding:11px; }
.pc-editor .opts.col { margin-bottom:10px; }
.pc-editor .chips { margin-bottom:10px; }

/* Safe-area padding for mobile browsers / PWA */
.tabview { padding-bottom:calc(120px + env(safe-area-inset-bottom)); }
.app-head { padding-top:max(20px, env(safe-area-inset-top)); }
.tabbar { padding-bottom:calc(8px + env(safe-area-inset-bottom)); }
