:root{--blush: #ffe4ec;--rose: #e8768f;--rose-dark: #c94f6d;--cream: #fff8f3;--ink: #4a3238;--ink-soft: #8a6b72;--gold: #d8a657;--burgundy: #3a0d17;--burgundy-light: #5c1a29;--success: #6fa87c;--radius: 16px;--shadow: 0 8px 24px rgba(201, 79, 109, .12)}*{box-sizing:border-box}body{margin:0;font-family:Nunito,system-ui,sans-serif;background:linear-gradient(160deg,var(--cream),var(--blush) 120%);color:var(--ink);min-height:100vh}h1,h2,h3{font-family:Playfair Display,serif;color:var(--rose-dark);margin:0 0 .4em}a{color:var(--rose-dark)}button{font-family:inherit}.page-loading{display:flex;align-items:center;justify-content:center;height:100vh;font-size:1.2rem;color:var(--rose-dark)}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.auth-card{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:36px;width:100%;max-width:420px}.auth-card h1{text-align:center;font-size:2rem}.auth-sub{text-align:center;color:var(--ink-soft);margin-bottom:24px}.field{margin-bottom:16px;display:flex;flex-direction:column;gap:6px}.field label{font-weight:700;font-size:.85rem;color:var(--ink-soft)}input,textarea,select{font-family:inherit;font-size:1rem;padding:10px 14px;border-radius:10px;border:1.5px solid #f0d3da;background:var(--cream);color:var(--ink)}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--rose)}.btn-primary{background:linear-gradient(135deg,var(--rose),var(--rose-dark));color:#fff;border:none;padding:12px 20px;border-radius:12px;font-weight:800;cursor:pointer;width:100%;transition:transform .1s ease}.btn-primary:hover{transform:translateY(-1px)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-ghost{background:transparent;border:1.5px solid var(--rose);color:var(--rose-dark);padding:8px 16px;border-radius:10px;cursor:pointer;font-weight:700}.btn-small{padding:6px 12px;font-size:.85rem;border-radius:8px;border:1.5px solid var(--rose);background:#fff;color:var(--rose-dark);cursor:pointer;font-weight:700}.error-text{color:#b3261e;background:#fdeceb;padding:10px 14px;border-radius:10px;margin-bottom:16px;font-size:.9rem}.auth-switch{text-align:center;margin-top:18px;color:var(--ink-soft)}.invite-code-box{background:var(--blush);border:1.5px dashed var(--rose);border-radius:12px;padding:16px;text-align:center;margin-top:16px}.invite-code-box .code{font-size:1.6rem;font-weight:800;letter-spacing:3px;color:var(--rose-dark)}.app-shell{display:flex;min-height:100vh}.sidebar{width:240px;background:#fff;border-right:1px solid #f5dbe2;padding:24px 16px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{font-family:Playfair Display,serif;font-size:1.3rem;font-weight:700;color:var(--rose-dark);display:flex;align-items:center;gap:8px;margin-bottom:28px;padding:0 8px}.brand-heart{font-size:1.5rem}.nav-link{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;color:var(--ink);text-decoration:none;font-weight:700;margin-bottom:4px;transition:background .15s ease}.nav-link:hover{background:var(--blush)}.nav-link.active{background:linear-gradient(135deg,var(--rose),var(--rose-dark));color:#fff}.nav-icon{font-size:1.1rem}.sidebar-footer{margin-top:auto;padding-top:16px;border-top:1px solid #f5dbe2;display:flex;flex-direction:column;gap:10px}.me-chip{font-size:.9rem;color:var(--ink-soft);font-weight:700}.mobile-topbar{display:none}.menu-toggle{background:var(--blush);border:none;color:var(--rose-dark);font-size:1.3rem;width:44px;height:44px;border-radius:10px;cursor:pointer}.nav-backdrop{display:none}.content{flex:1;padding:32px 40px;max-width:1100px}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;gap:16px;flex-wrap:wrap}.card{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:18px}.idea-card{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;display:flex;flex-direction:column}.idea-card.done{opacity:.65}.idea-photo{width:100%;height:150px;object-fit:cover;background:var(--blush)}.idea-body{padding:16px;display:flex;flex-direction:column;gap:8px;flex:1}.badge{display:inline-block;font-size:.72rem;font-weight:800;padding:3px 10px;border-radius:999px;text-transform:uppercase;letter-spacing:.03em;width:fit-content}.badge.simpel{background:#e6f3ff;color:#2a6ea8}.badge.romantisch{background:var(--blush);color:var(--rose-dark)}.badge.avontuurlijk{background:#fff2d9;color:#a5720c}.badge.spannend{background:#f6e2ea;color:var(--burgundy)}.badge.lief{background:var(--blush);color:var(--rose-dark)}.badge.speels{background:#e6f3ff;color:#2a6ea8}.card-actions{display:flex;gap:8px;margin-top:auto;flex-wrap:wrap}.filter-bar{display:flex;gap:8px;margin-bottom:20px;flex-wrap:wrap}.filter-chip{padding:6px 14px;border-radius:999px;border:1.5px solid var(--rose);background:#fff;color:var(--rose-dark);cursor:pointer;font-weight:700;font-size:.85rem}.filter-chip.active{background:var(--rose-dark);color:#fff}.empty-state{text-align:center;padding:60px 20px;color:var(--ink-soft)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#4a323866;display:flex;align-items:center;justify-content:center;z-index:50;padding:20px}.modal{background:#fff;border-radius:var(--radius);padding:28px;width:100%;max-width:480px;max-height:90vh;overflow-y:auto}.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-bottom:28px}.stat-card{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:20px;text-align:center}.stat-card .value{font-size:2.2rem;font-weight:800;color:var(--rose-dark);font-family:Playfair Display,serif}.stat-card .label{color:var(--ink-soft);font-weight:700;font-size:.85rem;text-transform:uppercase;letter-spacing:.03em}.quick-actions{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:28px}.chat-window{display:flex;flex-direction:column;height:65vh;background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.chat-messages{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:10px}.bubble{max-width:65%;padding:10px 14px;border-radius:16px;font-size:.95rem;line-height:1.4}.bubble.mine{align-self:flex-end;background:linear-gradient(135deg,var(--rose),var(--rose-dark));color:#fff;border-bottom-right-radius:4px}.bubble.theirs{align-self:flex-start;background:var(--blush);color:var(--ink);border-bottom-left-radius:4px}.bubble .time{display:block;font-size:.68rem;opacity:.75;margin-top:4px}.chat-input-row{display:flex;gap:10px;padding:16px;border-top:1px solid #f5dbe2}.chat-input-row input{flex:1}.streak-hero{text-align:center;padding:40px 20px;background:linear-gradient(135deg,var(--rose),var(--rose-dark));border-radius:var(--radius);color:#fff;margin-bottom:28px}.streak-hero .flame{font-size:3.5rem}.streak-hero .value{font-size:3rem;font-family:Playfair Display,serif;font-weight:700}.heatmap{display:grid;grid-template-columns:repeat(auto-fill,12px);gap:4px}.heatmap-cell{width:12px;height:12px;border-radius:3px;background:#f5dbe2}.heatmap-cell.l1{background:#f6c6d3}.heatmap-cell.l2{background:#ea93a8}.heatmap-cell.l3{background:var(--rose)}.heatmap-cell.l4{background:var(--rose-dark)}.intimacy-theme{background:radial-gradient(circle at top,var(--burgundy-light),var(--burgundy) 70%);min-height:100%;margin:-32px -40px;padding:32px 40px;border-radius:0;color:#f4dbe1}.intimacy-theme h1,.intimacy-theme h2,.intimacy-theme h3{color:var(--gold)}.intimacy-lock{display:flex;align-items:center;justify-content:center;min-height:70vh}.pin-card{background:#ffffff0d;border:1px solid rgba(216,166,87,.4);border-radius:var(--radius);padding:36px;width:100%;max-width:380px;text-align:center}.pin-card input{text-align:center;letter-spacing:6px;font-size:1.4rem;background:#ffffff14;border-color:#d8a65766;color:#fff}.pin-card .btn-primary{background:linear-gradient(135deg,var(--gold),#b3812f);margin-top:14px}.intimacy-card{background:#ffffff0f;border:1px solid rgba(216,166,87,.25);border-radius:var(--radius);overflow:hidden}.intimacy-card.tried{border-color:#d8a65799;background:#d8a6571a}.intimacy-card .idea-body{color:#f4dbe1}.spice-level{color:var(--gold);letter-spacing:2px}@media (max-width: 800px){.app-shell{flex-direction:column}.mobile-topbar{display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:40;background:#fff;border-bottom:1px solid #f5dbe2;padding:10px 16px}.mobile-topbar .brand{margin-bottom:0;padding:0;font-size:1.15rem}.nav-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#4a323873;z-index:45}.sidebar{position:fixed;top:0;left:0;bottom:0;width:min(78vw,300px);height:100vh;z-index:50;transform:translate(-100%);transition:transform .2s ease;box-shadow:0 0 30px #00000026;overflow-y:auto}.sidebar.open{transform:translate(0)}.sidebar nav{display:flex;flex-direction:column}.nav-link{padding:14px 12px;font-size:1.02rem}.sidebar-footer{border-top:1px solid #f5dbe2;padding-top:16px}.content{padding:18px}.intimacy-theme{margin:-18px;padding:18px}}
