:root{
  --bg:#fffaf7;--card:#fff;--ink:#2d2424;--muted:#8b7777;--soft:#f8efe9;
  --soft2:#f3e2dc;--accent:#b85c6b;--accent2:#8f4452;--border:#eadad3;
  --shadow:0 12px 35px rgba(91,56,56,.10)
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:var(--bg);color:var(--ink);font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif}
body{padding-bottom:84px}
button,textarea,input{font:inherit}
button{cursor:pointer}
.app-shell{max-width:680px;margin:0 auto;min-height:100vh}
.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:12px;padding:16px 18px;background:rgba(255,250,247,.9);backdrop-filter:blur(14px);border-bottom:1px solid rgba(234,218,211,.75)}
.brand{font-family:Georgia,"Times New Roman",serif;font-weight:700;font-size:20px}
.brand.small{font-size:18px;color:var(--accent2)}
.subbrand{font-size:12px;color:var(--muted);margin-top:2px}
.icon-btn{border:0;background:var(--soft);width:38px;height:38px;border-radius:50%;font-size:22px}
.screen{display:none;padding:18px}
.screen.active{display:block}
.hero-card{background:linear-gradient(155deg,#fff 0%,#fbefea 100%);border:1px solid var(--border);border-radius:30px;padding:30px 22px;text-align:center;box-shadow:var(--shadow);margin-top:4px}
.eyebrow,.surprise-label{font-size:11px;letter-spacing:1.7px;font-weight:800;color:var(--accent)}
.countdown{font-family:Georgia,"Times New Roman",serif;font-weight:700;font-size:34px;line-height:1.08;margin:10px 0 9px}
.hero-copy{color:var(--muted);margin:0 auto 22px;max-width:340px}
.primary-btn,.secondary-btn{border:0;border-radius:18px;padding:15px 18px;font-weight:800}
.primary-btn{background:var(--accent);color:white;width:100%;box-shadow:0 10px 24px rgba(184,92,107,.24)}
.secondary-btn{background:var(--soft2);color:var(--accent2)}
.section-head{margin:28px 2px 13px}
.section-head h2{font-size:19px;margin:0 0 5px}
.section-head p{font-size:13px;color:var(--muted);margin:0}
.month-filter{display:flex;gap:8px;overflow:auto;padding:2px 0 12px}
.month-chip{border:1px solid var(--border);background:#fff;border-radius:999px;padding:8px 12px;white-space:nowrap;font-size:12px;font-weight:700}
.month-chip.active{background:var(--accent);color:#fff;border-color:var(--accent)}
.day-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.day-tile{min-height:82px;border-radius:18px;border:1px solid var(--border);background:#fff;padding:10px 6px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px}
.day-tile.today{border:2px solid var(--accent);background:#fff7f7}
.day-tile.locked{background:#f7f2ef;color:#a39292;cursor:not-allowed}
.day-date{font-size:12px;font-weight:800}.day-num{font-size:11px;color:var(--muted)}.lock{font-size:17px}
.day-heading{padding:5px 2px 13px}
.day-heading h1{font-family:Georgia,"Times New Roman",serif;font-size:30px;margin:6px 0 0}
.surprise-card,.chat-card{background:var(--card);border:1px solid var(--border);border-radius:26px;padding:20px;box-shadow:var(--shadow);margin-bottom:16px}
.surprise-card h2,.chat-card h2{font-size:20px;margin:7px 0 14px}
.message-letter{background:var(--soft);border-radius:18px;padding:18px;line-height:1.65;font-family:Georgia,"Times New Roman",serif;font-size:17px;white-space:pre-wrap}
.surprise-media{width:100%;border-radius:18px;display:block;margin-top:12px}
audio.surprise-media{border-radius:14px}
.task-card{margin-top:14px;background:#fff7f4;border:1px dashed #d9b6ae;border-radius:18px;padding:16px}
.task-text{font-weight:700;line-height:1.55;margin-top:7px;white-space:pre-wrap}
.reaction-box{margin-top:18px;padding-top:18px;border-top:1px solid var(--border)}
.reaction-box label{display:block;font-weight:800;font-size:14px;margin-bottom:8px}
textarea{resize:none;border:1px solid var(--border);outline:none;background:#fff;border-radius:16px;padding:12px 13px;color:var(--ink)}
textarea:focus{border-color:#d7a8b0;box-shadow:0 0 0 3px rgba(184,92,107,.08)}
.reaction-box textarea{width:100%;margin-bottom:9px}
.saved-note{font-size:12px;color:var(--accent2);font-weight:700;margin-top:6px}
.chat-card{padding:0;overflow:hidden}
.chat-head{padding:20px 20px 8px}
.chat-list{min-height:280px;max-height:52vh;overflow:auto;padding:10px 14px 16px;background:linear-gradient(#fff,#fffaf8)}
.chat-empty{color:var(--muted);font-size:13px;text-align:center;padding:48px 24px}
.bubble-row{display:flex;margin:8px 0;justify-content:flex-end}
.bubble{max-width:82%;background:#f3e2dc;border-radius:18px 18px 5px 18px;padding:10px 11px 7px;box-shadow:0 4px 12px rgba(91,56,56,.06)}
.bubble p{margin:0;line-height:1.4;white-space:pre-wrap}
.bubble img{width:100%;max-width:280px;border-radius:13px;display:block;margin-bottom:7px}
.bubble audio{width:250px;max-width:100%}
.bubble-time{text-align:right;font-size:10px;color:var(--muted);margin-top:5px}
.composer{display:flex;gap:8px;align-items:flex-end;padding:11px;border-top:1px solid var(--border);background:#fff}
.composer-actions{display:flex;gap:6px}
.round-action,.send-btn{width:40px;height:40px;border-radius:50%;border:0;display:grid;place-items:center;background:var(--soft);flex:0 0 auto}
.send-btn{background:var(--accent);color:#fff;font-size:18px}
.composer textarea{flex:1;min-height:40px;max-height:110px}
.recording-status{display:flex;align-items:center;gap:8px;padding:10px 14px;background:#fff1f2;border-top:1px solid #f1d2d7;font-size:13px}
.recording-status button{margin-left:auto;border:0;background:transparent;color:var(--accent2);font-weight:800}
.record-dot{width:8px;height:8px;background:#d6455d;border-radius:50%;animation:pulse 1s infinite}
@keyframes pulse{50%{opacity:.35}}
.bottom-nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(680px,100%);height:72px;background:rgba(255,255,255,.94);backdrop-filter:blur(12px);border-top:1px solid var(--border);display:grid;grid-template-columns:repeat(3,1fr);z-index:30;padding-bottom:env(safe-area-inset-bottom)}
.nav-item{border:0;background:transparent;color:#927f7f;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:19px}
.nav-item span{font-size:11px;font-weight:700}.nav-item.active{color:var(--accent)}
.hidden{display:none!important}
@media(max-width:420px){.screen{padding:14px}.day-grid{gap:8px}.day-tile{min-height:76px}.countdown{font-size:30px}}

.text-link-btn{border:0;background:transparent;color:var(--accent2);font-weight:800;font-size:13px;padding:6px 0}
.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}
.recent-days{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.recent-memory-card{border:1px solid var(--border);background:#fff;border-radius:20px;padding:15px;text-align:left;box-shadow:0 6px 18px rgba(91,56,56,.05)}
.recent-memory-card.today{border:2px solid var(--accent);background:#fff7f7}
.recent-memory-top{display:flex;justify-content:space-between;gap:8px;font-size:13px;font-weight:800}
.recent-memory-day{color:var(--muted);font-size:12px;margin-top:5px}
.recent-memory-action{color:var(--accent2);font-size:12px;font-weight:800;margin-top:12px}
.memories-heading{padding:8px 2px 18px}
.memories-heading h1{font-family:Georgia,"Times New Roman",serif;font-size:34px;margin:6px 0 7px}
.memories-heading p{color:var(--muted);line-height:1.5;margin:0;max-width:520px}
.memories-summary{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:20px}
.summary-item{background:linear-gradient(155deg,#fff,#fbefea);border:1px solid var(--border);border-radius:20px;padding:18px;text-align:center}
.summary-item strong{display:block;font-family:Georgia,"Times New Roman",serif;font-size:28px}
.summary-item span{display:block;color:var(--muted);font-size:12px;margin-top:4px}
.memories-section-head{margin-top:10px}
.memory-tile .lock{color:var(--accent)}
.empty-memory{border:1px dashed var(--border);border-radius:18px;padding:22px;text-align:center;color:var(--muted);font-size:13px;background:#fff}
.empty-memory.wide{grid-column:1/-1}
@media(max-width:420px){
  .recent-days{grid-template-columns:1fr 1fr}
  .memories-summary{grid-template-columns:1fr 1fr}
}


/* V3.3 — Romantik tasarım rötuşları */
:root{
  --bg:#fff9f6;--card:#fffdfc;--ink:#2b2022;--muted:#8f7b7f;
  --soft:#fbf0ec;--soft2:#f6e4df;--accent:#bd5d70;--accent2:#8f3f52;
  --border:#eddad4;--shadow:0 18px 50px rgba(95,54,62,.10)
}
body{
  position:relative;overflow-x:hidden;
  background:
    radial-gradient(circle at 12% 10%,rgba(220,157,171,.13),transparent 30%),
    radial-gradient(circle at 90% 34%,rgba(239,203,192,.18),transparent 32%),
    linear-gradient(180deg,#fffaf7,#fff8f5)
}
.ambient{position:fixed;border-radius:50%;filter:blur(28px);pointer-events:none;z-index:-2}
.ambient-one{width:320px;height:320px;left:-170px;top:160px;background:rgba(216,154,170,.14)}
.ambient-two{width:380px;height:380px;right:-220px;top:480px;background:rgba(238,204,192,.18)}

.topbar{
  background:rgba(255,250,247,.82);backdrop-filter:blur(18px);
  box-shadow:0 8px 30px rgba(88,55,61,.025)
}
.hero-card{
  position:relative;overflow:hidden;padding:0;border-radius:34px;
  background:linear-gradient(155deg,rgba(255,255,255,.98),rgba(252,235,231,.94));
  box-shadow:0 24px 60px rgba(109,64,72,.12)
}
.hero-glow{
  position:absolute;width:230px;height:230px;border-radius:50%;
  top:-120px;right:-80px;
  background:radial-gradient(circle,rgba(214,137,154,.25),rgba(214,137,154,0) 70%)
}
.hero-content{position:relative;z-index:2;padding:34px 24px 25px}
.eyebrow{letter-spacing:2.1px;font-size:10px;color:var(--accent2)}
.countdown{font-size:38px;letter-spacing:-.5px;margin:12px 0 8px}
.hero-copy{font-size:15px;line-height:1.55;margin-bottom:22px}

.journey-progress{
  text-align:left;background:rgba(255,255,255,.63);border:1px solid var(--border);
  border-radius:17px;padding:12px 13px;margin-bottom:16px
}
.journey-progress-head{
  display:flex;justify-content:space-between;gap:10px;align-items:center;
  font-size:11px;color:var(--muted);margin-bottom:8px
}
.journey-progress-head strong{color:var(--accent2)}
.progress-track{height:7px;border-radius:999px;overflow:hidden;background:#f0ddd8}
.progress-fill{
  height:100%;width:0;border-radius:999px;
  background:linear-gradient(90deg,var(--accent),#d8899a);transition:width .8s ease
}
.hero-btn{
  height:54px;display:flex;align-items:center;justify-content:center;gap:9px;
  border-radius:17px;box-shadow:0 12px 28px rgba(189,93,112,.24);
  transition:transform .18s ease
}
.hero-btn:hover{transform:translateY(-1px)}
.section-kicker{
  font-size:9px;letter-spacing:1.7px;font-weight:900;color:var(--accent);margin-bottom:5px
}
.section-head h2{font-family:Georgia,"Times New Roman",serif;font-size:23px}
.text-link-btn{
  background:#fff;border:1px solid var(--border);padding:9px 12px;border-radius:999px;
  box-shadow:0 7px 18px rgba(95,54,62,.06)
}
.recent-memory-card{
  min-height:132px;padding:16px;border-radius:22px;
  background:linear-gradient(155deg,#fff,#fffaf8);
  box-shadow:0 8px 24px rgba(95,54,62,.07);transition:.18s ease
}
.recent-memory-card:hover{transform:translateY(-2px)}
.recent-memory-card.today{
  border:1.5px solid var(--accent);background:linear-gradient(155deg,#fff,#fff1f2)
}
.day-grid{gap:11px}
.day-tile{
  min-height:88px;border-radius:20px;box-shadow:0 6px 16px rgba(95,54,62,.04);
  transition:.16s ease
}
.day-tile.open:hover{transform:translateY(-2px);box-shadow:0 12px 24px rgba(95,54,62,.08)}
.day-tile.today{border:1.5px solid var(--accent);box-shadow:0 12px 26px rgba(189,93,112,.13)}
.day-tile.locked{opacity:.72;background:linear-gradient(155deg,#f7f2ef,#f4eeeb)}

.day-chip{
  display:inline-flex;margin-top:15px;padding:6px 9px;border-radius:999px;
  background:var(--soft2);color:var(--accent2);font-size:9px;font-weight:900;letter-spacing:1.3px
}
.day-heading h1{font-size:36px;letter-spacing:-.5px;margin-top:8px}
.surprise-card,.chat-card{
  border-radius:28px;box-shadow:0 18px 44px rgba(95,54,62,.085)
}
.surprise-card{
  padding:22px;background:linear-gradient(165deg,#fff,#fffdfc)
}
.surprise-card h2{
  font-family:Georgia,"Times New Roman",serif;font-size:24px;letter-spacing:-.25px
}
.message-letter{
  position:relative;padding:21px 19px 20px;border-radius:21px;
  background:linear-gradient(145deg,#fbf1ed,#f9ebe6);
  border:1px solid rgba(235,213,207,.85);font-size:17px;line-height:1.75
}
.message-letter::before{
  content:"“";position:absolute;top:-5px;right:14px;font-family:Georgia,serif;
  font-size:52px;line-height:1;color:rgba(189,93,112,.13)
}
.task-card{
  margin-top:16px;background:linear-gradient(145deg,#fff8f5,#fff3ef);
  border:1px dashed #dcaeb4;border-radius:20px;padding:17px
}
.surprise-media{border-radius:20px;box-shadow:0 12px 28px rgba(83,49,55,.10)}
.reaction-box{
  background:#fff9f8;margin:18px -2px -2px;padding:18px;
  border:1px solid var(--border);border-radius:20px
}
.chat-head{padding:21px 21px 11px;border-bottom:1px solid rgba(237,218,212,.65)}
.chat-head h2{font-family:Georgia,"Times New Roman",serif;font-size:22px}
.chat-list{
  min-height:330px;
  background:radial-gradient(circle at 20% 15%,rgba(216,154,170,.045),transparent 25%),
             linear-gradient(#fffdfc,#fffaf8)
}
.bubble{
  border-radius:19px 19px 6px 19px;padding:11px 12px 8px;
  background:linear-gradient(145deg,#f4e3df,#f1dcd7);
  box-shadow:0 7px 18px rgba(95,54,62,.06)
}
.composer{padding:12px;gap:9px}
.round-action,.send-btn{width:42px;height:42px}
.send-btn{box-shadow:0 8px 18px rgba(189,93,112,.23)}
.bottom-nav{
  height:76px;background:rgba(255,253,252,.94);backdrop-filter:blur(16px);
  box-shadow:0 -12px 32px rgba(77,48,54,.055)
}
.nav-item{position:relative}
.nav-item.active::before{
  content:"";position:absolute;top:7px;width:22px;height:3px;border-radius:999px;background:var(--accent)
}
@media(max-width:520px){
  .screen{padding:15px}.hero-content{padding:30px 19px 21px}.countdown{font-size:32px}
  .recent-memory-card{min-height:124px;padding:14px}.day-heading h1{font-size:31px}
  .surprise-card{padding:18px}.memories-heading h1{font-size:33px}
}


/* V3.5 — site içi giriş / çıkış */
.topbar-main{display:flex;align-items:center;justify-content:space-between;gap:12px;flex:1;min-width:0}
.topbar-brand-wrap{min-width:0}
.logout-btn{
  flex:0 0 auto;text-decoration:none;color:var(--accent2);font-size:11px;font-weight:900;
  border:1px solid var(--border);background:rgba(255,255,255,.86);
  border-radius:999px;padding:8px 11px;box-shadow:0 6px 18px rgba(95,54,62,.055)
}
.logout-btn:active{transform:scale(.98)}

.login-page{
  margin:0;min-height:100vh;overflow:hidden;
  background:
    radial-gradient(circle at 12% 10%,rgba(216,137,154,.13),transparent 30%),
    radial-gradient(circle at 88% 82%,rgba(233,190,178,.18),transparent 34%),
    linear-gradient(160deg,#fffaf7,#fff6f2);
}
.login-shell{min-height:100vh;display:grid;place-items:center;padding:22px;position:relative;z-index:2}
.login-card{
  width:min(430px,100%);padding:34px 25px 26px;text-align:center;
  background:rgba(255,255,255,.9);backdrop-filter:blur(18px);
  border:1px solid var(--border);border-radius:32px;
  box-shadow:0 26px 70px rgba(105,62,70,.13)
}
.login-heart{
  width:60px;height:60px;margin:0 auto 16px;border-radius:50%;
  display:grid;place-items:center;color:#fff;font-size:27px;
  background:linear-gradient(145deg,var(--accent),#d67d91);
  box-shadow:0 13px 30px rgba(189,93,112,.25)
}
.login-kicker{font-size:9px;letter-spacing:2px;font-weight:900;color:var(--accent);margin-bottom:8px}
.login-card h1{
  margin:0;font-family:Georgia,"Times New Roman",serif;font-size:31px;letter-spacing:-.35px
}
.login-copy{margin:10px auto 22px;color:var(--muted);line-height:1.6;font-size:14px}
.login-form{text-align:left}
.login-form label{display:block;margin:12px 0 6px;font-size:11px;font-weight:900;color:var(--ink)}
.login-form input{
  width:100%;box-sizing:border-box;border:1px solid var(--border);border-radius:16px;
  background:#fff;padding:14px 14px;font:inherit;color:var(--ink);outline:none
}
.login-form input:focus{border-color:#d7a4ad;box-shadow:0 0 0 4px rgba(189,93,112,.07)}
.login-submit{
  width:100%;height:52px;margin-top:17px;border:0;border-radius:17px;cursor:pointer;
  color:#fff;font-weight:900;background:linear-gradient(145deg,var(--accent),#c8677b);
  box-shadow:0 12px 28px rgba(189,93,112,.23)
}
.login-submit span{margin-left:5px}
.login-error{
  margin-top:13px;border:1px solid #f0ced3;background:#fff1f3;color:#9c3448;
  border-radius:14px;padding:10px 12px;font-size:12px;font-weight:800
}
.login-note{
  margin-top:19px;color:#a28a8f;font-family:Georgia,"Times New Roman",serif;
  font-size:13px;font-style:italic
}
.login-ambient{position:fixed;border-radius:50%;filter:blur(2px);pointer-events:none}
.login-ambient-one{width:260px;height:260px;top:-110px;right:-85px;background:rgba(223,151,165,.12)}
.login-ambient-two{width:300px;height:300px;left:-140px;bottom:-135px;background:rgba(240,205,194,.18)}
@media(max-width:520px){
  .login-shell{padding:16px}
  .login-card{padding:30px 19px 23px;border-radius:28px}
  .login-card h1{font-size:28px}
  .logout-btn{padding:7px 9px;font-size:10px}
}
