.product-shell{position:relative;z-index:1;min-height:100dvh}
.side-rail,.context-rail{display:none}
.app-stage{position:relative;min-height:100dvh;isolation:isolate}
.mobile-header{position:fixed;z-index:20;inset:0 0 auto;height:calc(4.5rem + var(--safe-top));padding:calc(.625rem + var(--safe-top)) max(var(--space-4),var(--safe-right)) .625rem max(var(--space-4),var(--safe-left));display:flex;align-items:center;justify-content:space-between;background:linear-gradient(180deg,var(--background-primary) 62%,rgba(8,11,18,0));pointer-events:none}
.mobile-header button{pointer-events:auto}
.mobile-brand{min-height:2.75rem;padding:0;display:flex;align-items:center;gap:.625rem;background:transparent;color:var(--text-primary)}
.mobile-brand span{width:2.125rem;height:2.125rem;display:grid;place-items:center;border:1px solid var(--border-strong);border-radius:50%;font-family:var(--font-display);font-size:var(--text-18);color:var(--accent-warm)}
.mobile-brand b{font-family:var(--font-display);font-size:var(--text-20);font-weight:600}
.avatar-button{width:2.75rem;height:2.75rem;border:1px solid var(--border-subtle);border-radius:50%;background:var(--surface-primary);color:var(--text-primary);font-size:var(--text-12);font-weight:700}
.screen{position:relative;z-index:1;min-height:100dvh;padding:calc(5.75rem + var(--safe-top)) max(var(--space-4),var(--safe-right)) calc(7rem + var(--safe-bottom)) max(var(--space-4),var(--safe-left));overflow-x:hidden}
.screen:not(.is-active){display:none}
.screen.is-active{animation:screen-enter var(--duration-slow) var(--ease-out) both}
@keyframes screen-enter{from{opacity:0;transform:translateY(.5rem)}to{opacity:1;transform:none}}
.screen-heading{max-width:42rem;margin:0 auto var(--space-8)}
.screen-heading h1{margin-top:var(--space-2);font-family:var(--font-display);font-size:var(--text-40);font-weight:400;line-height:1.02}
.screen-heading p{max-width:34rem;margin-top:var(--space-3);color:var(--text-muted);font-size:var(--text-14)}

.home-screen{display:flex;flex-direction:column;align-items:stretch}
.home-intro{max-width:35rem;margin:0 auto;text-align:center}
.home-intro h1{margin:var(--space-2) 0 var(--space-3);font-family:var(--font-display);font-size:var(--text-40);font-weight:400;line-height:1.03}
.home-intro h1 em{color:var(--accent-warm);font-style:normal}
.home-intro>p:last-child{max-width:30rem;margin:auto;color:var(--text-muted);font-size:var(--text-14)}
.ephemeris{position:relative;width:min(100%,26rem);aspect-ratio:1.25;margin:var(--space-5) auto 0;display:grid;place-items:center;overflow:visible;background:transparent;color:var(--text-primary);isolation:isolate}
.ephemeris canvas{position:absolute;inset:-18%;width:136%;height:136%;max-width:none;pointer-events:none}
.ephemeris-core{position:relative;width:10rem;height:10rem;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid rgba(118,212,204,.17);border-radius:50%;background:radial-gradient(circle at 50% 38%,rgba(118,212,204,.11),rgba(13,17,26,.82) 48%,rgba(8,11,18,.96) 72%);box-shadow:0 1.5rem 5rem rgba(0,0,0,.3),inset 0 0 0 .5rem rgba(255,255,255,.012);transition:transform var(--duration-base) var(--ease-standard),border-color var(--duration-base) var(--ease-standard),box-shadow var(--duration-base) var(--ease-standard)}
.ephemeris-core::before{content:"";position:absolute;inset:-.45rem;border-radius:50%;background:conic-gradient(from 40deg,transparent 0 11%,rgba(118,212,204,.72) 17%,transparent 25% 43%,rgba(216,182,110,.6) 49%,transparent 57% 73%,rgba(182,129,145,.62) 80%,transparent 88%);filter:blur(.15rem);opacity:.48;animation:voice-orbit 9s linear infinite;z-index:-1}
.ephemeris-core::after{content:"";position:absolute;inset:.55rem;border:1px solid rgba(255,255,255,.045);border-radius:50%;pointer-events:none}
.ephemeris:active .ephemeris-core,.ephemeris.is-listening .ephemeris-core{transform:scale(.96);border-color:rgba(118,212,204,.5);box-shadow:0 1rem 4rem rgba(0,0,0,.3),0 0 3rem rgba(118,212,204,.12)}
.voice-portal{position:relative;width:4.75rem;height:4.75rem;margin-bottom:var(--space-3);display:grid;place-items:center;border:1px solid rgba(255,255,255,.1);border-radius:50%;background:radial-gradient(circle at 42% 30%,rgba(255,255,255,.16),rgba(118,212,204,.11) 28%,rgba(12,19,30,.94) 69%);box-shadow:inset 0 0 1.4rem rgba(118,212,204,.1),0 0 2.5rem rgba(118,212,204,.13);overflow:hidden}
.voice-portal::before{content:"";position:absolute;width:7rem;height:2.25rem;border-radius:50%;background:linear-gradient(90deg,rgba(118,212,204,.05),rgba(118,212,204,.32),rgba(216,182,110,.24),rgba(182,129,145,.25),rgba(118,212,204,.05));filter:blur(.55rem);transform:rotate(-18deg);animation:voice-aurora 4.6s var(--ease-standard) infinite alternate}
.voice-portal::after{content:"";position:absolute;inset:.35rem;border:1px solid rgba(118,212,204,.13);border-radius:50%}
.voice-glyph{position:relative;z-index:1;height:2.5rem;display:flex;align-items:center;gap:.2rem;filter:drop-shadow(0 0 .5rem rgba(118,212,204,.5))}
.voice-glyph i{width:.22rem;height:1rem;border-radius:var(--radius-round);background:var(--accent-primary);transform-origin:center;animation:voice-thread 1.8s var(--ease-standard) infinite alternate}
.voice-glyph i:nth-child(2){height:1.65rem;background:var(--accent-warm);animation-delay:-1.1s}.voice-glyph i:nth-child(3){height:2.2rem;background:#e7e9ec;animation-delay:-.45s}.voice-glyph i:nth-child(4){height:1.45rem;background:var(--accent-secondary);animation-delay:-1.45s}.voice-glyph i:nth-child(5){height:.8rem;animation-delay:-.8s}
.ephemeris.is-listening .voice-glyph i{animation-duration:.52s}.ephemeris.is-listening .voice-portal{box-shadow:inset 0 0 1.8rem rgba(118,212,204,.2),0 0 3.5rem rgba(118,212,204,.26)}
.ephemeris-core>b{max-width:8rem;font-size:var(--text-13);font-weight:700;line-height:1.2;text-align:center}
.ephemeris-core>small{margin-top:.35rem;display:flex;align-items:center;gap:.35rem;color:var(--text-muted);font-size:var(--text-10)}
.ephemeris-core>small i{width:.35rem;height:.35rem;border-radius:50%;background:var(--accent-primary);box-shadow:0 0 .65rem rgba(118,212,204,.75)}
@keyframes voice-thread{0%{transform:scaleY(.52);opacity:.65}100%{transform:scaleY(1.08);opacity:1}}
@keyframes voice-orbit{to{transform:rotate(360deg)}}
@keyframes voice-aurora{0%{transform:translateX(-.55rem) rotate(-18deg) scale(.9)}100%{transform:translateX(.55rem) rotate(-7deg) scale(1.1)}}
.composer{height:3.75rem;display:grid;grid-template-columns:2.75rem minmax(0,1fr) 2.75rem;align-items:center;gap:var(--space-1);border:1px solid var(--border-subtle);border-radius:var(--radius-round);background:rgba(18,23,34,.86);box-shadow:var(--shadow-raised);backdrop-filter:blur(var(--blur-surface));-webkit-backdrop-filter:blur(var(--blur-surface))}
.home-composer{width:min(100%,37rem);margin:0 auto}
.composer input{width:100%;height:100%;min-width:0;border:0;outline:0;background:transparent;color:var(--text-primary);font-size:var(--text-14)}
.composer input::placeholder{color:var(--text-muted)}
.icon-button,.send-button{width:2.75rem;height:2.75rem;display:grid;place-items:center;border-radius:50%;background:transparent;color:var(--text-secondary)}
.send-button{background:var(--text-primary);color:var(--background-primary)}
.send-button svg{width:1.25rem;height:1.25rem}
.quick-actions{width:min(100%,37rem);margin:var(--space-3) auto 0;display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-2)}
.quick-actions button{min-width:0;min-height:3rem;padding:0 var(--space-3);display:flex;align-items:center;justify-content:center;gap:var(--space-2);border:1px solid var(--border-subtle);border-radius:var(--radius-round);background:var(--surface-faint);color:var(--text-secondary);font-size:var(--text-12);font-weight:600}
.quick-actions svg{width:1.125rem;height:1.125rem;color:var(--accent-primary)}
.home-insight{width:min(100%,42rem);margin:var(--space-8) auto 0;padding:var(--space-5) 0;border-top:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle)}
.home-insight h2{margin-top:var(--space-1);font-family:var(--font-display);font-size:var(--text-24);font-weight:400}
.home-insight>p{margin-top:var(--space-3);color:var(--text-secondary);font-size:var(--text-14)}
.home-insight>button{min-height:2.75rem;margin-top:var(--space-4);padding:0;display:flex;align-items:center;gap:var(--space-2);background:transparent;color:var(--accent-primary);font-size:var(--text-14);font-weight:700}
.home-insight>button svg{width:1.125rem;height:1.125rem}
.next-period{width:min(100%,42rem);min-height:5.75rem;margin:0 auto;padding:var(--space-4) 0;display:grid;grid-template-columns:3.5rem minmax(0,1fr) 2rem;align-items:center;gap:var(--space-3);border-bottom:1px solid var(--border-subtle);background:transparent;color:var(--text-primary);text-align:left}
.next-period time{display:grid;text-align:center;color:var(--accent-warm);line-height:1}
.next-period time b{font-family:var(--font-display);font-size:var(--text-32);font-weight:400}
.next-period time span{font-size:var(--text-11);text-transform:uppercase}
.next-period>span{display:grid;gap:.125rem}
.next-period small,.next-period em{color:var(--text-muted);font-size:var(--text-11);font-style:normal}
.next-period>span b{font-size:var(--text-14)}
.next-period>svg{color:var(--text-muted)}

