/* ══════════════════════════════════════════════════════════
   AVA PHONE UI — Mobile-First PWA
   Full-screen immersive hologram phone experience.
   Custom MT4GE styling. Zero dependencies.
   ══════════════════════════════════════════════════════════ */

*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
:root{
  --bg:#050510;
  --surface:rgba(12,12,28,0.88);
  --surface2:rgba(18,18,40,0.92);
  --accent:#7c5cfc;
  --accent2:#a78bfa;
  --pink:#e879a8;
  --cyan:#22d3ee;
  --green:#4ade80;
  --red:#f87171;
  --orange:#fb923c;
  --text:#eae8f4;
  --text2:#c8c4e0;
  --muted:#6868a0;
  --dim:#3a3a60;
  --border:rgba(124,92,252,0.12);
  --glow:rgba(124,92,252,0.2);
  --safe-top:env(safe-area-inset-top,0px);
  --safe-bottom:env(safe-area-inset-bottom,0px);
  --nav-h:64px;
}

html,body{
  height:100%;width:100%;
  font-family:-apple-system,BlinkMacSystemFont,'SF Pro Text','Segoe UI',system-ui,sans-serif;
  background:var(--bg);color:var(--text);
  overflow:hidden;
  -webkit-font-smoothing:antialiased;
  touch-action:pan-y;
}

.safe-top{padding-top:calc(var(--safe-top) + 12px) !important}
.safe-bottom{padding-bottom:calc(var(--safe-bottom) + 8px) !important}

/* ── App Shell ──────────────────────────────────────────── */
.app{
  position:relative;width:100%;height:100dvh;
  max-width:430px;margin:0 auto;overflow:hidden;
}

.holo-canvas{
  position:fixed;top:0;left:50%;transform:translateX(-50%);
  width:100%;max-width:430px;height:100%;
  z-index:0;opacity:0.7;
}

/* Scanline overlay */
.app::after{
  content:'';position:fixed;top:0;left:50%;transform:translateX(-50%);
  width:100%;max-width:430px;height:100%;
  background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,0,0,0.025) 2px,rgba(0,0,0,0.025) 4px);
  pointer-events:none;z-index:100;
}
.app.no-scanlines::after{display:none}

/* ── Screens ────────────────────────────────────────────── */
.screen{
  position:absolute;top:0;left:0;width:100%;height:100%;
  z-index:1;display:flex;flex-direction:column;
  opacity:0;pointer-events:none;
  transition:opacity 0.3s ease,transform 0.3s ease;
  transform:translateX(20px);
  padding-bottom:var(--nav-h);
}
.screen.active{
  opacity:1;pointer-events:auto;
  transform:translateX(0);
}

/* ══════════════════════════════════════════════════════════
   HOME SCREEN
   ══════════════════════════════════════════════════════════ */
.home-top{
  text-align:center;padding:16px 20px 0;
  background:linear-gradient(180deg,rgba(5,5,16,0.85) 0%,transparent 100%);
}
.home-time{
  font-size:56px;font-weight:200;letter-spacing:-2px;
  color:var(--cyan);
  text-shadow:0 0 40px rgba(34,211,238,0.3);
}
.home-date{font-size:13px;color:var(--muted);margin-top:-2px;letter-spacing:0.3px}

.home-center{
  flex:1;display:flex;flex-direction:column;
  align-items:center;justify-content:center;
  pointer-events:none;
}

/* Ava Ring — large, central, pulsing */
.ava-ring{
  width:160px;height:160px;border-radius:50%;
  border:2px solid rgba(34,211,238,0.4);
  display:flex;align-items:center;justify-content:center;
  position:relative;
  box-shadow:0 0 60px rgba(34,211,238,0.15),inset 0 0 40px rgba(34,211,238,0.08);
  animation:ringFloat 4s ease-in-out infinite;
}
.ava-ring-inner{
  width:140px;height:140px;border-radius:50%;
  border:1px solid rgba(124,92,252,0.2);
  box-shadow:inset 0 0 30px rgba(124,92,252,0.1);
}
@keyframes ringFloat{
  0%,100%{transform:translateY(0);box-shadow:0 0 60px rgba(34,211,238,0.15),inset 0 0 40px rgba(34,211,238,0.08)}
  50%{transform:translateY(-6px);box-shadow:0 0 80px rgba(34,211,238,0.25),inset 0 0 50px rgba(34,211,238,0.12)}
}

