/* NOVA / AURORA — bleu profond, lumière douce et accents électriques. */
:root { --cyan:#70f3ed; --purple:#b5a0ff; --muted:#9caecc; --line:#a2c8ff20; }
body {
  color:#f1f6ff;
  background:radial-gradient(ellipse at 48% -12%,#294f7d80,transparent 58%),radial-gradient(ellipse at 100% 80%,#6942bb24,transparent 48%),#0b1526;
}
body::before { opacity:.22; background-size:40px 40px; }
body::after { background:radial-gradient(ellipse at 45% 100%,#5de7df12,transparent 65%); }
.topbar { border-bottom-color:#b6d7ff18; }
.brand-mark { width:32px;height:32px; border-color:#8dfff3aa; background:#70f3ed12; box-shadow:0 0 28px #70f3ed22; }
.brand-mark span { background:#97fff1; }
.brand-lockup h1 { font-size:23px; font-weight:800; letter-spacing:.17em; text-shadow:none; }
.brand-lockup .eyebrow { font-size:8px; letter-spacing:.24em; color:#a1b5cf; }
.brand-lockup .status-dot { width:5px;height:5px; vertical-align:middle; }
.top-actions { gap:18px; }
.connection { color:#b2c6db;font-size:10px; }
.connection .pulse { width:5px;height:5px; }
.header-clock { font:500 22px 'DM Mono',monospace; color:#eaf5ff; letter-spacing:-.05em; border-left:1px solid var(--line);padding-left:18px; }
.icon-button { display:grid;place-items:center;width:34px;height:34px;border:1px solid #b6d7ff24;border-radius:11px;background:#c5e4ff08;color:#adc3dc; }
.nova-icon { width:21px;height:21px;display:block;flex-shrink:0; }
.glass-card { background:linear-gradient(135deg,#20334bdb,#15263ce8); border:1px solid #b0d5ff25; box-shadow:inset 0 1px 0 #edffff0a,0 10px 24px #020a161f; backdrop-filter:none; }
.glass-card::before { opacity:.7; background:linear-gradient(90deg,transparent,#c1e8ff70,transparent); }
.card-heading { color:#b3c5db;font-size:9px;letter-spacing:.15em; }
.text-button { color:#83ede4;font-size:10px; }
.date-card { background:radial-gradient(ellipse at 100% 0,#7966df2e,transparent 80%),linear-gradient(130deg,#243a55,#182a40); }
.date-card strong { font-weight:600;letter-spacing:-.07em;color:#f8fcff; }
.date-top { color:#acbdd3; font-size:10px; }
.date-card>span:last-child { color:#b9c9dc; }
.mini-spark { color:#b7a2ff; }
.mini-spark .nova-icon { width:18px;height:18px; }
.weather-card { background:radial-gradient(ellipse at 0 0,#ffb95d16,transparent 70%),linear-gradient(135deg,#25364b,#192a40); }
.weather-card .card-heading>span:first-child::before { content:'';display:inline-block;width:5px;height:5px;border-radius:50%;margin-right:8px;background:#ffc879;box-shadow:0 0 10px #ffbe6266; }
.live-label { border:1px solid #b0d5ff24;padding:3px 6px;border-radius:5px;color:#94a9c2;font-size:8px;letter-spacing:.08em; }
.weather-main strong { font-size:38px;font-weight:600;letter-spacing:-.06em; }
.weather-main span:not(.weather-icon) { color:#bcc9da; }
.weather-icon { color:#ffcb80;filter:drop-shadow(0 0 14px #ffc26b55); }
.weather-icon .nova-icon { width:46px;height:46px;stroke-width:1.2; }
.weather-meta { color:#98adc5;font-size:10px; }
.ephemeride { background:#b9a1ff0b;border-color:#b9a1ff2b;border-radius:9px;box-shadow:none; }
.ephemeride span { font-size:8px;color:#c6b5ff; }
.ephemeride strong { font-size:11px;font-weight:600;color:#e5ddff; }
.ephemeride small { color:#9baec8; }
.forecast { color:#ffd698; }
.forecast b { color:#d8e6f5; }
.forecast small { color:#94aac6; }
.agenda-item { position:relative;padding-left:12px;border-left:2px solid #8b9dff8a; }
.agenda-item:last-child { border-left-color:#eea96d9a; }
.agenda-time { color:#b9c2ff;font-size:10px; }
.agenda-item:last-child .agenda-time { color:#ffcb98; }
.agenda-item strong { color:#e8effa; }
.agenda-item small { color:#9cb0c8; }
.hero-panel {
  border-color:#7beae547;
  background:radial-gradient(ellipse at 50% 52%,#428b9c22,transparent 60%),radial-gradient(ellipse at 30% 0,#5364b426,transparent 60%),linear-gradient(160deg,#1c344b,#12283b 65%,#1b2d4a);
  box-shadow:inset 0 1px #b3fff530,0 0 35px #70f3ed10;
}
.hero-panel::before { content:'';position:absolute;inset:0;opacity:.12;pointer-events:none;background-image:radial-gradient(#a1e5f4 0.65px,transparent .65px);background-size:18px 18px;mask-image:radial-gradient(ellipse,black,transparent 75%); }
.hero-copy { position:relative;z-index:2; }
.hero-copy p { color:#b8cddd;letter-spacing:.01em; }
.hero-copy h2 { font-weight:600;color:#f1f8ff;text-shadow:none; }
.hero-copy em { color:#8cfff0;text-shadow:0 0 25px #70f3ed22; }
.status-pill { display:inline-flex;align-items:center;color:#9cf4df;border:1px solid #88edcf30;padding:6px 10px;border-radius:30px;background:#66e6c909;font-size:8px; }
.status-pill .pulse { width:5px;height:5px;box-shadow:0 0 8px #78edbb88; }
.hero-orbit { border-color:#94eeed12;box-shadow:none;pointer-events:none; }
.hero-orbit.orbit-two { border-color:#b1b8ff12; }
.mascot-glow { background:radial-gradient(ellipse,#71e8ed25,transparent 70%);filter:blur(22px); }
.mascot { filter:drop-shadow(0 16px 22px #020c2170) drop-shadow(0 0 16px #78e7ff15); }
.mascot-wrap::before,.mascot-wrap::after { content:'';position:absolute;left:50%;top:50%;width:258px;height:258px;transform:translate(-50%,-50%);border-radius:50%;pointer-events:none; }
.mascot-wrap::before { border:1px solid #89ffe820;box-shadow:0 0 40px #70f3ed08,inset 0 0 36px #70f3ed05; }
.mascot-wrap::after { width:236px;height:236px;border:1px dashed #a5cfff18; }
.weather-card::before { background:linear-gradient(90deg,transparent,#ffd292aa,transparent); }
.agenda-card::before { background:linear-gradient(90deg,transparent,#b4a2ff99,transparent); }
.quick-card::before { background:linear-gradient(90deg,transparent,#8dffdf99,transparent); }
.devices-card::before { background:linear-gradient(90deg,transparent,#8db5ff99,transparent); }
.voice-button { border-color:#8ff5e34a;background:linear-gradient(100deg,#77e9df18,#8e9cf910);box-shadow:inset 0 1px #c9fff10d,0 6px 20px #00000012;transition:background .2s,border-color .2s,box-shadow .2s; }
.voice-button:hover { border-color:#9afff2aa;box-shadow:0 0 24px #70f3ed19; }
.voice-button strong { font-size:12px;font-weight:600; }
.voice-button small { color:#a0b8cc;font-size:9px; }
.voice-icon { transform:none;display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:#83fff316;color:#a1fff2;filter:none; }
.voice-icon .nova-icon { width:19px;height:19px; }
.voice-arrow .nova-icon { width:17px;height:17px; }
.scene { position:relative;border-color:#b8d9ff1a;background:#b2d9ff05;border-radius:10px;box-shadow:none;transition:background .2s,border-color .2s,transform .2s; }
.scene:hover { transform:translateY(-2px); }
.scene.active { background:linear-gradient(130deg,#6de8dd17,#7c9bf40c);border-color:#7aebdb6b;box-shadow:inset 0 1px #b4fff01a; }
.scene.active::after { content:'';position:absolute;right:9px;top:10px;width:4px;height:4px;border-radius:50%;background:#8dffe4;box-shadow:0 0 7px #8dffe480; }
.scene>span { background:#73efe00d;color:#8ff5de;border:0;box-shadow:none;border-radius:8px; }
.scene:nth-child(2)>span { color:#c0a6ff;background:#a78bff13; }
.scene:nth-child(3)>span { color:#ffbd88;background:#ffbc7510; }
.scene:nth-child(4)>span { color:#a6bcff;background:#8c9fff13; }
.scene>span .nova-icon { width:19px;height:19px; }
.scene b { color:#e3edf8;font-weight:600; }
.scene small { color:#94aac4; }
.device-row { border-color:#bdd9ff13; }
.device-icon { background:#71f4e810;border:1px solid #71f4e824;color:#8ceee2;box-shadow:none;border-radius:9px; }
.device-icon .nova-icon { width:17px;height:17px; }
.device-icon.tv { color:#beaeff;background:#a88cff10;border-color:#a88cff24; }
.device-icon.sound { color:#ffcc8c;background:#ffc4780c;border-color:#ffc47823; }
.device-icon.mac { color:#a3bdff;background:#82a5ff0c;border-color:#82a5ff24; }
.device-row b { color:#e6effa;font-weight:600; }
.device-row small { color:#98acc5; }
.device-state.online { width:5px;height:5px;background:#8be7b6;box-shadow:0 0 8px #8be7b64d; }
.insight-card { background:linear-gradient(125deg,#24384a,#292f4c);border-color:#c8b0ff30;box-shadow:inset 0 1px #ffffff09; }
.insight-icon { color:#c4b0ff;filter:none;padding-top:1px; }
.insight-icon .nova-icon { width:16px;height:16px; }
.home-brief>b { color:#cfbfff;font:500 9px 'DM Mono',monospace;letter-spacing:.1em; }
.home-brief>p { color:#b4c5d9;font-size:10px; }
.delivery-brief small { color:#9fb2c9; }
.amazon-icon { box-shadow:none;background:#ffc58b18;border:1px solid #ffc58b33;color:#ffd1a0; }
.delivery-brief b { color:#f4cda3; }
.delivery-brief .nova-icon { width:16px;height:16px; }
.conversation { background:linear-gradient(120deg,#1d3046,#18293d);border-color:#a0cbff22; }
.conversation-head { border-right:1px solid #adceff17; }
.conversation-head .eyebrow { color:#97b1ce;letter-spacing:.15em;font-size:8px; }
.conversation-head h3 { font-weight:600; }
.conversation-status { color:#99cbbc;font-size:8px; }
.message-avatar { background:#72eadc0b;border-color:#83eadc32;box-shadow:none;color:#96e8da;border-radius:7px;width:23px;height:23px; }
.message p { color:#c4d4e7; }
.message time { color:#8ea6c1; }
.activity-footer { color:#8ea6c1;border-color:#b2d5ff16; }
.voice-shortcut { color:#9aece0;border-color:#a1f2df30;background:#89f1de08;border-radius:7px; }
footer { color:#8196b0;font-size:8px; }
.toast { z-index:30;backdrop-filter:blur(16px);background:#1b3448ef;border-color:#91e9dd66;box-shadow:0 8px 30px #0005; }
button:focus-visible { outline:2px solid #8af4e7;outline-offset:3px; }
@media (orientation:landscape) {
  .dashboard-grid { grid-template-columns:minmax(0,1fr) minmax(0,1.3fr) minmax(0,1fr); }
  .hero-panel { position:relative;display:flex;flex-direction:column;justify-content:space-between;align-items:stretch;padding:24px 22px 18px; }
  .hero-copy { align-self:stretch;width:100%;text-align:center; }
  .hero-copy p { margin:18px 0 8px; }
  .hero-copy h2 { font-size:clamp(23px,2.1vw,30px);max-width:340px; }
  .hero-copy h2 em { display:block;white-space:nowrap; }
  .left-rail { grid-template-rows:minmax(74px,.55fr) minmax(180px,1.85fr) minmax(100px,1fr); }
  .scene-grid { grid-template-rows:repeat(2,minmax(0,1fr)); }
  .scene { display:grid;grid-template-columns:28px minmax(0,1fr);grid-template-rows:auto auto;align-content:center;column-gap:8px;padding:8px;min-height:0; }
  .scene>span { grid-row:1 / 3;align-self:center;width:27px;height:27px;margin:0; }
  .scene b { align-self:end;font-size:10px; }
  .scene small { margin-top:3px;font-size:8px; }
  .device-row { padding:5px 0;gap:9px; }
  .device-icon { width:24px;height:24px;border-radius:7px; }
  .device-row small { font-size:8px;margin-top:2px; }
  .device-row b { font-size:10px; }
  .weather-card { padding:12px 16px; }
  .weather-main { margin:8px 0; }
  .weather-main strong { font-size:34px; }
  .forecast { margin-top:8px;padding-top:7px; }
  .forecast span { gap:3px;font-size:12px; }
  .mascot-wrap { position:absolute;inset:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;pointer-events:none; }
  .mascot { width:clamp(155px,16vw,205px);max-width:65%;max-height:42%; }
  .voice-button { z-index:3; }
  .left-rail,.right-rail { gap:12px; }
}
@media (orientation:landscape) and (max-height:680px) {
  .hero-panel { padding:16px 15px 12px; }
  .hero-copy p { margin:10px 0 6px;font-size:12px; }
  .hero-copy h2 { font-size:22px; }
  .mascot { width:160px;max-height:36%; }
  .mascot-wrap::before { width:190px;height:190px; }
  .mascot-wrap::after { width:170px;height:170px; }
  .weather-main strong { font-size:28px; }
  .weather-icon .nova-icon { width:33px;height:33px; }
  .left-rail,.right-rail { gap:8px; }
}
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none!important;transition:none!important; } }