.conversation-list{max-width:42rem;margin:auto;border-top:1px solid var(--border-subtle)}
.conversation-row{width:100%;min-height:6rem;padding:var(--space-4) 0;display:grid;grid-template-columns:3.5rem minmax(0,1fr) auto;align-items:center;gap:var(--space-3);border-bottom:1px solid var(--border-subtle);background:transparent;color:var(--text-primary);text-align:left}
.conversation-row>span:nth-child(2){display:grid;gap:.125rem}
.conversation-row b{font-size:var(--text-16)}
.conversation-row small,.conversation-row em{color:var(--text-muted);font-size:var(--text-12);font-style:normal}
.conversation-avatar,.conversation-row img{width:3.5rem;height:3.5rem;border-radius:50%;object-fit:cover}
.conversation-avatar{display:grid;place-items:center;border:1px solid rgba(118,212,204,.3);background:radial-gradient(circle at 34% 25%,rgba(118,212,204,.22),var(--surface-primary));font-family:var(--font-display);color:var(--accent-warm);font-size:var(--text-24)}
.conversation-row>i{min-width:1.25rem;height:1.25rem;display:grid;place-items:center;border-radius:50%;background:var(--accent-primary);color:var(--background-primary);font-size:.625rem;font-style:normal;font-weight:700}
.conversation-row>i:empty{background:transparent;border:.25rem solid var(--accent-primary)}
.expert-conversation-rows{display:contents}
.empty-invitation{max-width:42rem;margin:var(--space-10) auto 0;padding-top:var(--space-6);display:grid;grid-template-columns:2.75rem minmax(0,1fr);gap:var(--space-4);border-top:1px solid var(--border-subtle)}
.empty-invitation>svg{color:var(--text-muted)}
.empty-invitation p{margin-top:var(--space-1);color:var(--text-muted);font-size:var(--text-14)}
.empty-invitation button{grid-column:2;justify-self:start;min-height:2.75rem;padding:0;color:var(--accent-primary);background:transparent;font-weight:700}