.ava-ring.speaking{
  border-color:rgba(124,92,252,0.6);
  animation:ringSpeaking 0.6s ease-in-out infinite alternate;
}
@keyframes ringSpeaking{
  from{box-shadow:0 0 60px rgba(124,92,252,0.2),inset 0 0 40px rgba(124,92,252,0.1)}
  to{box-shadow:0 0 100px rgba(124,92,252,0.4),inset 0 0 60px rgba(124,92,252,0.2)}
}

.ava-ring.listening{border-color:rgba(74,222,128,0.5)}
.ava-ring.thinking{
  animation:ringThink 2s ease-in-out infinite;
  border-color:rgba(167,139,250,0.5);
}
@keyframes ringThink{
  0%,100%{transform:translateY(0) rotate(0deg)}
  50%{transform:translateY(-4px) rotate(3deg)}
}

.ava-ring.alert{border-color:rgba(248,113,113,0.6);animation:ringAlert 0.5s ease infinite}
@keyframes ringAlert{0%,100%{box-shadow:0 0 60px rgba(248,113,113,0.2)}50%{box-shadow:0 0 100px rgba(248,113,113,0.5)}}

.ava-status{
  font-size:12px;color:var(--cyan);margin-top:14px;
  letter-spacing:1px;text-transform:uppercase;font-weight:500;
  opacity:0.7;
}

/* Home notification cards */
.home-cards{
  padding:0 16px;max-height:30vh;overflow-y:auto;
  display:flex;flex-direction:column;gap:10px;
  scrollbar-width:none;
}
.home-cards::-webkit-scrollbar{display:none}

.notif-card{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:14px;padding:14px 16px;
  backdrop-filter:blur(20px);
  display:flex;align-items:center;gap:12px;
  animation:slideUp 0.4s ease;
  cursor:pointer;
  transition:transform 0.15s,opacity 0.15s;
}
.notif-card:active{transform:scale(0.97);opacity:0.8}
@keyframes slideUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}

.notif-icon{
  width:40px;height:40px;border-radius:10px;
  display:flex;align-items:center;justify-content:center;
  font-size:18px;flex-shrink:0;
}
.notif-icon.purple{background:rgba(124,92,252,0.15);color:var(--accent2)}
.notif-icon.cyan{background:rgba(34,211,238,0.15);color:var(--cyan)}
.notif-icon.green{background:rgba(74,222,128,0.15);color:var(--green)}
.notif-icon.orange{background:rgba(251,146,60,0.15);color:var(--orange)}
.notif-icon.red{background:rgba(248,113,113,0.15);color:var(--red)}
.notif-icon.pink{background:rgba(232,121,168,0.15);color:var(--pink)}

