*{margin:0;padding:0;box-sizing:border-box}:root{--bg: #0d0d0d;--surface: #1a1a1a;--surface-raised: #222;--text: #f5f0e8;--text-muted: #a89f91;--text-dim: #666;--gold: #c9a96e;--green: #6ec9a9;--purple: #9b6ec9;--border: #2a2a2a;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px)}html,body{height:100%;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;-webkit-font-smoothing:antialiased;overflow:hidden}#app{height:100%;display:flex;flex-direction:column}.daily-view{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:16px 16px calc(16px + var(--safe-bottom));padding-top:calc(16px + var(--safe-top));max-width:720px;margin:0 auto;width:100%}.daily-header{text-align:center;margin-bottom:24px;position:relative}.daily-nav{display:flex;align-items:center;justify-content:center;gap:12px}.daily-date-group{flex:1;min-width:0}.nav-arrow{background:none;border:none;color:var(--text-muted);font-size:28px;cursor:pointer;padding:4px 12px;-webkit-tap-highlight-color:transparent;flex-shrink:0;border-radius:8px;transition:color .2s ease,background .2s ease,transform .15s ease}.nav-arrow:hover{color:var(--text);background:var(--surface)}.nav-arrow:active{color:var(--text);transform:scale(.9)}.nav-arrow-spacer{width:52px;flex-shrink:0}.daily-header-actions{display:flex;justify-content:center;gap:16px;margin-top:8px}.calendar-btn,.notify-btn{background:none;border:none;font-size:20px;cursor:pointer;padding:6px;-webkit-tap-highlight-color:transparent;opacity:.6;transition:opacity .15s ease}.calendar-btn:hover,.notify-btn:hover{opacity:.9}.calendar-btn:active,.notify-btn:active{opacity:1}.daily-date{color:var(--text-muted);font-size:12px;letter-spacing:3px;text-transform:uppercase}.daily-title{font-family:Georgia,serif;font-size:24px;font-weight:400;margin-top:6px}.gif-container{border-radius:12px;overflow:hidden;margin-bottom:24px;max-width:560px;margin-left:auto;margin-right:auto}.gif-container video,.gif-container img{width:100%;display:block;border-radius:12px}.quote-text{text-align:center;font-family:Georgia,serif;font-size:20px;color:var(--text);line-height:1.6;margin-bottom:6px;font-style:italic;max-width:520px;margin-left:auto;margin-right:auto;padding:0 8px}.quote-source{text-align:center;font-size:12px;color:var(--text-muted);margin-bottom:32px}.prompt-cards{display:flex;flex-direction:column;gap:12px}.prompt-card{background:var(--surface);border-radius:12px;padding:20px 22px;cursor:pointer;transition:transform .25s cubic-bezier(.16,1,.3,1),background .2s ease,box-shadow .25s ease;-webkit-tap-highlight-color:transparent;border-left:3px solid var(--card-color);will-change:transform}.prompt-card:hover{background:var(--surface-raised);transform:translate(4px);box-shadow:-4px 0 12px #00000026}.prompt-card:active{transform:scale(.97) translate(2px);background:var(--surface-raised)}.prompt-card-name{font-size:11px;text-transform:uppercase;letter-spacing:2px;color:var(--card-color);margin-bottom:8px}.prompt-card-text{font-size:15px;line-height:1.6;color:var(--text)}.prompt-card-arrow{float:right;color:var(--text-dim);font-size:18px;transition:transform .15s ease}.prompt-card:hover .prompt-card-arrow{transform:translate(3px);color:var(--text-muted)}@media(min-width:768px){.daily-view{padding:40px 32px calc(40px + var(--safe-bottom));padding-top:calc(40px + var(--safe-top))}.daily-header{margin-bottom:32px}.daily-title{font-size:28px}.daily-date{font-size:13px;letter-spacing:4px}.gif-container{border-radius:16px;margin-bottom:32px}.gif-container video,.gif-container img{border-radius:16px}.quote-text{font-size:22px;padding:8px 0;margin-bottom:8px}.quote-source{font-size:13px;margin-bottom:40px}.prompt-card{padding:24px 28px;border-radius:14px}.prompt-card-text{font-size:16px}.chat-messages{max-width:720px;margin:0 auto;width:100%}.chat-input-bar{justify-content:center}.chat-input{max-width:672px}.msg{max-width:65%}}.chat-view{display:flex;flex-direction:column;height:100%}.chat-header{display:flex;align-items:center;gap:12px;padding:12px 16px;padding-top:calc(12px + var(--safe-top));background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0}.chat-back{background:none;border:none;color:var(--text-muted);font-size:24px;cursor:pointer;padding:4px 8px;-webkit-tap-highlight-color:transparent;transition:color .2s ease,transform .15s ease}.chat-back:hover{color:var(--text)}.chat-back:active{transform:translate(-3px)}.chat-person{font-size:16px;font-weight:600}.chat-messages{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:16px;display:flex;flex-direction:column;gap:12px}.msg{max-width:85%;padding:12px 16px;border-radius:16px;font-size:15px;line-height:1.5;word-wrap:break-word}.msg-user{align-self:flex-end;background:var(--gold);color:#0d0d0d;border-bottom-right-radius:4px}.msg-assistant{align-self:flex-start;background:var(--surface);color:var(--text);border-bottom-left-radius:4px}.msg-assistant p{margin:0 0 10px;line-height:1.6}.msg-assistant p:last-child{margin-bottom:0}.msg-assistant h1,.msg-assistant h2,.msg-assistant h3,.msg-assistant h4{margin:16px 0 8px;line-height:1.3}.msg-assistant h1{font-size:20px}.msg-assistant h2{font-size:18px}.msg-assistant h3{font-size:16px;color:var(--text-muted)}.msg-assistant h4{font-size:15px;color:var(--text-muted)}.msg-assistant h1:first-child,.msg-assistant h2:first-child,.msg-assistant h3:first-child{margin-top:0}.msg-assistant ul,.msg-assistant ol{margin:8px 0;padding-left:20px}.msg-assistant li{margin:4px 0;line-height:1.5}.msg-assistant blockquote{border-left:2px solid var(--gold);padding-left:12px;margin:10px 0;color:var(--text-muted);font-style:italic}.msg-assistant code{background:var(--bg);padding:2px 6px;border-radius:4px;font-size:13px}.msg-assistant pre{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:12px;margin:10px 0;overflow-x:auto}.msg-assistant pre code{background:none;padding:0}.msg-assistant strong{color:var(--text);font-weight:600}.msg-assistant em{color:var(--text-muted)}.msg-assistant hr{border:none;border-top:1px solid var(--border);margin:12px 0}.chat-input-bar{display:flex;gap:8px;padding:12px 16px calc(12px + var(--safe-bottom));background:var(--surface);border-top:1px solid var(--border);flex-shrink:0}.chat-input{flex:1;background:var(--bg);border:1px solid var(--border);border-radius:20px;padding:10px 16px;font-size:16px;color:var(--text);outline:none;font-family:inherit;resize:none;max-height:120px;line-height:1.4;transition:border-color .2s ease,box-shadow .2s ease}.chat-input:focus{border-color:var(--gold);box-shadow:0 0 0 2px #c9a96e26}.chat-input::placeholder{color:var(--text-dim)}.chat-send{background:var(--gold);border:none;border-radius:50%;width:40px;height:40px;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;color:#0d0d0d;font-size:18px;-webkit-tap-highlight-color:transparent;transition:transform .15s ease,opacity .2s ease,background .2s ease}.chat-send:hover{background:#d4b47a}.chat-send:active{transform:scale(.88)}.chat-send:disabled{opacity:.4;cursor:default;transform:none}.loading{text-align:center;padding:48px 16px;color:var(--text-muted)}.loading-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--text-muted);animation:pulse 1.2s ease-in-out infinite;margin:0 3px}.loading-dot:nth-child(2){animation-delay:.2s}.loading-dot:nth-child(3){animation-delay:.4s}@keyframes pulse{0%,to{opacity:.3}50%{opacity:1}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-out{0%{opacity:1}to{opacity:0}}@keyframes slide-in-from-bottom{0%{transform:translateY(12px)}to{transform:translateY(0)}}@keyframes slide-in-from-top{0%{transform:translateY(-12px)}to{transform:translateY(0)}}@keyframes slide-in-from-left{0%{transform:translate(-16px)}to{transform:translate(0)}}@keyframes slide-in-from-right{0%{transform:translate(16px)}to{transform:translate(0)}}@keyframes scale-in{0%{transform:scale(.96);opacity:0}to{transform:scale(1);opacity:1}}@keyframes zoom-in{0%{transform:scale(.92);opacity:0}to{transform:scale(1);opacity:1}}.animate-in{animation:fade-in .4s ease-out both}.animate-in.from-bottom{animation:fade-in .4s ease-out both,slide-in-from-bottom .4s ease-out both}.animate-in.from-top{animation:fade-in .4s ease-out both,slide-in-from-top .4s ease-out both}.animate-in.from-left{animation:fade-in .35s ease-out both,slide-in-from-left .35s ease-out both}.animate-in.from-right{animation:fade-in .35s ease-out both,slide-in-from-right .35s ease-out both}.animate-in.scale{animation:scale-in .35s ease-out both}.animate-in.zoom{animation:zoom-in .4s cubic-bezier(.16,1,.3,1) both}.delay-0{animation-delay:0ms}.delay-1{animation-delay:60ms}.delay-2{animation-delay:.12s}.delay-3{animation-delay:.18s}.delay-4{animation-delay:.24s}.delay-5{animation-delay:.3s}.duration-150{animation-duration:.15s}.duration-200{animation-duration:.2s}.duration-300{animation-duration:.3s}.duration-500{animation-duration:.5s}.view-enter{animation:fade-in .3s ease-out both,slide-in-from-bottom .3s ease-out both}.view-exit{animation:fade-out .2s ease-in both}.msg-enter{animation:fade-in .3s ease-out both,slide-in-from-bottom .25s ease-out both}.prompt-card{will-change:transform}@keyframes btn-press{0%{transform:scale(1)}50%{transform:scale(.92)}to{transform:scale(1)}}.btn-press{animation:btn-press .2s ease-out}@media(prefers-reduced-motion:reduce){.animate-in,.animate-in.from-bottom,.animate-in.from-top,.animate-in.from-left,.animate-in.from-right,.animate-in.scale,.animate-in.zoom,.view-enter,.view-exit,.msg-enter{animation:none}}.typing{align-self:flex-start;padding:12px 16px}.calendar-view{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:16px;padding-top:calc(16px + var(--safe-top))}.calendar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.calendar-nav{display:flex;align-items:center;gap:8px}.calendar-month{font-family:Georgia,serif;font-size:18px;color:var(--text);min-width:160px;text-align:center}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:8px}.calendar-weekday{text-align:center;font-size:11px;color:var(--text-dim);text-transform:uppercase;letter-spacing:1px;padding:4px 0}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.calendar-cell{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:10px;cursor:pointer;-webkit-tap-highlight-color:transparent;position:relative;gap:2px;transition:transform .15s ease,background .15s ease}.calendar-cell:hover{background:var(--surface)}.calendar-cell:active{background:var(--surface-raised);transform:scale(.92)}.calendar-empty{cursor:default}.calendar-day{font-size:15px;color:var(--text-muted)}.calendar-today .calendar-day{color:var(--gold);font-weight:600}.calendar-has-entry{background:var(--surface)}.calendar-has-entry .calendar-day{color:var(--text)}.calendar-dot{width:5px;height:5px;border-radius:50%;background:var(--gold)}.login-view{flex:1;display:flex;align-items:center;justify-content:center;padding:24px;padding-top:calc(24px + var(--safe-top));padding-bottom:calc(24px + var(--safe-bottom));min-height:100vh}.login-card{width:100%;max-width:360px;text-align:center}.login-title{font-family:Georgia,serif;font-size:28px;font-weight:400;color:var(--text);margin-bottom:8px}.login-subtitle{font-size:14px;color:var(--text-muted);margin-bottom:32px}.login-form{display:flex;flex-direction:column;gap:12px}.login-input{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:14px 16px;font-size:16px;color:var(--text);outline:none;font-family:inherit;transition:border-color .15s ease}.login-input:focus{border-color:var(--gold)}.login-input::placeholder{color:var(--text-dim)}.login-error{color:#c44;font-size:13px;min-height:18px;text-align:left}.login-btn{background:var(--gold);border:none;border-radius:10px;padding:14px;font-size:16px;font-weight:600;color:#0d0d0d;cursor:pointer;font-family:inherit;-webkit-tap-highlight-color:transparent;transition:opacity .15s ease}.login-btn:active{opacity:.85}.login-btn:disabled{opacity:.5;cursor:default}.login-toggle{background:none;border:none;color:var(--text-muted);font-size:13px;cursor:pointer;padding:16px;font-family:inherit;-webkit-tap-highlight-color:transparent}.login-toggle:active{color:var(--text)}