.assistant-chat{position:fixed;z-index:35;top:var(--app-top,0);right:0;left:0;height:var(--app-height,100dvh);display:flex;flex-direction:column;overflow:hidden;background:radial-gradient(circle at 82% 8%,rgba(118,212,204,.055),transparent 22rem),var(--background-primary)}
.assistant-chat-head{height:calc(4.75rem + var(--safe-top));padding:var(--safe-top) max(var(--space-4),var(--safe-right)) 0 max(var(--space-4),var(--safe-left));display:grid;grid-template-columns:2.75rem 2.5rem minmax(0,1fr) 2.75rem;align-items:center;gap:var(--space-2);border-bottom:1px solid var(--border-subtle);background:rgba(8,11,18,.96)}
.assistant-chat-head>button{width:2.75rem;height:2.75rem;display:grid;place-items:center;border-radius:50%;background:transparent;color:var(--text-secondary)}
.assistant-chat-head>button svg{width:1.25rem;height:1.25rem}
.assistant-chat-head .chat-back{border:1px solid var(--border-subtle)}
.assistant-chat-head .chat-back svg{transform:rotate(180deg)}
.assistant-chat-head .chat-voice{color:var(--accent-primary)}
.assistant-chat-head .chat-call{border:1px solid rgba(123,199,159,.28);color:var(--success);background:rgba(123,199,159,.06)}
.chat-avatar{width:2.5rem;height:2.5rem;display:grid;place-items:center;border:1px solid rgba(118,212,204,.25);border-radius:50%;background:radial-gradient(circle at 35% 28%,rgba(118,212,204,.16),var(--surface-primary));color:var(--accent-warm);font-family:var(--font-display)}
.assistant-chat-head h1{font-family:var(--font-display);font-size:var(--text-18);font-weight:600;line-height:1.1}
.assistant-chat-head p{margin-top:.125rem;display:flex;align-items:center;gap:.375rem;color:var(--text-muted);font-size:.625rem}
.assistant-chat-head p i{width:.375rem;height:.375rem;border-radius:50%;background:var(--success);box-shadow:0 0 .625rem rgba(123,199,159,.55)}
.assistant-chat-stream{min-height:0;flex:1;padding:var(--space-8) max(var(--space-4),var(--safe-right)) var(--space-5) max(var(--space-4),var(--safe-left));overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:rgba(232,235,240,.16) transparent}
.assistant-chat-stream::-webkit-scrollbar{width:.375rem}.assistant-chat-stream::-webkit-scrollbar-track{background:transparent}.assistant-chat-stream::-webkit-scrollbar-thumb{border-radius:var(--radius-round);background:rgba(232,235,240,.16)}
.chat-welcome{max-width:27rem;margin:5vh auto var(--space-10);text-align:center}
.chat-welcome>span{width:3.5rem;height:3.5rem;margin:0 auto var(--space-4);display:grid;place-items:center;border:1px solid rgba(118,212,204,.25);border-radius:50%;background:radial-gradient(circle at 35% 28%,rgba(118,212,204,.15),var(--surface-primary));color:var(--accent-warm);font-family:var(--font-display);font-size:var(--text-20)}
.chat-welcome h2{font-family:var(--font-display);font-size:var(--text-24);font-weight:400}.chat-welcome p{margin-top:var(--space-2);color:var(--text-muted);font-size:var(--text-12)}
.chat-day{width:min(100%,43rem);margin:var(--space-4) auto var(--space-6);display:flex;align-items:center;gap:var(--space-3);color:var(--text-muted);font-size:.625rem;text-transform:uppercase}.chat-day::before,.chat-day::after{content:"";height:1px;flex:1;background:var(--border-subtle)}
.assistant-message{width:min(100%,43rem);margin:0 auto var(--space-5);display:grid;grid-template-columns:2.25rem minmax(0,1fr);gap:var(--space-3);animation:message-in var(--duration-base) var(--ease-out) both}
@keyframes message-in{from{opacity:0;transform:translateY(.375rem)}to{opacity:1;transform:none}}
.assistant-message.user{display:flex;justify-content:flex-end}
.assistant-message-avatar{width:2.25rem;height:2.25rem;display:grid;place-items:center;border:1px solid rgba(118,212,204,.2);border-radius:50%;color:var(--accent-warm);font-family:var(--font-display);font-size:var(--text-12)}
.assistant-message-body{min-width:0;max-width:34rem}
.assistant-message-body>small{display:block;margin-bottom:.375rem;color:var(--text-muted);font-size:.625rem}
.assistant-message-body>p{color:var(--text-secondary);font-size:var(--text-14);line-height:1.58;white-space:pre-wrap;overflow-wrap:anywhere}
.assistant-message.user .assistant-message-body{max-width:min(85%,30rem);padding:var(--space-3) var(--space-4);border:1px solid var(--border-subtle);border-radius:var(--radius-lg) var(--radius-lg) var(--radius-sm) var(--radius-lg);background:var(--surface-secondary)}
.assistant-message.user .assistant-message-body>small{text-align:right}.assistant-message.user .assistant-message-body>p{color:var(--text-primary)}
.assistant-message.is-error .assistant-message-body>p{color:var(--text-muted)}
.assistant-thinking{width:min(100%,43rem);margin:0 auto var(--space-5);display:grid;grid-template-columns:2.25rem minmax(0,1fr);gap:var(--space-3)}
.assistant-thinking>span{width:2.25rem;height:2.25rem;display:grid;place-items:center;border:1px solid rgba(118,212,204,.2);border-radius:50%;color:var(--accent-warm);font-family:var(--font-display);font-size:var(--text-12)}
.assistant-thinking>div{display:flex;align-items:center;gap:.3125rem;color:var(--text-muted);font-size:var(--text-12)}
.assistant-thinking i{width:.3125rem;height:.3125rem;border-radius:50%;background:var(--accent-primary);animation:thinking-dot .9s ease-in-out infinite alternate}.assistant-thinking i:nth-child(2){animation-delay:.18s}.assistant-thinking i:nth-child(3){animation-delay:.36s}
@keyframes thinking-dot{to{opacity:.25;transform:translateY(-.25rem)}}
.message-action{width:100%;min-height:4.75rem;margin-top:var(--space-4);padding:var(--space-3) var(--space-4);display:grid;grid-template-columns:2.5rem minmax(0,1fr) 1.25rem;align-items:center;gap:var(--space-3);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:linear-gradient(135deg,rgba(118,212,204,.07),rgba(216,182,110,.025));color:var(--text-primary);text-align:left}
.message-action>span:first-child{width:2.5rem;height:2.5rem;display:grid;place-items:center;border:1px solid rgba(118,212,204,.22);border-radius:50%;color:var(--accent-primary)}.message-action>span:first-child svg{width:1.125rem;height:1.125rem}.message-action>span:nth-child(2){display:grid}.message-action b{font-size:var(--text-12)}.message-action small{color:var(--text-muted);font-size:.625rem}.message-action>svg{width:1rem;height:1rem;color:var(--text-muted)}
.chat-suggestions{padding:var(--space-2) max(var(--space-4),var(--safe-right)) var(--space-2) max(var(--space-4),var(--safe-left));display:flex;gap:var(--space-2);overflow-x:auto;scrollbar-width:none}.chat-suggestions::-webkit-scrollbar{display:none}
.chat-suggestions button{min-height:2.75rem;padding:0 var(--space-4);flex:0 0 auto;border:1px solid var(--border-subtle);border-radius:var(--radius-round);background:var(--surface-faint);color:var(--text-secondary);font-size:var(--text-11)}
.assistant-chat-composer{min-height:calc(4.75rem + var(--safe-bottom));padding:.5rem max(var(--space-3),var(--safe-right)) calc(.5rem + var(--safe-bottom)) max(var(--space-3),var(--safe-left));display:grid;grid-template-columns:2.75rem minmax(0,1fr) 2.75rem;align-items:end;gap:var(--space-1);border-top:1px solid var(--border-subtle);background:var(--background-primary)}
.assistant-chat-composer>button{width:2.75rem;height:2.75rem;display:grid;place-items:center;border-radius:50%;background:transparent;color:var(--text-secondary)}.assistant-chat-composer>button:last-child{background:var(--text-primary);color:var(--background-primary)}.assistant-chat-composer svg{width:1.25rem;height:1.25rem}
.assistant-chat-composer textarea{width:100%;min-height:2.75rem;max-height:8rem;padding:.7rem var(--space-3);resize:none;overflow-y:auto;border:1px solid var(--border-subtle);border-radius:1.375rem;outline:0;background:var(--surface-primary);color:var(--text-primary);font-size:var(--text-14);line-height:1.35}.assistant-chat-composer textarea:focus{border-color:rgba(118,212,204,.45)}.assistant-chat-composer textarea::placeholder{color:var(--text-muted)}
.assistant-chat.is-busy .assistant-chat-composer>button:last-child{opacity:.45;pointer-events:none}
.chat-expert-avatar{width:2.5rem;height:2.5rem;object-fit:cover;border-radius:50%;filter:saturate(.82)}
.expert-chat .assistant-chat-composer{grid-template-columns:minmax(0,1fr) 2.75rem}.expert-chat .assistant-chat-composer>button{grid-column:2}.expert-chat-stream{padding-top:var(--space-5)}
.expert-message{width:min(100%,43rem);margin:0 auto var(--space-4);display:flex}.expert-message.user{justify-content:flex-end}.expert-message>div{max-width:min(82%,32rem)}.expert-message small{display:block;margin-bottom:.375rem;color:var(--text-muted);font-size:.625rem}.expert-message p{padding:var(--space-3) var(--space-4);border:1px solid var(--border-subtle);border-radius:var(--radius-lg) var(--radius-lg) var(--radius-lg) var(--radius-sm);background:var(--surface-faint);color:var(--text-secondary);font-size:var(--text-13);line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere}.expert-message.user p{border-radius:var(--radius-lg) var(--radius-lg) var(--radius-sm) var(--radius-lg);background:var(--surface-secondary);color:var(--text-primary)}.expert-message.system{justify-content:center}.expert-message.system>div{max-width:32rem;text-align:center}.expert-message.system p{padding:var(--space-2) 0;border:0;background:transparent;color:var(--text-muted);font-size:var(--text-11)}