.notif-text{flex:1;min-width:0}
.notif-title{font-size:13px;font-weight:600}
.notif-sub{font-size:11px;color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.notif-time{font-size:10px;color:var(--dim);flex-shrink:0}

.notif-card.dismissed{animation:slideOut 0.3s ease forwards}
@keyframes slideOut{to{opacity:0;transform:translateX(100px);height:0;padding:0;margin:0;border:0}}

/* Quick Actions */
.home-quick{
  display:flex;gap:10px;padding:12px 16px;
  justify-content:center;
}
.quick-btn{
  flex:1;max-width:80px;padding:10px 0;
  background:var(--surface);border:1px solid var(--border);
  border-radius:14px;color:var(--text2);
  font-size:11px;font-family:inherit;font-weight:500;
  cursor:pointer;display:flex;flex-direction:column;
  align-items:center;gap:4px;
  transition:all 0.2s;backdrop-filter:blur(12px);
}
.quick-btn:active{transform:scale(0.93);background:rgba(124,92,252,0.15)}
.qi{
  width:28px;height:28px;border-radius:8px;
  display:flex;align-items:center;justify-content:center;
  background:rgba(124,92,252,0.12);color:var(--cyan);
  font-size:12px;font-weight:700;
}

/* ══════════════════════════════════════════════════════════
   CHAT SCREEN
   ══════════════════════════════════════════════════════════ */
.chat-header{
  display:flex;align-items:center;gap:10px;
  padding:10px 16px;
  background:linear-gradient(180deg,rgba(5,5,16,0.95) 60%,transparent);
  z-index:5;
}
.chat-header-info{display:flex;align-items:center;gap:10px;flex:1}
.chat-header-ring{
  width:36px;height:36px;border-radius:50%;
  border:2px solid var(--cyan);
  box-shadow:0 0 16px rgba(34,211,238,0.2);
}
.chat-header-name{font-size:16px;font-weight:600;color:var(--cyan)}
.chat-header-status{font-size:10px;color:var(--green);display:flex;align-items:center;gap:4px}
.dot-green{width:5px;height:5px;border-radius:50%;background:var(--green);animation:pulse 2s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:0.4}}

.back-btn{
  width:36px;height:36px;border:none;background:rgba(124,92,252,0.1);
  border-radius:50%;color:var(--cyan);font-size:24px;line-height:1;
  cursor:pointer;display:flex;align-items:center;justify-content:center;
  flex-shrink:0;
}
.back-btn:active{background:rgba(124,92,252,0.25)}

.icon-btn{
  width:36px;height:36px;border:none;background:rgba(124,92,252,0.1);
  border-radius:50%;color:var(--cyan);font-size:13px;font-weight:700;
  cursor:pointer;flex-shrink:0;
}
.icon-btn:active{background:rgba(124,92,252,0.25)}

.chat-messages{
  flex:1;overflow-y:auto;padding:8px 16px;
  display:flex;flex-direction:column;gap:6px;
  justify-content:flex-end;
  scrollbar-width:none;
}
.chat-messages::-webkit-scrollbar{display:none}

.msg{
  max-width:82%;padding:10px 14px;
  border-radius:18px;font-size:14px;line-height:1.5;
  animation:fadeUp 0.3s ease;word-wrap:break-word;
}
@keyframes fadeUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}

.msg.ava{
  align-self:flex-start;
  background:var(--surface);
  border:1px solid var(--border);
  border-bottom-left-radius:4px;
  backdrop-filter:blur(16px);
}
.msg.user{
  align-self:flex-end;
  background:linear-gradient(135deg,var(--accent),#6d4de8);
  border-bottom-right-radius:4px;
  color:#fff;
}
.msg .label{font-size:9px;color:var(--cyan);margin-bottom:3px;display:block;font-weight:600;letter-spacing:0.5px;text-transform:uppercase}
.msg .time{font-size:9px;color:var(--muted);margin-top:4px;display:block}
.msg.user .time{color:rgba(255,255,255,0.35)}

.typing-indicator{
  align-self:flex-start;padding:12px 18px;
  background:var(--surface);border-radius:18px;border-bottom-left-radius:4px;
  border:1px solid var(--border);
}
.typing-indicator span{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--cyan);margin:0 2px;animation:bounce 1.2s infinite}
.typing-indicator span:nth-child(2){animation-delay:0.2s}
.typing-indicator span:nth-child(3){animation-delay:0.4s}
@keyframes bounce{0%,60%,100%{transform:translateY(0)}30%{transform:translateY(-5px)}}

.chat-input{
  padding:6px 14px 10px;
  background:linear-gradient(0deg,rgba(5,5,16,0.98) 70%,transparent);
}
.chat-input-wrap{
  display:flex;align-items:flex-end;gap:8px;
  background:var(--surface);border-radius:24px;
  border:1px solid var(--border);padding:4px;
  backdrop-filter:blur(16px);
}
.chat-input-wrap:focus-within{border-color:var(--cyan);box-shadow:0 0 16px rgba(34,211,238,0.12)}

