@import url('https://fonts.googleapis.com/css2?family=Nunito:wght@400;500;600;700;800;900&display=swap');
:root{--ink:#51445f;--muted:#897e95;--pink:#f7b8d2;--rose:#f4d6e7;--lilac:#d8c8f4;--blue:#c7def7;--yellow:#ffe6a9;--paper:#fffaff;--line:#f0e6f4;--shadow:0 14px 40px rgba(116,83,143,.10);--radius:25px}
*{box-sizing:border-box}html{min-height:100%;background:#fbf7ff}body{margin:0;min-height:100vh;color:var(--ink);font-family:Nunito,system-ui,sans-serif;background:linear-gradient(145deg,#fff8fb 0%,#f7f2ff 48%,#f3f8ff 100%);overflow-x:hidden}
button,input,textarea,select{font:inherit}button{cursor:pointer}.hidden{display:none!important}.ambient{position:fixed;border-radius:50%;filter:blur(2px);opacity:.45;pointer-events:none;z-index:0}.ambient-one{width:340px;height:340px;top:-150px;right:-80px;background:radial-gradient(circle,#f7cfe1,transparent 70%)}.ambient-two{width:400px;height:400px;bottom:-220px;left:-160px;background:radial-gradient(circle,#d8d2fa,transparent 70%)}
.screen{position:relative;z-index:1;min-height:100vh;display:grid;place-items:center;padding:28px 16px}.auth-card{width:min(100%,470px);background:rgba(255,255,255,.86);border:1px solid rgba(255,255,255,.9);border-radius:32px;padding:34px;box-shadow:var(--shadow);backdrop-filter:blur(12px)}.setup-card{width:min(100%,540px)}.brand-mark{font-size:45px;font-weight:1000;letter-spacing:-4px;text-align:center;color:#9878d1;text-shadow:0 3px 0 #fff,0 7px 14px #d9c8ed;margin-bottom:4px}.brand-mark span:nth-child(1){color:#f28fb9}.brand-mark span:nth-child(2){color:#efc35f}.eyebrow{font-size:10px;letter-spacing:2.3px;font-weight:900;color:#b18dbb;margin:0 0 8px}.auth-card .eyebrow{text-align:center}.auth-card h1{text-align:center;font-size:27px;line-height:1.2;margin:8px 0;color:#655176}.muted{color:var(--muted);font-size:14px;line-height:1.55}.auth-card>.muted{text-align:center;margin:0 0 22px}.tiny{font-size:11px;color:#a397ad;line-height:1.5}.auth-tabs{display:flex;gap:6px;padding:5px;background:#f6f0fa;border-radius:14px;margin:22px 0}.auth-tab{flex:1;border:0;background:transparent;padding:10px;border-radius:11px;color:#93849f;font-weight:800}.auth-tab.active{background:white;color:#8065a7;box-shadow:0 3px 12px #e8dff0}
.stack{display:flex;flex-direction:column;gap:14px}.stack label{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:800;color:#71627f}.stack input,.stack textarea,.stack select{width:100%;border:1px solid #eadfed;border-radius:13px;padding:12px 13px;background:#fffdfd;color:var(--ink);outline:none;transition:.2s}.stack input:focus,.stack textarea:focus,.stack select:focus{border-color:#c5a7e3;box-shadow:0 0 0 3px #eee4f8}.stack textarea{resize:vertical}.primary-btn,.secondary-btn,.ghost-btn{border:0;border-radius:14px;padding:13px 17px;font-weight:900;transition:transform .18s,box-shadow .18s}.primary-btn{background:linear-gradient(110deg,#d5c4f1,#f4c4da);color:#624c77;box-shadow:0 8px 18px rgba(187,153,211,.2)}.primary-btn:hover,.secondary-btn:hover{transform:translateY(-1px)}.primary-btn span{margin-left:5px}.secondary-btn{background:#f5edf9;color:#80649a;border:1px solid #eadcf2}.full{width:100%}.ghost-btn{background:transparent;color:#9a8ca4;padding:8px 10px;font-size:12px}.notice{min-height:18px;margin:0;color:#9872a5;font-size:12px;line-height:1.5}.setup-steps{display:grid;gap:12px;margin:24px 0}.setup-steps div{display:flex;gap:12px;align-items:center;background:#fbf7fd;padding:12px;border-radius:14px;color:#766780;font-size:13px}.setup-steps b{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#e9dcf7;color:#8065a7;flex:none}
.app-shell{position:relative;z-index:1;max-width:1120px;margin:auto;padding:0 24px 28px}.topbar{height:76px;display:flex;align-items:center;justify-content:space-between}.brand-small{font-weight:1000;font-size:24px;letter-spacing:-1.5px;color:#9878d1;text-decoration:none}.brand-small span{color:#ed9fc2;font-size:18px;margin-left:4px}.topbar-right{display:flex;align-items:center;gap:14px}.user-greeting{font-size:12px;color:#8f8299;font-weight:800}
.welcome-panel{position:relative;overflow:hidden;display:flex;justify-content:space-between;align-items:center;min-height:190px;padding:30px 36px;border-radius:30px;background:linear-gradient(115deg,#f8d9e8 0%,#e6dcf7 54%,#d9eafa 100%);box-shadow:var(--shadow)}.welcome-panel h1{font-size:clamp(25px,4vw,36px);line-height:1.12;max-width:560px;margin:4px 0 8px;color:#675277}.welcome-panel p:not(.eyebrow){margin:0;color:#86748f;font-size:14px}.welcome-orbit{position:relative;width:125px;height:125px;flex:none;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff 0 5%,#fff8 6% 13%,#efc9e9 14% 44%,#d7c5ef 45% 70%,#c7dff6 71%);box-shadow:inset -10px -10px 20px #a78dbb44,0 10px 24px #a78bbd44;display:grid;place-items:center;font-size:46px;color:#fff}.welcome-orbit i,.welcome-orbit b{position:absolute;font-style:normal;font-size:19px;color:#fff8b7}.welcome-orbit i{top:4px;right:9px}.welcome-orbit b{bottom:12px;left:8px}
.pair-banner{margin:18px 0 0;padding:16px 18px;border:1px solid #eadff3;background:#fff9fe;border-radius:18px;display:flex;align-items:center;justify-content:space-between;gap:15px}.pair-banner strong{font-size:14px}.pair-banner p{margin:4px 0 0;font-size:12px;color:var(--muted)}
.main-nav{display:flex;gap:8px;margin:22px 0 26px;padding:7px;background:#ffffffb8;border:1px solid #fff;border-radius:18px;box-shadow:0 6px 22px #a68ab01a}.nav-btn{flex:1;border:0;background:transparent;border-radius:13px;padding:11px 8px;color:#998ba3;font-weight:900;font-size:12px}.nav-btn span{display:block;font-size:19px;margin-bottom:2px}.nav-btn.active{background:linear-gradient(110deg,#f6e1ee,#e8e1f8);color:#765e91}
.view{display:none;animation:fade .25s ease}.view.active{display:block}@keyframes fade{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.section-heading{display:flex;align-items:end;justify-content:space-between;margin:0 2px 16px}.section-heading h2{font-size:26px;margin:0;color:#675277}.date-chip{font-size:11px;font-weight:800;color:#9b89a7;background:#fff;padding:8px 12px;border-radius:99px}
.home-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.card{background:rgba(255,255,255,.88);border:1px solid #fff;border-radius:var(--radius);padding:22px;box-shadow:var(--shadow)}.card h3{font-size:18px;margin:12px 0 7px;color:#6d5b7d}.card p{margin-top:0}.card-topline{display:flex;align-items:center;justify-content:space-between}.card-topline .tiny{letter-spacing:1.4px;font-weight:900;font-size:9px}.icon-bubble{width:36px;height:36px;display:grid;place-items:center;border-radius:13px;font-size:18px}.pink{background:#fbe5ef;color:#e18bb3}.lilac{background:#eee7fa;color:#9b82c5}.yellow{background:#fff2cf;color:#d5a53f}.blue{background:#e4f1fc;color:#80a9d4}.garden-card{position:relative;overflow:hidden}.garden-art{height:94px;position:relative;margin:0 -2px 4px;border-radius:18px;background:linear-gradient(135deg,#fbf0f7,#f0eafb 60%,#eaf5fc);overflow:hidden}.garden-art:before{content:"";position:absolute;bottom:-24px;left:-10px;width:110%;height:54px;background:#d8e9d6;border-radius:50% 50% 0 0}.garden-art .sun{position:absolute;right:25px;top:13px;color:#efc75e;font-size:24px}.flower{position:absolute;bottom:19px;color:#e89bc0;text-shadow:0 3px 5px #ba8da855}.flower-a{left:26%;font-size:34px}.flower-b{left:62%;font-size:26px;color:#a995d4}.sprout{position:absolute;left:46%;bottom:5px;color:#6d9e82;font-size:49px}.sparkle{position:absolute;left:12%;top:16px;color:#c3a4d9;font-size:19px}.progress-track{height:8px;background:#f1ebf4;border-radius:20px;overflow:hidden;margin-top:14px}.progress-track span{display:block;width:0;height:100%;background:linear-gradient(90deg,#e8aacb,#bba5e4);border-radius:20px;transition:width .3s}.chaos-card{grid-column:1/-1}.chaos-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:16px 0}.chaos-item{display:flex;align-items:center;flex-direction:column;gap:3px;padding:12px 7px;background:#fcf9ff;border:1px solid #f2eaf5;border-radius:16px;text-align:center}.chaos-item>span{font-size:23px}.chaos-item b{font-size:20px;color:#816a9a}.chaos-item small{font-size:10px;color:#9b8ca5;min-height:28px}.chaos-item div{display:flex;gap:7px;margin-top:4px}.chaos-item button{border:0;border-radius:9px;width:25px;height:25px;background:#eee6f6;color:#80669a;font-weight:900}.recent-list{display:grid;gap:8px;margin:12px 0}.recent-row{display:flex;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid #f3edf5}.recent-row:last-child{border:0}.recent-icon{width:30px;height:30px;display:grid;place-items:center;background:#f4edf9;border-radius:10px}.recent-row strong{font-size:12px}.recent-row small{display:block;color:#a294ad;font-size:10px}.text-btn{border:0;background:transparent;color:#9977b0;font-size:12px;font-weight:900;padding:7px 0}
.two-column{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.mood-options{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px}.mood-option{display:flex;flex-direction:column;align-items:center;gap:5px;padding:10px 3px;border:1px solid #f0e7f3;border-radius:13px;background:#fffafd;cursor:pointer}.mood-option input{position:absolute;opacity:0;pointer-events:none}.mood-option span{font-size:24px}.mood-option b{font-size:9px;color:#94849f}.mood-option:has(input:checked){border-color:#c4a6df;background:#f7f0fc;box-shadow:0 0 0 2px #e9def5}.check-row{display:flex!important;flex-direction:row!important;align-items:flex-start;gap:9px!important;font-size:12px!important;font-weight:600!important;line-height:1.45}.check-row input{width:16px!important;height:16px;margin-top:1px;flex:none;accent-color:#a78bc6}.quote-art{width:78px;height:78px;border-radius:25px;display:grid;place-items:center;margin:18px auto;background:linear-gradient(135deg,#f7d7e8,#ddd4f4);font-size:38px;color:#fff;box-shadow:0 8px 20px #cbb4df55}.gentle-quote{text-align:center;font-size:17px!important;font-weight:800;color:#88729a!important;line-height:1.5!important;padding:0 8px}.privacy-note{display:flex;gap:12px;align-items:flex-start;background:#f8f4fb;padding:13px;border-radius:14px;margin:20px 0}.privacy-note>span{font-size:20px}.privacy-note b{font-size:12px}.privacy-note p{font-size:11px;color:#94879d;margin:3px 0 0}.history-title{margin-top:22px!important}.history-list{display:grid;gap:9px;margin-top:12px}.history-item{border:1px solid #f0e9f3;border-radius:14px;padding:12px;background:#fffdfd}.history-item-top{display:flex;justify-content:space-between;gap:8px}.history-item strong{font-size:13px}.history-item small{font-size:10px;color:#a294ad}.history-item p{font-size:12px;color:#8d8097;margin:6px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}.tag{display:inline-block;font-size:9px;font-weight:900;padding:4px 7px;border-radius:30px;background:#f2ebf8;color:#9275a8;margin-top:7px}.code-panel{display:grid;gap:10px;padding:16px;background:#f8f2fb;border-radius:17px;text-align:center}.code-panel strong{font-size:28px;letter-spacing:5px;color:#8a6aa6}.kind-list{list-style:none;padding:0;margin:18px 0;display:grid;gap:13px}.kind-list li{font-size:13px;color:#8b7d94;line-height:1.4}.partner-info{border-top:1px solid #f0e8f4;padding-top:12px;margin-top:16px;font-size:12px;color:#8b7b97}.app-footer{text-align:center;padding:28px 0 8px;font-size:11px;color:#b2a5b9}.app-footer span{color:#e8a3c5}
.toast{position:fixed;z-index:10;bottom:22px;left:50%;transform:translate(-50%,20px);opacity:0;pointer-events:none;background:#6e5b80;color:white;padding:11px 17px;border-radius:99px;font-size:12px;box-shadow:0 8px 25px #7a5d8c44;transition:.25s}.toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:720px){.app-shell{padding:0 14px 24px}.topbar{height:64px}.welcome-panel{min-height:165px;padding:23px;border-radius:24px}.welcome-orbit{width:88px;height:88px;font-size:34px}.home-grid,.two-column{grid-template-columns:1fr}.chaos-card{grid-column:auto}.chaos-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.main-nav{gap:3px;margin:16px 0 21px}.nav-btn{font-size:10px;padding:9px 4px}.nav-btn span{font-size:17px}.section-heading h2{font-size:23px}.card{padding:18px}.mood-options{gap:4px}.mood-option{padding:9px 1px}.mood-option span{font-size:21px}.mood-option b{font-size:8px}.pair-banner{align-items:flex-start;flex-direction:column}.auth-card{padding:26px 21px}.user-greeting{display:none}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