.service-layer{position:fixed;inset:0;z-index:24;height:var(--app-height,100dvh);padding:calc(var(--safe-top) + var(--space-3)) max(var(--space-4),var(--safe-right)) calc(var(--safe-bottom) + var(--space-6)) max(var(--space-4),var(--safe-left));overflow-y:auto;overscroll-behavior:contain;background:var(--background-primary)}
.product-shell.expert-open .mobile-dock,.product-shell.expert-open .mobile-header,
.product-shell.chat-open .mobile-dock,.product-shell.chat-open .mobile-header{visibility:hidden;pointer-events:none}
.service-layer-head{min-height:3.5rem;max-width:58rem;margin:0 auto;display:grid;grid-template-columns:2.75rem minmax(0,1fr);align-items:center;gap:var(--space-3)}.service-layer-head>button{width:2.75rem;height:2.75rem;display:grid;place-items:center;border:1px solid var(--border-subtle);border-radius:50%;background:transparent;color:var(--text-secondary)}.service-layer-head>button svg{width:1rem;height:1rem;transform:rotate(180deg)}.service-layer-head h1{margin-top:.125rem;font-family:var(--font-display);font-size:var(--text-24);font-weight:400}
.expert-intro,.expert-filters,.expert-list,.expert-detail-content{max-width:58rem;margin-left:auto;margin-right:auto}.expert-intro{padding:var(--space-5) 0;color:var(--text-muted);font-size:var(--text-13)}
.expert-filters{display:flex;gap:var(--space-2);overflow-x:auto;scrollbar-width:none}.expert-filters::-webkit-scrollbar{display:none}.expert-filters button{min-height:2.75rem;padding:0 var(--space-4);flex:0 0 auto;border:1px solid var(--border-subtle);border-radius:var(--radius-round);background:transparent;color:var(--text-muted);font-size:var(--text-11)}.expert-filters button.is-active{border-color:rgba(118,212,204,.38);background:rgba(118,212,204,.07);color:var(--accent-primary)}
.expert-list{padding:var(--space-6) 0;display:grid;gap:var(--space-3)}.expert-list-loading,.expert-list-empty{min-height:18rem;display:flex;align-items:center;justify-content:center;gap:var(--space-3);color:var(--text-muted);font-size:var(--text-12)}.expert-list-loading i{width:.5rem;height:.5rem;border-radius:50%;background:var(--accent-primary);animation:chart-pulse 1s ease-in-out infinite}
.expert-card{width:100%;min-height:8.5rem;padding:var(--space-3);display:grid;grid-template-columns:6rem minmax(0,1fr) 1.5rem;align-items:center;gap:var(--space-4);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-faint);color:var(--text-primary);text-align:left}.expert-card img{width:6rem;height:7rem;object-fit:cover;border-radius:var(--radius-sm);filter:saturate(.82) contrast(1.03)}.expert-card>span{min-width:0;display:grid;align-content:center}.expert-card small{color:var(--accent-primary);font-size:.625rem;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.expert-card b{margin:.25rem 0;font-family:var(--font-display);font-size:var(--text-22);font-weight:400}.expert-card p{display:-webkit-box;overflow:hidden;color:var(--text-muted);font-size:var(--text-11);line-height:1.45;-webkit-line-clamp:2;-webkit-box-orient:vertical}.expert-card em{margin-top:var(--space-2);color:var(--text-secondary);font-size:.625rem;font-style:normal}.expert-card>svg{color:var(--text-muted)}
.expert-hero{margin-top:var(--space-5);display:grid;gap:var(--space-5);border-bottom:1px solid var(--border-subtle);padding-bottom:var(--space-7)}.expert-hero img{width:100%;max-height:28rem;aspect-ratio:4/5;object-fit:cover;border-radius:var(--radius-md);filter:saturate(.86) contrast(1.04)}.expert-hero-copy{display:grid;align-content:end}.expert-hero-copy>small{color:var(--accent-primary);font-size:.625rem;text-transform:uppercase}.expert-hero-copy h2{margin:var(--space-2) 0 var(--space-1);font-family:var(--font-display);font-size:var(--text-36);font-weight:400}.expert-hero-copy>p{color:var(--text-secondary);font-size:var(--text-13);line-height:1.6}.expert-meta{margin-top:var(--space-4);display:flex;flex-wrap:wrap;gap:var(--space-2)}.expert-meta span{min-height:2.25rem;padding:0 var(--space-3);display:flex;align-items:center;border:1px solid var(--border-subtle);border-radius:var(--radius-round);color:var(--text-muted);font-size:.625rem}.expert-online{color:var(--accent-primary)!important}.expert-online::before{content:"";width:.375rem;height:.375rem;margin-right:.375rem;border-radius:50%;background:currentColor}
.expert-sections{display:grid;border-bottom:1px solid var(--border-subtle)}.expert-sections section{padding:var(--space-6) 0;border-bottom:1px solid var(--border-subtle)}.expert-sections section:last-child{border-bottom:0}.expert-sections small{color:var(--text-muted);font-size:.625rem;text-transform:uppercase}.expert-sections h3{margin:var(--space-2) 0;font-family:var(--font-display);font-size:var(--text-22);font-weight:400}.expert-sections p{color:var(--text-secondary);font-size:var(--text-13);line-height:1.65}.expert-topics{display:flex;flex-wrap:wrap;gap:var(--space-2)}.expert-topics span{padding:.5rem .75rem;border:1px solid var(--border-subtle);border-radius:var(--radius-round);color:var(--text-muted);font-size:.625rem}
.booking-section{padding:var(--space-7) 0}.booking-section>header h3{margin-top:.25rem;font-family:var(--font-display);font-size:var(--text-24);font-weight:400}.booking-section>header p{margin-top:var(--space-2);color:var(--text-muted);font-size:var(--text-12)}.slot-list{margin-top:var(--space-5);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2)}.slot-list button{min-height:3.5rem;padding:var(--space-2);display:grid;place-items:center;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary)}.slot-list button small{color:var(--text-muted);font-size:.5625rem}.slot-list button b{font-size:var(--text-12)}.slot-list button.is-selected{border-color:rgba(118,212,204,.55);background:rgba(118,212,204,.07);color:var(--accent-primary)}.slots-empty{min-height:8rem;margin-top:var(--space-5);display:grid;align-content:center;border-top:1px solid var(--border-subtle);color:var(--text-muted);font-size:var(--text-12)}
.booking-form{margin-top:var(--space-6);padding-top:var(--space-6);display:grid;gap:var(--space-3);border-top:1px solid var(--border-subtle)}.booking-form label{display:grid;gap:var(--space-2);color:var(--text-muted);font-size:var(--text-11)}.booking-form textarea{min-height:7.5rem;padding:var(--space-3);resize:vertical;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);outline:0;background:var(--surface-primary);color:var(--text-primary);font-size:var(--text-13);line-height:1.5}.booking-form textarea:focus{border-color:rgba(118,212,204,.5)}.booking-form>button{min-height:3.25rem;border-radius:var(--radius-sm);background:var(--text-primary);color:var(--background-primary);font-weight:700}.booking-form>button:disabled{opacity:.4}.booking-form [role="alert"]{min-height:1.25rem;color:var(--error);font-size:var(--text-11)}
.intro-session{margin-top:var(--space-5);padding:var(--space-4) 0;display:grid;gap:.2rem;border-top:1px solid rgba(216,182,110,.24);border-bottom:1px solid rgba(216,182,110,.24)}.intro-session b{color:var(--accent-warm);font-size:var(--text-13)}.intro-session span{color:var(--text-muted);font-size:var(--text-11)}
.booking-form .context-consent{min-height:5.25rem;padding:var(--space-3);display:grid;grid-template-columns:1.5rem minmax(0,1fr);align-items:start;gap:var(--space-3);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--surface-faint);cursor:pointer}.context-consent input{position:absolute;width:1px;height:1px;opacity:0}.context-consent-check{width:1.5rem;height:1.5rem;display:grid;place-items:center;border:1px solid var(--border-strong);border-radius:50%;transition:background var(--duration-fast),border-color var(--duration-fast)}.context-consent input:checked+.context-consent-check{border-color:var(--accent-primary);background:var(--accent-primary)}.context-consent input:checked+.context-consent-check::after{content:"";width:.45rem;height:.75rem;border-right:2px solid var(--background-primary);border-bottom:2px solid var(--background-primary);transform:translateY(-.1rem) rotate(45deg)}.context-consent input:focus-visible+.context-consent-check{outline:2px solid var(--accent-primary);outline-offset:3px}.context-consent>span:last-child{display:grid;gap:.2rem}.context-consent b{color:var(--text-primary);font-size:var(--text-12)}.context-consent small{color:var(--text-muted);font-size:var(--text-11);line-height:1.45}
.booking-success{min-height:18rem;display:grid;place-items:center;align-content:center;text-align:center}.booking-success>span{width:4rem;height:4rem;display:grid;place-items:center;border:1px solid rgba(118,212,204,.42);border-radius:50%;color:var(--accent-primary);font-size:var(--text-24)}.booking-success h2{margin:var(--space-5) 0 var(--space-2);font-family:var(--font-display);font-size:var(--text-28);font-weight:400}.booking-success p{max-width:28rem;color:var(--text-muted);font-size:var(--text-13)}.booking-success>small{max-width:25rem;margin-top:var(--space-3);color:var(--accent-primary);font-size:var(--text-11)}.booking-success button{min-height:3rem;margin-top:var(--space-6);background:transparent;color:var(--accent-primary);font-weight:700}
.settings-panel-content{max-width:42rem;margin:var(--space-6) auto 0}.settings-panel-intro{padding-bottom:var(--space-6);border-bottom:1px solid var(--border-subtle)}.settings-panel-intro h2{font-family:var(--font-display);font-size:var(--text-32);font-weight:400}.settings-panel-intro p{margin-top:var(--space-2);color:var(--text-muted);font-size:var(--text-13);line-height:1.6}
.preference-group{padding:var(--space-6) 0;border-bottom:1px solid var(--border-subtle)}.preference-group>small{color:var(--accent-primary);font-size:.625rem;text-transform:uppercase}.preference-group>h3{margin:var(--space-2) 0;font-family:var(--font-display);font-size:var(--text-22);font-weight:400}.preference-group>p{color:var(--text-muted);font-size:var(--text-12);line-height:1.55}
.preference-options{margin-top:var(--space-4);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2)}.preference-options button{min-height:3.25rem;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);font-size:var(--text-12)}.preference-options button.is-active{border-color:rgba(118,212,204,.5);background:rgba(118,212,204,.07);color:var(--accent-primary)}
.preference-row{min-height:4.75rem;display:grid;grid-template-columns:minmax(0,1fr) 3.25rem;align-items:center;gap:var(--space-3);border-bottom:1px solid var(--border-subtle)}.preference-row>span{display:grid}.preference-row b{font-size:var(--text-13)}.preference-row small{color:var(--text-muted);font-size:.625rem}.preference-switch{position:relative;width:3.25rem;height:1.875rem;border-radius:var(--radius-round);background:var(--surface-secondary);transition:background .2s ease}.preference-switch::after{content:"";position:absolute;width:1.375rem;height:1.375rem;left:.25rem;top:.25rem;border-radius:50%;background:var(--text-muted);transition:transform .2s var(--ease-out),background .2s ease}.preference-switch[aria-pressed="true"]{background:rgba(118,212,204,.2)}.preference-switch[aria-pressed="true"]::after{transform:translateX(1.375rem);background:var(--accent-primary)}
.clear-memory{min-height:3rem;margin-top:var(--space-5);padding:0;background:transparent;color:var(--accent-secondary);font-weight:700}.settings-loading{min-height:16rem;display:grid;place-items:center;color:var(--text-muted);font-size:var(--text-12)}
.settings-panel-content .preference-row{padding-block:var(--space-3)}
.settings-panel-content .preference-row small{font-size:var(--text-13);line-height:1.5;margin-top:var(--space-2)}
.settings-panel-content .preference-switch{height:2.75rem}
.settings-panel-content .preference-switch::after{top:.6875rem}
.notification-privacy{margin-top:var(--space-5);font-size:var(--text-13);line-height:1.6;color:var(--text-muted)}
#referralStatus{overflow-wrap:anywhere;font-size:var(--text-13);line-height:1.6}
.memory-statistics{margin-top:var(--space-5);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle)}.memory-statistics span{min-height:4.5rem;padding:var(--space-3) 0;display:grid;align-content:center}.memory-statistics span+span{padding-left:var(--space-4);border-left:1px solid var(--border-subtle)}.memory-statistics b{font-family:var(--font-display);font-size:var(--text-24);font-weight:400}.memory-statistics small{color:var(--text-muted);font-size:var(--text-10)}.memory-topics{margin-top:var(--space-4);display:flex;flex-wrap:wrap;gap:var(--space-2)}.memory-topics>small{width:100%;color:var(--text-muted);font-size:var(--text-10)}.memory-topics span{padding:.4rem .65rem;border:1px solid var(--border-subtle);border-radius:var(--radius-round);color:var(--text-secondary);font-size:var(--text-10)}
.shared-context-banner{margin-bottom:var(--space-5);padding:var(--space-4) 0;display:grid;gap:var(--space-2);border-top:1px solid rgba(118,212,204,.28);border-bottom:1px solid rgba(118,212,204,.28)}.shared-context-banner>b{font-family:var(--font-display);font-size:var(--text-20);font-weight:400}.shared-context-banner p{color:var(--text-muted);font-size:var(--text-11)}.shared-context-banner button{width:max-content;min-height:2.75rem;padding:0;background:transparent;color:var(--accent-secondary);font-size:var(--text-11);font-weight:700}