.chat-input-wrap textarea{
  flex:1;background:none;border:none;color:var(--text);
  font-size:15px;font-family:inherit;resize:none;
  padding:8px 4px 8px 12px;max-height:80px;line-height:1.4;outline:none;
}
.chat-input-wrap textarea::placeholder{color:var(--muted)}

.mic-btn{
  width:38px;height:38px;border-radius:50%;border:none;
  background:transparent;color:var(--cyan);font-size:24px;
  cursor:pointer;display:flex;align-items:center;justify-content:center;
  flex-shrink:0;transition:all 0.2s;
}
.mic-btn:active{background:rgba(34,211,238,0.1)}
.mic-btn.recording{background:rgba(248,113,113,0.2);color:var(--red);animation:recPulse 1s infinite}
@keyframes recPulse{0%,100%{box-shadow:none}50%{box-shadow:0 0 16px rgba(248,113,113,0.3)}}

.send-btn{
  width:38px;height:38px;border-radius:50%;border:none;
  background:linear-gradient(135deg,var(--accent),var(--cyan));
  color:#fff;font-size:16px;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;box-shadow:0 2px 12px rgba(34,211,238,0.2);
}
.send-btn:active{transform:scale(0.9)}

/* ══════════════════════════════════════════════════════════
   APPS SCREEN
   ══════════════════════════════════════════════════════════ */
.apps-header{
  padding:10px 16px;display:flex;flex-direction:column;gap:10px;
  background:linear-gradient(180deg,rgba(5,5,16,0.95) 60%,transparent);
}
.apps-header h2{font-size:22px;font-weight:700;display:flex;align-items:center;gap:10px}
.apps-search-wrap{width:100%}
.apps-search{
  width:100%;padding:10px 14px;
  background:var(--surface);border:1px solid var(--border);
  border-radius:12px;color:var(--text);font-size:14px;
  font-family:inherit;outline:none;
}
.apps-search:focus{border-color:var(--cyan);box-shadow:0 0 12px rgba(34,211,238,0.1)}
.apps-search::placeholder{color:var(--muted)}

.apps-grid{
  flex:1;overflow-y:auto;padding:10px 16px 20px;
  display:grid;grid-template-columns:repeat(4,1fr);
  gap:16px 8px;align-content:start;
  scrollbar-width:none;
}
.apps-grid::-webkit-scrollbar{display:none}

.app-tile{
  display:flex;flex-direction:column;align-items:center;gap:6px;
  cursor:pointer;transition:transform 0.15s;
  -webkit-touch-callout:none;
}
.app-tile:active{transform:scale(0.88)}