.chart-loading,.chart-error{min-height:24rem;max-width:34rem;margin:auto;display:grid;place-items:center;align-content:center;text-align:center}
.chart-loading>span{height:3rem;display:flex;align-items:center;gap:.375rem}
.chart-loading>span i{width:.375rem;height:.375rem;border-radius:50%;background:var(--accent-primary);animation:chart-pulse 1s ease-in-out infinite}
.chart-loading>span i:nth-child(2){animation-delay:.16s;background:var(--accent-warm)}.chart-loading>span i:nth-child(3){animation-delay:.32s;background:var(--accent-secondary)}
.chart-loading b{margin-top:var(--space-3);font-family:var(--font-display);font-size:var(--text-24);font-weight:400}.chart-loading small{margin-top:var(--space-2);color:var(--text-muted);font-size:var(--text-11)}
@keyframes chart-pulse{50%{opacity:.25;transform:translateY(-.5rem)}}
.chart-error>span{width:4rem;height:4rem;display:grid;place-items:center;border:1px solid var(--border-strong);border-radius:50%;color:var(--accent-primary)}.chart-error>span svg{width:1.75rem;height:1.75rem}
.chart-error h2{margin:var(--space-5) 0 var(--space-2);font-family:var(--font-display);font-size:var(--text-28);font-weight:400}.chart-error p{max-width:28rem;color:var(--text-muted);font-size:var(--text-14)}
.chart-error h2,.dates-error h2{max-width:22rem;line-height:1.18}.chart-error p,.dates-error p{max-width:23rem;line-height:1.55}.chart-error button{min-height:3rem;margin-top:var(--space-6);padding:0 var(--space-4);display:flex;align-items:center;gap:var(--space-2);border:1px solid rgba(118,212,204,.28);border-radius:var(--radius-round);background:rgba(118,212,204,.055);color:var(--accent-primary);font-weight:700}.chart-error button svg{width:1rem;height:1rem}
.chart-layout{max-width:62rem;margin:auto}
.chart-visual{position:relative;aspect-ratio:1;display:grid;place-items:center;isolation:isolate}
.chart-visual::before{content:"";position:absolute;inset:12%;border-radius:50%;background:radial-gradient(circle,rgba(118,212,204,.06),transparent 68%);filter:blur(.75rem);z-index:-1}
.chart-visual>svg{width:100%;height:100%;overflow:visible}
.chart-center{position:absolute;width:7.5rem;height:7.5rem;padding:var(--space-3);display:grid;place-items:center;align-content:center;border:1px solid rgba(118,212,204,.18);border-radius:50%;background:rgba(8,11,18,.88);text-align:center;pointer-events:none}
.chart-center small,.chart-center em{color:var(--text-muted);font-size:.625rem;font-style:normal}.chart-center b{max-width:6rem;margin:.125rem 0;font-family:var(--font-display);font-size:var(--text-18);font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chart-ring{fill:none;stroke:rgba(232,235,240,.11);stroke-width:1}.chart-ring.is-strong{stroke:rgba(232,235,240,.22)}
.chart-house-line{stroke:rgba(232,235,240,.1);stroke-width:1}.chart-house-label{fill:var(--text-muted);font-family:var(--font-ui);font-size:9px;text-anchor:middle;dominant-baseline:middle}
.chart-zodiac-label{fill:rgba(232,235,240,.6);font-family:var(--font-ui);font-size:8.5px;font-weight:600;text-anchor:middle;dominant-baseline:middle;text-transform:uppercase}
.chart-aspect{stroke-width:1;opacity:.34}.chart-aspect.is-soft{stroke:var(--accent-primary)}.chart-aspect.is-hard{stroke:var(--accent-secondary)}.chart-aspect.is-neutral{stroke:var(--accent-warm)}
.chart-planet{cursor:pointer;outline:none}.chart-planet circle{fill:var(--surface-elevated);stroke:rgba(232,235,240,.24);stroke-width:1.2;transition:stroke .2s ease,transform .2s ease;transform-box:fill-box;transform-origin:center}.chart-planet text{fill:var(--text-primary);font-family:var(--font-ui);font-size:8.5px;font-weight:600;text-anchor:middle;dominant-baseline:middle;pointer-events:none}
.chart-planet:hover circle,.chart-planet:focus circle{stroke:var(--accent-primary);transform:scale(1.12)}
.chart-content{min-width:0}.chart-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle)}
.chart-facts button{min-width:0;min-height:5.25rem;padding:var(--space-3) var(--space-2);display:grid;align-content:center;gap:.125rem;border-right:1px solid var(--border-subtle);background:transparent;color:var(--text-primary);text-align:left}.chart-facts button:last-child{border-right:0}.chart-facts small{color:var(--text-muted);font-size:.625rem;text-transform:uppercase}.chart-facts b{overflow:hidden;font-family:var(--font-display);font-size:var(--text-18);font-weight:400;text-overflow:ellipsis}.chart-facts em{color:var(--text-muted);font-size:.625rem;font-style:normal}
.chart-facts button.is-active,.chart-summary button.is-active{color:var(--accent-primary)}
.chart-detail{margin:var(--space-5) 0;padding:var(--space-5) 0;border-top:1px solid rgba(118,212,204,.24);border-bottom:1px solid rgba(118,212,204,.24);animation:message-in .24s ease-out}.chart-detail header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3)}.chart-detail small{color:var(--accent-primary);font-size:.625rem;text-transform:uppercase}.chart-detail h2{margin:.25rem 0 var(--space-2);font-family:var(--font-display);font-size:var(--text-24);font-weight:400}.chart-detail p{color:var(--text-secondary);font-size:var(--text-13);line-height:1.6}.chart-detail button{width:2.75rem;height:2.75rem;display:grid;place-items:center;border-radius:50%;background:var(--surface-secondary);color:var(--text-muted)}
.chart-detail button svg{width:1rem;height:1rem}
.chart-all-head{margin-top:var(--space-7);padding-bottom:var(--space-2);display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.chart-all-head small{color:var(--text-muted);font-size:.625rem}
.chart-summary{border-top:1px solid var(--border-subtle)}
.chart-summary button{width:100%;min-height:4.5rem;padding:var(--space-3) 0;display:grid;grid-template-columns:5.75rem minmax(0,1fr) auto;grid-template-rows:auto auto;align-items:center;border-bottom:1px solid var(--border-subtle);background:transparent;color:var(--text-primary);text-align:left}
.chart-summary button>span{grid-row:1/3;color:var(--text-muted);font-size:var(--text-11)}.chart-summary button>b{font-family:var(--font-display);font-size:var(--text-18);font-weight:400}.chart-summary button>small{color:var(--text-muted);font-size:.625rem}.chart-summary button>svg{grid-column:3;grid-row:1/3;color:var(--text-muted)}

.dates-loading,.dates-error{min-height:24rem;max-width:34rem;margin:auto;display:grid;place-items:center;align-content:center;text-align:center}
.dates-loading>span{height:3rem;display:flex;align-items:center;gap:.375rem}.dates-loading>span i{width:.375rem;height:.375rem;border-radius:50%;background:var(--accent-primary);animation:chart-pulse 1s ease-in-out infinite}.dates-loading>span i:nth-child(2){animation-delay:.16s;background:var(--accent-warm)}.dates-loading>span i:nth-child(3){animation-delay:.32s;background:var(--accent-secondary)}
.dates-loading b{margin-top:var(--space-3);font-family:var(--font-display);font-size:var(--text-24);font-weight:400}.dates-loading small{margin-top:var(--space-2);color:var(--text-muted);font-size:var(--text-11)}
.dates-error>span{width:4rem;height:4rem;display:grid;place-items:center;border:1px solid var(--border-strong);border-radius:50%;color:var(--accent-primary)}.dates-error>span svg{width:1.75rem;height:1.75rem}.dates-error h2{margin:var(--space-5) 0 var(--space-2);font-family:var(--font-display);font-size:var(--text-28);font-weight:400}.dates-error p{color:var(--text-muted);font-size:var(--text-14)}.dates-error button{min-height:3rem;margin-top:var(--space-6);padding:0 var(--space-4);display:flex;align-items:center;gap:var(--space-2);border:1px solid rgba(118,212,204,.28);border-radius:var(--radius-round);background:rgba(118,212,204,.055);color:var(--accent-primary);font-weight:700}.dates-error button svg{width:1rem;height:1rem}
.dates-layout{max-width:48rem;margin:auto}.period-overview{padding:var(--space-5) 0 var(--space-6);display:grid;gap:var(--space-5);border-top:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle)}.period-overview>div:first-child{display:grid}.period-overview>div:first-child>b{margin-top:var(--space-2);font-family:var(--font-display);font-size:var(--text-28);font-weight:400}.period-overview>div:first-child>small{color:var(--text-muted);font-size:var(--text-11)}
.period-meter{display:grid;grid-template-columns:auto minmax(6rem,1fr) auto;align-items:center;gap:var(--space-3);color:var(--text-muted);font-size:.625rem}.period-meter>i{height:.25rem;border-radius:var(--radius-round);background:linear-gradient(90deg,rgba(118,212,204,.35),rgba(216,182,110,.65),rgba(182,129,145,.65));position:relative}.period-meter>i b{position:absolute;width:.75rem;height:.75rem;left:0;top:50%;transform:translate(-50%,-50%);border:.1875rem solid var(--background-primary);border-radius:50%;background:var(--accent-warm);transition:left .35s var(--ease-out)}
.date-picker{padding:var(--space-7) 0;border-bottom:1px solid var(--border-subtle)}.date-picker>header,.selected-day>header,.period-list>header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}.date-picker h2,.selected-day h2,.period-list h2{margin-top:.25rem;font-family:var(--font-display);font-size:var(--text-24);font-weight:400}.date-picker>header>div:last-child{display:flex;gap:var(--space-1)}.date-picker>header button{width:2.75rem;height:2.75rem;display:grid;place-items:center;border-radius:50%;background:var(--surface-secondary);color:var(--text-secondary)}.date-picker>header button:first-child svg{transform:rotate(180deg)}.date-picker>header button:disabled{opacity:.3}.date-picker>header svg{width:1rem;height:1rem}
.date-strip{margin-top:var(--space-5);display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:var(--space-1)}.date-strip button{position:relative;min-width:0;min-height:4.5rem;padding:var(--space-2) 0;display:grid;place-items:center;align-content:center;gap:.25rem;border:1px solid transparent;border-radius:var(--radius-md);background:transparent;color:var(--text-secondary)}.date-strip button small{color:var(--text-muted);font-size:.5625rem;text-transform:uppercase}.date-strip button b{font-family:var(--font-display);font-size:var(--text-18);font-weight:400}.date-strip button i{width:.25rem;height:.25rem;border-radius:50%;background:transparent}.date-strip button.has-event i{background:var(--accent-warm)}.date-strip button.is-major i{width:.375rem;height:.375rem;background:var(--accent-secondary)}.date-strip button[aria-selected="true"]{border-color:rgba(118,212,204,.4);background:rgba(118,212,204,.06);color:var(--accent-primary)}
.selected-day{padding:var(--space-7) 0;border-bottom:1px solid var(--border-subtle)}.selected-day>header>button{min-height:2.75rem;display:flex;align-items:center;gap:var(--space-2);background:transparent;color:var(--accent-primary);font-size:var(--text-11);font-weight:700}.selected-day>header>button svg{width:1rem;height:1rem}.selected-day>div{margin-top:var(--space-5);display:grid;gap:var(--space-3)}
.day-empty{min-height:8rem;padding:var(--space-5) 0;display:grid;align-content:center;border-top:1px solid var(--border-subtle);color:var(--text-muted)}.day-empty b{color:var(--text-secondary);font-family:var(--font-display);font-size:var(--text-20);font-weight:400}.day-empty p{margin-top:var(--space-1);font-size:var(--text-12)}
.day-event{padding:var(--space-4) 0;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-3);border-top:1px solid var(--border-subtle)}.day-event small{color:var(--accent-primary);font-size:.625rem;text-transform:uppercase}.day-event h3{margin:.25rem 0 var(--space-1);font-family:var(--font-display);font-size:var(--text-20);font-weight:400}.day-event p{color:var(--text-muted);font-size:var(--text-12)}.day-event button{width:2.75rem;height:2.75rem;display:grid;place-items:center;border-radius:50%;background:var(--surface-secondary);color:var(--text-muted)}.day-event button.is-saved{color:var(--accent-warm)}.day-event button svg{width:1rem;height:1rem}
.period-list{padding-top:var(--space-8)}.period-list>header>button{min-height:2.75rem;background:transparent;color:var(--accent-primary);font-size:var(--text-11);font-weight:700}
.period-timeline{margin:var(--space-6) 0 0;padding:0;list-style:none}.period-timeline li{position:relative;display:grid;grid-template-columns:4rem minmax(0,1fr);gap:var(--space-4);padding:0 0 var(--space-8)}.period-timeline li::before{content:"";position:absolute;left:2rem;top:3.5rem;bottom:.25rem;width:1px;background:var(--border-subtle)}.period-timeline time{width:4rem;height:4rem;display:grid;place-items:center;align-content:center;border:1px solid var(--border-subtle);border-radius:50%;line-height:1}.period-timeline time b{font-family:var(--font-display);font-size:var(--text-20);font-weight:400}.period-timeline time span{color:var(--text-muted);font-size:.5625rem;text-transform:uppercase}.period-timeline li.is-major time{border-color:rgba(182,129,145,.52);color:var(--accent-secondary)}.period-timeline small{color:var(--accent-primary);font-size:.625rem;font-weight:700;text-transform:uppercase}.period-timeline h3{margin:var(--space-1) 0 var(--space-2);font-family:var(--font-display);font-size:var(--text-20);font-weight:400}.period-timeline p{color:var(--text-muted);font-size:var(--text-12)}.period-timeline button{min-height:2.75rem;margin-top:var(--space-2);padding:0;background:transparent;color:var(--accent-primary);font-size:var(--text-11);font-weight:700}

.profile-person{max-width:42rem;margin:auto;padding:0 0 var(--space-6);display:grid;grid-template-columns:4rem minmax(0,1fr) auto;align-items:center;gap:var(--space-4);border-bottom:1px solid var(--border-subtle)}
.profile-person>span{width:4rem;height:4rem;display:grid;place-items:center;border-radius:50%;background:var(--surface-secondary);color:var(--accent-primary);font-weight:700}
.profile-person>div{display:grid;gap:.125rem}
.profile-person b{font-family:var(--font-display);font-size:var(--text-24);font-weight:400}
.profile-person small{color:var(--text-muted);font-size:var(--text-11)}
.profile-person button,.profile-data button{min-height:2.75rem;padding:0;background:transparent;color:var(--accent-primary);font-size:var(--text-12);font-weight:700}
.profile-data{max-width:42rem;margin:0 auto;padding:0}
.profile-data>div{min-height:4.5rem;display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);border-bottom:1px solid var(--border-subtle)}
.profile-data dt{color:var(--text-muted);font-size:var(--text-13,var(--text-12))}
.profile-data dd{margin:0;text-align:right;font-size:var(--text-14)}
.settings-list{max-width:42rem;margin:var(--space-8) auto 0;border-top:1px solid var(--border-subtle)}
.settings-list button{width:100%;min-height:5rem;padding:var(--space-3) 0;display:grid;grid-template-columns:2rem minmax(0,1fr) 1.5rem;align-items:center;gap:var(--space-3);border-bottom:1px solid var(--border-subtle);background:transparent;color:var(--text-primary);text-align:left}
.settings-list button>svg:first-child{color:var(--accent-primary)}
.settings-list button>span{display:grid;gap:.125rem}
.settings-list small{color:var(--text-muted);font-size:var(--text-11)}
.settings-list button>svg:last-child{color:var(--text-muted)}
.settings-list .logout-button{margin-top:var(--space-4);color:var(--text-secondary);border-top:1px solid var(--border-subtle)}
.settings-list .logout-button>svg:first-child{color:var(--accent-warm)}