.app-icon{
  width:56px;height:56px;border-radius:14px;
  display:flex;align-items:center;justify-content:center;
  font-size:22px;font-weight:700;
  box-shadow:0 4px 16px rgba(0,0,0,0.3);
  position:relative;overflow:hidden;
}
.app-icon::after{
  content:'';position:absolute;top:0;left:0;width:100%;height:50%;
  background:linear-gradient(180deg,rgba(255,255,255,0.1) 0%,transparent 100%);
  border-radius:14px 14px 0 0;
}
.app-name{font-size:10px;color:var(--text2);text-align:center;line-height:1.2;max-width:64px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* App icon color classes */
.app-icon.c-purple{background:linear-gradient(135deg,#7c5cfc,#5b3fd4)}
.app-icon.c-cyan{background:linear-gradient(135deg,#22d3ee,#0891b2)}
.app-icon.c-green{background:linear-gradient(135deg,#4ade80,#16a34a)}
.app-icon.c-orange{background:linear-gradient(135deg,#fb923c,#ea580c)}
.app-icon.c-red{background:linear-gradient(135deg,#f87171,#dc2626)}
.app-icon.c-pink{background:linear-gradient(135deg,#e879a8,#db2777)}
.app-icon.c-blue{background:linear-gradient(135deg,#60a5fa,#2563eb)}
.app-icon.c-teal{background:linear-gradient(135deg,#2dd4bf,#0d9488)}
.app-icon.c-amber{background:linear-gradient(135deg,#fbbf24,#d97706)}
.app-icon.c-slate{background:linear-gradient(135deg,#94a3b8,#475569)}

/* ══════════════════════════════════════════════════════════
   APP DETAIL SCREEN
   ══════════════════════════════════════════════════════════ */
.detail-header{
  display:flex;align-items:center;gap:10px;
  padding:10px 16px;
  background:linear-gradient(180deg,rgba(5,5,16,0.95) 60%,transparent);
}
.detail-header h2{font-size:18px;font-weight:600}
.detail-body{
  flex:1;overflow-y:auto;padding:10px 16px 20px;
  scrollbar-width:none;
}
.detail-body::-webkit-scrollbar{display:none}

.detail-card{
  background:var(--surface);border:1px solid var(--border);
  border-radius:14px;padding:16px;margin-bottom:12px;
  backdrop-filter:blur(16px);
}
.detail-card h3{font-size:14px;font-weight:600;margin-bottom:8px;color:var(--cyan)}
.detail-card p{font-size:13px;color:var(--text2);line-height:1.6}
.detail-stat{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--border)}
.detail-stat:last-child{border:none}
.detail-stat span:first-child{color:var(--muted);font-size:12px}
.detail-stat span:last-child{font-size:13px;font-weight:600}
.detail-action{
  width:100%;padding:14px;margin-top:8px;
  background:linear-gradient(135deg,var(--accent),var(--cyan));
  border:none;border-radius:12px;color:#fff;
  font-size:14px;font-weight:600;font-family:inherit;
  cursor:pointer;
}
.detail-action:active{opacity:0.8}

/* ══════════════════════════════════════════════════════════
   SETTINGS SCREEN
   ══════════════════════════════════════════════════════════ */
.settings-header{
  display:flex;align-items:center;gap:10px;
  padding:10px 16px;
  background:linear-gradient(180deg,rgba(5,5,16,0.95) 60%,transparent);
}
.settings-header h2{font-size:22px;font-weight:700}
.settings-body{flex:1;overflow-y:auto;padding:10px 16px 20px;scrollbar-width:none}
.settings-body::-webkit-scrollbar{display:none}

.settings-section{
  background:var(--surface);border:1px solid var(--border);
  border-radius:14px;padding:4px 0;margin-bottom:14px;
  backdrop-filter:blur(16px);
}
.settings-label{font-size:11px;color:var(--muted);padding:10px 16px 4px;text-transform:uppercase;letter-spacing:0.5px;font-weight:600}
.setting-row{
  display:flex;align-items:center;justify-content:space-between;
  padding:12px 16px;
  border-bottom:1px solid rgba(124,92,252,0.06);
  font-size:14px;
}
.setting-row:last-child{border:none}
.setting-val{color:var(--muted);font-size:13px}
.setting-input{
  background:var(--surface2);border:1px solid var(--border);
  border-radius:8px;padding:6px 10px;color:var(--text);
  font-size:13px;width:140px;text-align:right;outline:none;font-family:inherit;
}
.setting-input:focus{border-color:var(--cyan)}

/* Toggle switch */
.toggle{position:relative;width:46px;height:26px;display:inline-block}
.toggle input{opacity:0;width:0;height:0}
.toggle-slider{
  position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;
  background:var(--dim);border-radius:26px;transition:0.3s;
}
.toggle-slider::before{
  content:'';position:absolute;width:20px;height:20px;
  left:3px;bottom:3px;background:var(--text);
  border-radius:50%;transition:0.3s;
}
.toggle input:checked + .toggle-slider{background:var(--accent)}
.toggle input:checked + .toggle-slider::before{transform:translateX(20px)}

.danger-btn{
  width:100%;padding:14px;margin-top:10px;
  background:rgba(248,113,113,0.1);border:1px solid rgba(248,113,113,0.2);
  border-radius:12px;color:var(--red);
  font-size:14px;font-weight:600;font-family:inherit;cursor:pointer;
}
.danger-btn:active{background:rgba(248,113,113,0.2)}

/* ══════════════════════════════════════════════════════════
   BOTTOM NAV
   ══════════════════════════════════════════════════════════ */
.bottom-nav{
  position:fixed;bottom:0;left:50%;transform:translateX(-50%);
  width:100%;max-width:430px;
  display:flex;justify-content:space-around;
  padding:6px 0 8px;
  background:rgba(5,5,16,0.95);
  border-top:1px solid var(--border);
  backdrop-filter:blur(20px);
  z-index:50;
}
.nav-btn{
  flex:1;border:none;background:none;
  display:flex;flex-direction:column;align-items:center;gap:2px;
  cursor:pointer;padding:4px 0;color:var(--muted);
  transition:color 0.2s;font-family:inherit;
}
.nav-btn.active{color:var(--cyan)}
.nav-icon{font-size:18px;font-weight:700;line-height:1}
.nav-label{font-size:9px;letter-spacing:0.3px}

/* ══════════════════════════════════════════════════════════
   DECISION CARDS (full-screen overlay)
   ══════════════════════════════════════════════════════════ */
.decision-overlay{
  position:fixed;top:0;left:50%;transform:translateX(-50%);
  width:100%;max-width:430px;height:100%;
  z-index:80;
  display:flex;align-items:flex-end;justify-content:center;
  background:rgba(5,5,16,0.6);
  animation:fadeIn 0.2s ease;
  padding:0 16px calc(var(--nav-h) + 16px);
}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}

.decision-sheet{
  width:100%;
  background:var(--surface2);
  border:1px solid var(--border);
  border-radius:20px 20px 0 0;
  overflow:hidden;
  animation:sheetUp 0.35s cubic-bezier(0.16,1,0.3,1);
  backdrop-filter:blur(24px);
}
@keyframes sheetUp{from{transform:translateY(100%)}to{transform:translateY(0)}}

.sheet-handle{
  width:36px;height:4px;border-radius:2px;
  background:var(--dim);margin:10px auto 0;
}
.sheet-header{padding:16px 20px 10px;display:flex;align-items:center;gap:12px}
.sheet-icon{
  width:44px;height:44px;border-radius:12px;
  display:flex;align-items:center;justify-content:center;font-size:20px;
}
.sheet-title{font-size:16px;font-weight:600}
.sheet-subtitle{font-size:12px;color:var(--muted);margin-top:2px}
.sheet-body{padding:8px 20px 16px;font-size:13px;line-height:1.7;color:var(--text2)}
.sheet-body strong{color:var(--text)}
.sheet-actions{display:flex;gap:10px;padding:0 20px 20px}
.sheet-btn{
  flex:1;padding:14px;border-radius:14px;
  border:none;font-size:14px;font-weight:600;
  font-family:inherit;cursor:pointer;
  transition:transform 0.15s;
}
.sheet-btn:active{transform:scale(0.96)}
.sheet-btn.primary{background:linear-gradient(135deg,var(--accent),var(--cyan));color:#fff}
.sheet-btn.secondary{background:rgba(124,92,252,0.1);color:var(--text2);border:1px solid var(--border)}

/* ══════════════════════════════════════════════════════════
   UTILITIES
   ══════════════════════════════════════════════════════════ */
.hidden{display:none !important}

/* Voice wave animation */
.voice-wave{
  display:flex;gap:3px;align-items:center;justify-content:center;
  height:40px;
}
.voice-wave span{
  width:3px;background:var(--cyan);border-radius:2px;
  animation:wave 0.6s ease-in-out infinite alternate;
}
.voice-wave span:nth-child(1){height:12px;animation-delay:0s}
.voice-wave span:nth-child(2){height:24px;animation-delay:0.1s}
.voice-wave span:nth-child(3){height:36px;animation-delay:0.2s}
.voice-wave span:nth-child(4){height:24px;animation-delay:0.3s}
.voice-wave span:nth-child(5){height:12px;animation-delay:0.4s}
@keyframes wave{to{height:8px}}

/* Loading shimmer */
@keyframes shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}
.shimmer{
  background:linear-gradient(90deg,var(--surface) 25%,rgba(124,92,252,0.08) 50%,var(--surface) 75%);
  background-size:200% 100%;animation:shimmer 1.5s infinite;
}