.mobile-dock{position:fixed;z-index:24;left:max(var(--space-3),var(--safe-left));right:max(var(--space-3),var(--safe-right));bottom:max(var(--space-3),var(--safe-bottom));height:4.75rem;padding:.375rem .45rem;display:grid;grid-template-columns:repeat(5,1fr);border:1px solid rgba(232,235,240,.11);border-radius:1.6rem;background:#0d121c;box-shadow:0 1rem 3rem rgba(0,0,0,.34),inset 0 1px rgba(255,255,255,.025)}
.mobile-dock button{position:relative;min-width:0;min-height:4rem;display:grid;place-items:center;align-content:center;gap:.2rem;border-radius:1.05rem;background:transparent;color:var(--text-muted);transition:color var(--duration-fast) var(--ease-standard),background var(--duration-fast) var(--ease-standard),transform var(--duration-fast) var(--ease-standard)}
.mobile-dock button::before{content:"";position:absolute;top:.2rem;left:50%;width:1.05rem;height:.125rem;border-radius:var(--radius-round);background:var(--accent-primary);box-shadow:0 0 .7rem rgba(118,212,204,.45);opacity:0;transform:translateX(-50%) scaleX(.45);transition:opacity var(--duration-fast),transform var(--duration-fast)}
.mobile-dock button.is-active{background:linear-gradient(180deg,rgba(118,212,204,.105),rgba(118,212,204,.025));color:var(--text-primary)}
.mobile-dock button.is-active::before{opacity:1;transform:translateX(-50%) scaleX(1)}
.mobile-dock button:active{transform:scale(.96)}
.mobile-dock svg{width:1.35rem;height:1.35rem;stroke-width:1.8;transition:color var(--duration-fast),transform var(--duration-fast)}
.mobile-dock button.is-active svg{color:var(--accent-primary);transform:translateY(-.05rem)}
.mobile-dock span{font-size:.625rem;font-weight:600}
.mobile-dock i{position:absolute;top:.35rem;right:calc(50% - 1.35rem);min-width:1rem;height:1rem;padding:0 .25rem;display:grid;place-items:center;border-radius:var(--radius-round);background:var(--accent-primary);color:var(--background-primary);font-size:.5625rem;font-style:normal;font-weight:700}

.voice-dock{position:fixed;z-index:40;left:50%;bottom:calc(5.75rem + var(--safe-bottom));width:min(calc(100% - 1.5rem),38rem);min-height:4.25rem;padding:.625rem .625rem .625rem var(--space-4);display:grid;grid-template-columns:minmax(0,1fr) auto 2.75rem;align-items:center;gap:var(--space-3);border:1px solid rgba(118,212,204,.24);border-radius:var(--radius-round);background:rgba(18,23,34,.96);box-shadow:var(--shadow-raised);transform:translate(-50%,1rem);opacity:0;visibility:hidden;transition:opacity var(--duration-base),transform var(--duration-base),visibility var(--duration-base)}
.voice-dock.is-open{opacity:1;visibility:visible;transform:translate(-50%,0)}
.voice-state{min-width:0;display:flex;align-items:center;gap:var(--space-3)}
.voice-state>i{width:.625rem;height:.625rem;flex:0 0 auto;border-radius:50%;background:var(--accent-primary);box-shadow:0 0 1.25rem rgba(118,212,204,.65)}
.voice-state>span{min-width:0;display:grid}
.voice-state b{font-size:var(--text-12)}
.voice-state small{overflow:hidden;color:var(--text-muted);font-size:var(--text-11);text-overflow:ellipsis;white-space:nowrap}
.voice-wave{height:2rem;display:flex;align-items:center;gap:.1875rem}
.voice-wave i{width:.125rem;height:.5rem;border-radius:var(--radius-round);background:var(--accent-primary);animation:voice-wave .8s ease-in-out infinite alternate}
.voice-wave i:nth-child(2),.voice-wave i:nth-child(6){animation-delay:-.2s}.voice-wave i:nth-child(3),.voice-wave i:nth-child(5){animation-delay:-.4s}.voice-wave i:nth-child(4){animation-delay:-.6s}
@keyframes voice-wave{to{height:1.75rem;opacity:.55}}
.voice-dock>button{width:2.75rem;height:2.75rem;display:grid;place-items:center;border-radius:50%;background:var(--text-primary)}
.voice-dock>button span{width:.75rem;height:.75rem;border-radius:.1875rem;background:var(--background-primary)}

.call-layer{position:fixed;z-index:90;inset:0;padding:max(var(--space-4),var(--safe-top)) max(var(--space-4),var(--safe-right)) max(var(--space-4),var(--safe-bottom)) max(var(--space-4),var(--safe-left));display:grid;place-items:center;background:rgba(3,5,9,.82);backdrop-filter:blur(1.25rem);-webkit-backdrop-filter:blur(1.25rem)}
.call-card{width:min(100%,23rem);padding:2.25rem 1.5rem 1.75rem;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--surface-primary);box-shadow:var(--shadow-raised);text-align:center}
.call-rings{position:relative;width:7.5rem;height:7.5rem;margin:0 auto 1.25rem;display:grid;place-items:center}
.call-rings>i{position:absolute;inset:.65rem;border:1px solid rgba(118,212,204,.5);border-radius:50%;opacity:0}
.call-rings.is-ringing>i{animation:call-ring 1.8s var(--ease-out) infinite}.call-rings.is-ringing>i:nth-child(2){animation-delay:.55s}.call-rings.is-ringing>i:nth-child(3){animation-delay:1.1s}
@keyframes call-ring{0%{opacity:.65;transform:scale(.82)}100%{opacity:0;transform:scale(1.42)}}
.call-rings img{position:relative;z-index:1;width:6rem;height:6rem;border:1px solid var(--border-subtle);border-radius:50%;object-fit:cover;background:var(--surface-secondary)}
.call-card h2{font:600 var(--text-24)/1.15 var(--font-display)}
.call-card>p{min-height:1.5rem;margin-top:.4rem;color:var(--text-secondary);font-size:var(--text-14)}
.call-card>time{margin-top:.65rem;color:var(--accent-primary);font-size:var(--text-16);font-weight:700;font-variant-numeric:tabular-nums}
.call-card>small{display:block;margin-top:1rem;color:var(--text-muted);font-size:var(--text-11)}
.call-signal{height:1.5rem;margin:.8rem auto 0;display:flex;align-items:center;justify-content:center;gap:.22rem}.call-signal i{width:.16rem;height:.45rem;border-radius:999px;background:var(--accent-primary);animation:call-signal .8s ease-in-out infinite alternate}.call-signal i:nth-child(2),.call-signal i:nth-child(4){animation-delay:-.2s;height:.85rem}.call-signal i:nth-child(3){animation-delay:-.4s;height:1.25rem}@keyframes call-signal{to{transform:scaleY(.35);opacity:.55}}
.call-controls{margin-top:1.5rem;display:flex;align-items:center;justify-content:center;gap:1rem}.call-controls button{width:3.75rem;height:3.75rem;display:grid;place-items:center;border-radius:50%;color:var(--text-primary)}.call-controls svg{width:1.35rem;height:1.35rem}.call-accept{background:var(--success)}.call-mute{border:1px solid var(--border-strong);background:var(--surface-secondary)}.call-mute.is-muted{border-color:var(--warning);color:var(--warning)}.call-end{background:var(--error)}.call-end svg{transform:rotate(135deg)}
.call-unmute{min-height:2.75rem;margin:.9rem auto 0;padding:.6rem 1rem;border:1px solid var(--border-strong);border-radius:var(--radius-round);background:transparent;color:var(--text-primary);font-size:var(--text-12);font-weight:700}
.toast{position:fixed;z-index:50;left:50%;bottom:calc(6rem + var(--safe-bottom));max-width:calc(100% - 2rem);padding:.75rem 1rem;border:1px solid var(--border-subtle);border-radius:var(--radius-round);background:var(--surface-elevated);box-shadow:var(--shadow-raised);color:var(--text-secondary);font-size:var(--text-12);transform:translate(-50%,1rem);opacity:0;pointer-events:none;transition:opacity var(--duration-base),transform var(--duration-base)}
.toast.is-open{opacity:1;transform:translate(-50%,0)}
.slot-list button:disabled{background:var(--surface-primary);color:var(--text-muted);cursor:not-allowed;opacity:.65}
.slot-day{grid-column:1/-1;min-width:0;border-bottom:1px solid var(--border-subtle)}
.slot-day summary{min-height:3rem;display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);cursor:pointer;color:var(--text-primary)}
.slot-day summary small{color:var(--text-secondary)}
.slot-day summary::after{content:'+';font-size:1.25rem}
.slot-day[open] summary::after{content:'-'}
.slot-day summary:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}
.slot-day-times{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-2);padding:var(--space-3) 0}
.memory-facts{margin-top:var(--space-6);min-width:0}
.memory-fact{border-bottom:1px solid var(--border-subtle);padding:var(--space-3) 0}
.memory-fact summary{cursor:pointer;min-height:44px;color:var(--text-secondary);font-size:14px}
.memory-fact summary span{display:block;color:var(--text-primary);font-size:16px;line-height:1.5;overflow-wrap:anywhere;margin-top:var(--space-2)}
.memory-fact label{display:block;margin-top:var(--space-4);color:var(--text-secondary)}
.memory-fact textarea{display:block;box-sizing:border-box;width:100%;margin-top:var(--space-2);padding:var(--space-3);background:var(--surface-primary);color:var(--text-primary);border:1px solid var(--border-subtle);border-radius:8px;font:inherit;resize:vertical}
.memory-fact-actions{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-3)}
.memory-fact-actions button{min-height:44px;padding:var(--space-2) var(--space-3);border:1px solid var(--border-subtle);border-radius:8px;background:var(--surface-primary);color:var(--text-primary)}
.memory-fact :is(summary,textarea,button):focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}
.memory-fact [role=status]:empty{display:none}
.product-shell.expert-open{height:100dvh;overflow:hidden}
.product-shell.expert-open .screen{display:none}
.answer-replay{display:grid;place-items:center;width:44px;height:44px;margin-top:var(--space-2);border:1px solid var(--border-subtle);border-radius:50%;background:var(--surface-primary);color:var(--text-secondary)}
.answer-replay[aria-pressed=true]{color:var(--accent-primary);border-color:var(--accent-primary)}
.answer-replay svg{width:18px;height:18px}
.personal-calendar { margin-block: 24px; padding-block: 24px; border-block: 1px solid var(--border-subtle, #30343d); }
.personal-calendar h2 { font-size: 24px; margin-bottom: 16px; }
.personal-calendar form { display: grid; gap: 12px; grid-template-columns: minmax(0, 1fr); margin-top: 16px; }
.personal-calendar form[hidden] { display: none; }
.personal-calendar label { display: grid; gap: 8px; }
.personal-calendar input { width: 100%; min-width: 0; min-height: 44px; padding: 12px; color: inherit; background: #10141b; border: 1px solid #454953; border-radius: 8px; color-scheme: dark; }
.personal-calendar button { min-height: 44px; padding: 8px 16px; border: 1px solid #454953; border-radius: 8px; background: #10141b; color: #eeeae3; }
.personal-calendar button[type="submit"] { background: #eeeae3; color: #10141b; }
.personal-calendar button:disabled { opacity: .5; }
.personal-calendar p, #calendarStatus { margin-block: 12px; font-size: 14px; }
.personal-calendar-row { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; padding-block: 16px; border-bottom: 1px solid #30343d; }
.personal-calendar-row span { flex: 1 1 100%; overflow-wrap: anywhere; }
@media (min-width: 768px) { .personal-calendar form { grid-template-columns: minmax(0, 2fr) minmax(160px, 1fr); } .personal-calendar-row span { flex: 1 1 240px; } }
