@import"https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400..900;1,400..900&family=Outfit:wght@100..900&family=Lora:ital,wght@0,400..700;1,400..700&family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;0,700;1,300;1,400;1,500;1,600;1,700&display=swap";:root{--color-bg-base: #fdf5f0;--color-bg-surface: #ffffff;--color-text-primary: #5a4b41;--color-text-secondary: #a38f85;--color-accent-warm: #ffcdb2;--color-accent-warm-glow: rgba(255, 205, 178, .4);--color-accent-cold: #e2eafc;--color-accent-cold-glow: rgba(226, 234, 252, .4);--color-sunrise-pink: #ffb7b2;--color-sunrise-gold: #ffdac1;--glass-bg: rgba(255, 255, 255, .6);--glass-border: rgba(255, 248, 240, .9);--glass-blur: 20px;--shadow-soft: 0 12px 40px rgba(90, 75, 65, .06);--font-serif: "Playfair Display", serif;--font-sans: "Outfit", sans-serif;--font-italic: "Lora", serif;--space-unit: 1rem}body.dark-mode{--color-bg-base: #0f1219;--color-bg-surface: #1e2330;--color-text-primary: #e2e8f0;--color-text-secondary: #94a3b8;--color-accent-warm: #ffcdb2;--color-accent-cold: #334155;--glass-bg: rgba(15, 23, 42, .7);--glass-border: rgba(255, 255, 255, .1);--shadow-soft: 0 12px 40px rgba(0, 0, 0, .4);background:linear-gradient(135deg,#0f1219,#1a1f2e,#2d1b2e)}*{box-sizing:border-box;margin:0;padding:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background:linear-gradient(135deg,#fff5e6,#fdf5f0,#fce4ec);color:var(--color-text-primary);font-family:var(--font-sans);line-height:1.6;overflow-x:hidden;min-height:100vh}h1,h2,h3,h4{font-family:var(--font-serif);font-weight:500;letter-spacing:-.02em}.glass{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:28px;box-shadow:var(--shadow-soft)}.transition-luxury{transition:all .6s cubic-bezier(.22,1,.36,1)}::-webkit-scrollbar{display:none}*{-ms-overflow-style:none;scrollbar-width:none}.glass-card{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:28px;padding:1.5rem;position:relative;overflow:hidden}.glass-card:hover{border-color:#ffffff26;transform:translateY(-4px);box-shadow:0 20px 40px #0006}.habitat-card{min-height:240px;display:flex;flex-direction:column;justify-content:flex-end;cursor:pointer;transition:transform .4s cubic-bezier(.22,1,.36,1);position:relative;overflow:hidden}.edit-habit-btn{position:absolute;top:1rem;right:1rem;z-index:10;background:#fff3;border:1px solid rgba(255,255,255,.3);color:var(--color-text-secondary);width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;transform:translateY(-5px);transition:all .3s ease}.habitat-card:hover .edit-habit-btn{opacity:1;transform:translateY(0)}.edit-habit-btn:hover{background:#fff;color:var(--color-text-primary);transform:scale(1.1)!important}.habitat-card:hover{transform:translateY(-8px)}.habitat-visual-bg{position:absolute;top:0;left:0;width:100%;height:100%;background-size:cover;background-position:center;opacity:.7;background-image:linear-gradient(to top,#0009,#0000 50%),var(--card-bg-image);transition:opacity .5s ease,transform .8s ease;z-index:1}.habitat-card:hover .habitat-visual-bg{opacity:.8;transform:scale(1.05)}.habitat-content{position:relative;z-index:2}.habitat-header-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.habitat-category{font-family:var(--font-sans);font-size:.7rem;letter-spacing:.15em;color:var(--color-text-secondary);display:block;color:#ffffffe6;text-shadow:0 1px 2px rgba(0,0,0,.2)}.time-tag{font-size:.75rem;font-weight:700;color:#fff;background:#0006;border:1px solid rgba(255,255,255,.4);padding:3px 10px;border-radius:100px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);text-shadow:0 1px 2px rgba(0,0,0,.5);box-shadow:0 2px 5px #0000001a;letter-spacing:.05em}.daily-goal-label{display:block;font-family:var(--font-sans);font-size:.7rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:#ffffffd9;text-shadow:0 1px 3px rgba(0,0,0,.4);margin-bottom:.35rem}.habitat-title{font-size:1.75rem;margin-bottom:.25rem;color:#fff;text-shadow:0 2px 4px rgba(0,0,0,.3)}.habitat-footer{display:flex;justify-content:space-between;align-items:center;font-size:.8rem}.partner-avatars{display:flex;gap:12px;align-items:center}.partner-avatar{position:relative;width:32px;height:32px;display:flex;align-items:center;justify-content:center}.avatar-circle{width:28px;height:28px;border-radius:50%;background:var(--glass-bg);border:1px solid var(--glass-border);font-size:.65rem;font-weight:600;color:var(--color-text-secondary);display:flex;align-items:center;justify-content:center;font-family:var(--font-sans);z-index:2}.glow-ring{position:absolute;inset:-2px;border-radius:50%;border:2px solid #a5d6a7;box-shadow:0 0 10px #a5d6a799;z-index:1;animation:pulse-ring 2s infinite cubic-bezier(.45,0,.55,1)}@keyframes pulse-ring{0%{transform:scale(1);opacity:.8}50%{transform:scale(1.05);opacity:1}to{transform:scale(1);opacity:.8}}.status-all-completed{border-color:#a5d6a766;background:linear-gradient(135deg,#fffc,#a5d6a70d)}.atmosphere-glow{position:absolute;top:-50%;right:-50%;width:150%;height:150%;background:radial-gradient(circle at center,var(--glow-color, transparent) 0%,transparent 70%);opacity:.15;pointer-events:none;transition:opacity 1s ease}.status-all-completed .atmosphere-glow{--glow-color: #a5d6a7;opacity:.25}.status-partial .atmosphere-glow{--glow-color: var(--color-accent-warm);opacity:.2}.card-action-element{position:absolute;top:1rem;right:1rem;z-index:10}.join-btn{background:#e6b88a;color:#3d2c1d;border:none;padding:.3rem .8rem;border-radius:100px;font-size:.8rem;font-weight:700;cursor:pointer;box-shadow:0 4px 15px #e6b88a66;transition:all .2s ease;font-family:var(--font-sans)}.join-btn:hover{transform:translateY(-2px);background:#f0cba5;box-shadow:0 6px 20px #e6b88a99}.creator-tag{position:absolute;top:1rem;left:1rem;z-index:10;font-family:var(--font-sans);font-size:.7rem;color:#fffffff2;letter-spacing:.05em;text-shadow:0 1px 2px rgba(0,0,0,.5);background:#0000004d;padding:4px 10px;border-radius:100px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.card-kin-circles{display:flex;align-items:center;gap:8px;margin-top:.15rem;margin-bottom:0}.card-kin-circle{width:28px;height:28px;border-radius:50%;background:#ffffff26;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.3);display:flex;align-items:center;justify-content:center;color:#ffffffe6;font-family:var(--font-sans);font-size:.6rem;font-weight:600;text-shadow:0 1px 2px rgba(0,0,0,.3);transition:transform .2s ease,box-shadow .3s ease}.card-kin-circle:hover{transform:scale(1.1)}.card-kin-circle.glowing{border-color:#ffc857b3;box-shadow:0 0 8px #ffc85780,0 0 16px #ffb43c40;animation:card-kin-glow 2.5s ease-in-out infinite}@keyframes card-kin-glow{0%,to{box-shadow:0 0 8px #ffc85780,0 0 16px #ffb43c40}50%{box-shadow:0 0 12px #ffc857b3,0 0 24px #ffb43c66}}.card-kin-more{width:28px;height:28px;border-radius:50%;background:#ffffff14;border:1px dashed rgba(255,255,255,.3);display:flex;align-items:center;justify-content:center;color:#fff9;font-family:var(--font-sans);font-size:.55rem;font-weight:500}.card-kin-empty{font-family:var(--font-sans);font-size:.7rem;color:#fff6;font-style:italic}.ritual-container{display:flex;flex-direction:column;align-items:center;gap:2rem;width:100%;max-width:400px}.ritual-button-wrapper{position:relative;width:200px;height:200px;display:flex;align-items:center;justify-content:center;cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:none;background:#ffffff26;border-radius:50%;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.ritual-progress-svg{position:absolute;top:0;left:0;width:100%;height:100%;transform:rotate(-90deg)}.ritual-progress-bg{fill:none;stroke:#ffffff0d;stroke-width:2}.ritual-progress-fill{fill:none;stroke:var(--color-accent-warm);stroke-width:2;stroke-linecap:round;filter:drop-shadow(0 0 8px var(--color-accent-warm));transition:opacity .3s ease}.ritual-label-container{display:flex;flex-direction:column;align-items:center;z-index:10;text-align:center}.ritual-label{font-family:var(--font-serif);font-size:1.1rem;color:#fff;letter-spacing:.05em;transition:all .3s ease}.ritual-timer-hint{font-family:var(--font-italic);font-style:italic;font-size:.8rem;color:#fff;opacity:.8;margin-top:.5rem}.is-pressing .ritual-label{transform:scale(.95);opacity:.8}.ritual-expansion-glow{position:absolute;width:100%;height:100%;background:radial-gradient(circle,var(--color-accent-warm) 0%,transparent 70%);border-radius:50%;z-index:1;pointer-events:none}.note-overlay{width:100%;padding:2.5rem;border-radius:32px;margin-top:1rem}.note-form{display:flex;flex-direction:column;gap:1.5rem}.note-label{font-family:var(--font-italic);font-style:italic;color:var(--color-text-secondary);font-size:.9rem;text-align:center}.note-input{background:transparent;border:none;border-bottom:1px solid var(--glass-border);color:var(--color-text-primary);font-family:var(--font-serif);font-size:1.4rem;padding:.5rem 0;text-align:center;outline:none;transition:border-color .3s ease}.note-input:focus{border-color:var(--color-accent-warm)}.note-actions{display:flex;gap:1rem;justify-content:center}.note-submit-btn,.note-skip-btn{background:transparent;border:1px solid var(--glass-border);color:var(--color-text-primary);padding:.75rem 1.5rem;border-radius:100px;font-family:var(--font-sans);font-size:.85rem;cursor:pointer;transition:all .3s ease}.note-submit-btn{background:var(--color-accent-warm);border-color:var(--color-accent-warm);color:var(--color-bg-base);font-weight:600}.note-submit-btn:hover{filter:brightness(1.1);transform:translateY(-2px)}.note-skip-btn:hover{background:#ffffff0d;border-color:#fff3}.kin-popover{position:fixed;z-index:1000;background:#ffffff26;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.25);border-radius:8px;padding:.5rem .75rem;min-width:80px;transform:translate(-50%);margin-top:6px;animation:popover-fade-in .12s ease-out}@keyframes popover-fade-in{0%{opacity:0;transform:translate(-50%) translateY(-4px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.kin-popover-name{font-family:var(--font-sans);font-size:.75rem;font-weight:500;color:#fffffff2;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.3)}.kin-popover-goal,.kin-popover-streak{font-family:var(--font-sans);font-size:.7rem;color:#fffc;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.3)}.habitat-detail-overlay{position:fixed;top:0;left:0;width:100%;height:100%;z-index:1000;background:var(--color-bg-base);display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:2rem;padding-top:8vh;overflow:hidden}.detail-visual-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background-image:var(--detail-bg-image);background-size:cover;background-position:center;opacity:.85;z-index:1}.detail-nav{position:absolute;top:3rem;left:3rem;right:3rem;display:flex;justify-content:space-between;align-items:center;z-index:20}.back-btn,.settings-btn{background:transparent;border:none;color:#fffffff2;text-shadow:0 1px 2px rgba(0,0,0,.5),0 2px 8px rgba(0,0,0,.4);font-family:var(--font-sans);font-size:.8rem;letter-spacing:.15rem;text-transform:uppercase;cursor:pointer;transition:all .3s ease}.back-btn:hover,.settings-btn:hover{color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.5);transform:translateY(-1px)}.habitat-detail-content{position:relative;z-index:10;display:flex;flex-direction:column;align-items:center;gap:4rem;width:100%;max-width:600px}.habitat-detail-header{text-align:center}.habitat-theme-label{display:block;font-family:var(--font-sans);font-size:.75rem;letter-spacing:.3em;text-transform:uppercase;color:#fffffff2;text-shadow:0 1px 3px rgba(0,0,0,.5),0 2px 10px rgba(0,0,0,.4);margin-bottom:1.5rem}.habitat-detail-title{font-size:4rem;color:#fff;text-shadow:0 4px 12px rgba(0,0,0,.3);font-family:var(--font-serif)}.edit-form{width:100%;max-width:480px;padding:1.25rem 1.75rem 2rem;display:flex;flex-direction:column;gap:.5rem;border-radius:24px}.edit-title{font-family:var(--font-serif);font-size:1.3rem;color:var(--color-text-primary);margin-bottom:.15rem;text-align:center}.edit-input{background:#fff;border:1px solid var(--glass-border);border-radius:10px;padding:.7rem .9rem;color:var(--color-text-primary);font-family:var(--font-sans);font-size:.95rem;outline:none;width:100%;box-sizing:border-box}select.edit-input{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23666' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;padding-right:2rem;cursor:pointer}.edit-notice{font-size:.8rem;color:var(--color-text-secondary);font-style:italic;text-align:center}.privacy-toggle-group{display:flex;justify-content:center;background:#fff3;border-radius:99px;padding:4px;width:fit-content;margin:0 auto}.privacy-toggle-btn{padding:.5rem 1.5rem;border-radius:99px;border:none;background:transparent;color:var(--color-text-primary);cursor:pointer;font-family:var(--font-sans);font-size:.9rem;transition:all .2s ease}.privacy-toggle-btn.active{background:#fff;color:#000;box-shadow:0 2px 8px #0000001a;font-weight:600}.kin-selection-grid{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:.25rem;margin-bottom:.5rem}.kin-circle{width:42px;height:42px;border-radius:50%;background:#0000004d;border:1px solid rgba(255,255,255,.4);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;font-size:.9rem;cursor:pointer;transition:all .2s ease;position:relative;font-family:var(--font-sans)}.kin-circle:hover{transform:scale(1.1);background:#ffffff4d}.kin-circle.selected{background:#4caf8859;color:#3d6b5a;border-color:#4caf88b3;box-shadow:0 0 15px #4caf8880}.save-btn{background:#e6b88a;color:#3d2c1d;border:none;padding:.65rem 2rem;border-radius:100px;font-weight:700;cursor:pointer;opacity:1;box-shadow:0 4px 15px #e6b88a66;transition:all .3s ease;margin-top:.25rem;align-self:center;width:auto}.save-btn:hover{transform:translateY(-2px)}.delete-btn{background:#ff6b6b;border:none;color:#fff;cursor:pointer;font-size:.8rem;font-weight:600;padding:.5rem 1rem;border-radius:100px;opacity:.9;transition:all .2s;align-self:center;margin-top:.75rem;box-shadow:0 2px 8px #ff6b6b4d}.delete-btn:hover{opacity:1;transform:translateY(-1px);box-shadow:0 4px 12px #ff6b6b66;text-decoration:none}.atmosphere-elements{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:2}.ambient-light{position:absolute;width:100%;height:100%;background:radial-gradient(circle at center,rgba(255,205,178,.05) 0%,transparent 80%)}.drifting-particles{position:absolute;width:100%;height:100%;background-image:radial-gradient(circle,#fff 1px,transparent 1px);background-size:200px 200px;opacity:.05;animation:drift 60s linear infinite}@keyframes drift{0%{background-position:0 0}to{background-position:200px 400px}}@media(max-width:768px){.habitat-detail-title{font-size:2.5rem}.detail-nav{top:2rem;left:1.5rem;right:1.5rem}}.streak-display{display:flex;flex-direction:column;align-items:center;justify-content:center;margin-top:.5rem;color:#fffffff2;position:relative;z-index:2}.streak-text{font-family:var(--font-serif);font-size:.85rem;color:#fff;letter-spacing:.05em;opacity:.9;margin-top:.25rem;font-weight:400;text-shadow:0 1px 2px rgba(0,0,0,.5),0 2px 8px rgba(0,0,0,.3)}.streak-count{font-family:var(--font-serif);font-size:1.4rem;font-weight:400;line-height:1;color:#fffffff2;text-shadow:0 1px 3px rgba(0,0,0,.5),0 2px 10px rgba(0,0,0,.4);letter-spacing:.5px}.partner-display{display:flex;justify-content:center;gap:20px;margin-top:2rem;z-index:20;flex-wrap:wrap}.partner-container{display:flex;flex-direction:column;align-items:center;position:relative}.partner-avatar{position:relative;width:48px;height:48px;display:flex;align-items:center;justify-content:center}.habitat-detail-overlay .avatar-circle{width:42px;height:42px;border-radius:50%;background:#ffffff1a;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);border:1px solid rgba(255,255,255,.2);font-size:.9rem;font-weight:600;color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--font-sans);z-index:2}.habitat-detail-overlay .glow-ring{position:absolute;inset:-3px;border-radius:50%;border:2px solid #ffd700;box-shadow:0 0 15px #ffd70099;z-index:1;animation:pulse-ring 2s infinite cubic-bezier(.45,0,.55,1)}@keyframes pulse-ring{0%{transform:scale(1);opacity:.8}50%{transform:scale(1.1);opacity:1}to{transform:scale(1);opacity:.8}}.kin-circles-container{display:flex;justify-content:center;align-items:center;gap:12px;margin-top:2rem;z-index:20;flex-wrap:wrap}.kin-participant-circle{width:36px;height:36px;border-radius:50%;background:#ffffff1f;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.25);display:flex;align-items:center;justify-content:center;color:#ffffffe6;font-family:var(--font-sans);font-size:.75rem;font-weight:600;letter-spacing:.02em;text-shadow:0 1px 2px rgba(0,0,0,.3);transition:transform .2s ease,box-shadow .3s ease;cursor:default}.kin-participant-circle:hover{transform:scale(1.08)}.kin-participant-circle.glowing{border-color:#ffc857b3;box-shadow:0 0 12px #ffc85780,0 0 24px #ffb43c40,inset 0 0 8px #ffc85726;animation:kin-glow-pulse 2.5s ease-in-out infinite}@keyframes kin-glow-pulse{0%,to{box-shadow:0 0 12px #ffc85780,0 0 24px #ffb43c40,inset 0 0 8px #ffc85726}50%{box-shadow:0 0 18px #ffc857b3,0 0 32px #ffb43c66,inset 0 0 12px #ffc85740}}.kin-more-indicator{width:36px;height:36px;border-radius:50%;background:#ffffff14;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px dashed rgba(255,255,255,.3);display:flex;align-items:center;justify-content:center;color:#ffffffb3;font-family:var(--font-sans);font-size:.7rem;font-weight:500}.kin-empty-state{font-family:var(--font-sans);font-size:.8rem;color:#ffffff80;letter-spacing:.03em;font-style:italic;text-shadow:0 1px 2px rgba(0,0,0,.2)}.reminder-toggle-row{margin-top:.25rem}.reminder-checkbox{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-family:var(--font-sans);font-size:.85rem;color:var(--color-text-secondary)}.reminder-checkbox input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:var(--color-accent-warm)}.reminder-time-input{width:80px!important;text-align:center;font-family:var(--font-sans);font-size:.95rem;letter-spacing:.05em}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#fffff566;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:2000;display:flex;align-items:center;justify-content:center;padding:1.5rem}.modal-content{width:100%;max-width:640px;padding:3rem;border-radius:36px;max-height:90vh;overflow-y:auto}.modal-header{margin-bottom:3rem;text-align:center}.modal-title{font-size:2.5rem;margin-bottom:.5rem;background:linear-gradient(to bottom,var(--color-text-primary),var(--color-text-secondary));background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.modal-subtitle{font-family:var(--font-italic);font-style:italic;color:var(--color-text-secondary);font-size:1.1rem}.modal-form{display:flex;flex-direction:column;gap:2.5rem}.form-sections{display:flex;flex-direction:column;gap:3rem}.form-section{display:flex;flex-direction:column;gap:1.5rem}.input-row{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.input-group{display:flex;flex-direction:column;gap:.75rem}.input-group label{font-family:var(--font-sans);font-size:.75rem;text-transform:uppercase;letter-spacing:.15em;color:var(--color-text-secondary);margin-left:.25rem}.modal-input,.modal-textarea{background:#fff;border:1px solid var(--glass-border);border-radius:12px;padding:1rem 1.25rem;color:var(--color-text-primary);font-family:var(--font-serif);font-size:1.1rem;outline:none;transition:all .3s ease;box-shadow:0 2px 8px #00000005}.modal-input:focus,.modal-textarea:focus{border-color:var(--color-accent-warm);box-shadow:0 4px 12px #0000000d}.theme-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.theme-option{display:flex;align-items:center;gap:1rem;padding:1.25rem;background:#fff;border:1px solid var(--glass-border);border-radius:20px;cursor:pointer;text-align:left;transition:all .3s cubic-bezier(.22,1,.36,1);box-shadow:0 2px 10px #00000005}.theme-option.active{border-color:var(--color-accent-warm);border-width:2px;background:#ffcdb20d}.theme-preview{width:40px;height:40px;border-radius:10px;flex-shrink:0}.theme-name{display:block;font-family:var(--font-serif);font-weight:500;font-size:.95rem}.theme-desc{font-family:var(--font-sans);font-size:.75rem;color:var(--color-text-secondary)}.custom-prompt-box{display:flex;flex-direction:column;gap:.75rem;padding:1.5rem;background:#ffffff80;border-radius:20px;border:1px dashed var(--color-accent-warm)}.custom-prompt-box label{font-size:.8rem;color:var(--color-text-secondary)}.modal-actions{display:flex;gap:1rem;padding-top:1rem}.btn-cancel,.btn-create{flex:1;padding:1.1rem;border-radius:100px;font-family:var(--font-sans);font-size:1rem;cursor:pointer;transition:all .3s ease}.btn-cancel{background:transparent;border:1px solid var(--glass-border);color:var(--color-text-secondary)}.btn-create{background:var(--color-accent-warm);border:1px solid var(--color-accent-warm);color:var(--color-bg-base);font-weight:600}.establish-habit-modal{max-width:480px;padding:2rem!important;max-height:none;overflow:visible;position:relative;background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:28px;box-shadow:var(--shadow-soft)}.establish-close-btn{position:absolute;top:1rem;right:1rem;background:transparent;border:none;color:var(--color-text-secondary);cursor:pointer;padding:.5rem;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.establish-close-btn:hover{background:#0000000d;color:var(--color-text-primary)}.establish-habit-modal .modal-header{margin-bottom:1.25rem}.establish-habit-modal .modal-title{font-size:1.75rem}.establish-form{display:flex;flex-direction:column;gap:1rem}.establish-input-group{display:flex;flex-direction:column;gap:.4rem}.establish-input-group label{font-family:var(--font-sans);font-size:.7rem;text-transform:uppercase;letter-spacing:.12em;color:var(--color-text-secondary);margin-left:.25rem}.required{color:#e57373;font-weight:400}.reminder-time-input-row{display:flex;align-items:center;gap:.5rem}.reminder-select{flex:1}.ampm-toggle{display:flex;border:1px solid var(--glass-border);border-radius:8px;overflow:hidden}.ampm-btn{background:#fff;border:none;padding:.5rem .75rem;font-family:var(--font-sans);font-size:.85rem;font-weight:500;color:var(--color-text-secondary);cursor:pointer;transition:all .2s ease}.ampm-btn:first-child{border-right:1px solid var(--glass-border)}.ampm-btn.active{background:var(--color-accent-warm);color:#fff}.ampm-btn:hover:not(.active){background:#00000008}.establish-input{background:#fff;border:1px solid var(--glass-border);border-radius:10px;padding:.7rem .9rem;color:var(--color-text-primary);font-family:var(--font-sans);font-size:.95rem;outline:none;width:100%;box-sizing:border-box;transition:all .3s ease}.establish-input:focus{border-color:var(--color-accent-warm);box-shadow:0 2px 8px #0000000d}.establish-select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23666' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;padding-right:2rem}.establish-input-row,.establish-custom-uploads{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.establish-upload-group{display:flex;flex-direction:column;gap:.4rem}.establish-upload-group>label:first-child{font-family:var(--font-sans);font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-secondary);margin-left:.25rem}.establish-upload-box{display:flex;align-items:center;justify-content:center;width:100%;height:70px;border:1px dashed var(--glass-border);border-radius:10px;background:#ffffff80;cursor:pointer;transition:all .2s ease;overflow:hidden}.establish-upload-box:hover{border-color:var(--color-accent-warm);background:#ffffffb3}.establish-upload-placeholder{display:flex;flex-direction:column;align-items:center;gap:.25rem}.establish-upload-icon{font-size:1.25rem;color:var(--color-text-secondary);line-height:1}.establish-upload-text{font-family:var(--font-sans);font-size:.7rem;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em}.establish-upload-preview{width:100%;height:100%;object-fit:cover}.establish-privacy-toggle{display:flex;justify-content:center;background:#fff3;border-radius:99px;padding:3px;width:fit-content;margin:0 auto}.establish-privacy-btn{padding:.4rem 1.25rem;border-radius:99px;border:none;background:transparent;color:var(--color-text-primary);cursor:pointer;font-family:var(--font-sans);font-size:.85rem;transition:all .2s ease}.establish-privacy-btn.active{background:#fff;color:#000;box-shadow:0 2px 8px #0000001a;font-weight:600}.establish-kin-grid{display:flex;gap:.75rem;justify-content:center;flex-wrap:wrap;margin-top:.25rem}.establish-kin-circle{width:36px;height:36px;border-radius:50%;background:#0000001a;border:1px solid rgba(0,0,0,.1);display:flex;align-items:center;justify-content:center;color:var(--color-text-primary);font-weight:600;font-size:.8rem;cursor:pointer;transition:all .2s ease;position:relative;font-family:var(--font-sans)}.establish-kin-circle:hover{transform:scale(1.1);background:#00000026}.establish-kin-circle.selected{background:#4caf8840;color:#3d6b5a;border-color:#4caf8899;box-shadow:0 0 12px #4caf8866}.establish-save-btn{align-self:center;background:#e6b88a99;color:#5a4a3a;border:none;padding:.85rem 2.5rem;border-radius:100px;font-family:var(--font-sans);font-size:.95rem;font-weight:600;cursor:pointer;transition:all .3s ease;margin-top:.5rem}.establish-save-btn:hover{background:#e6b88acc;transform:translateY(-1px)}.establish-save-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.establish-delete-btn{align-self:center;background:#d9534f26;border:1px solid rgba(217,83,79,.3);color:#c9302c;font-size:.8rem;font-weight:500;cursor:pointer;padding:.5rem 1.25rem;border-radius:100px;margin-top:.25rem;transition:all .2s ease;font-family:var(--font-sans)}.establish-delete-btn:hover{background:#d9534f40;border-color:#d9534f80}.establish-delete-btn:disabled{opacity:.5;cursor:not-allowed}@media(max-width:640px){.establish-input-row,.establish-custom-uploads{grid-template-columns:1fr}.establish-habit-modal{padding:1.5rem!important}}.establish-modal-backdrop,.modal-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#0006;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:2000;display:flex;align-items:center;justify-content:center}.establish-modal-content{composes:establish-habit-modal}.join-goal-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#0006;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:2000;display:flex;align-items:center;justify-content:center}.join-goal-modal{max-width:400px;width:90%;padding:2rem;position:relative;background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:28px;box-shadow:var(--shadow-soft);box-sizing:border-box}.join-goal-close{position:absolute;top:1rem;right:1rem;background:transparent;border:none;color:var(--color-text-secondary);cursor:pointer;padding:.5rem;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.join-goal-close:hover{background:#0000000d;color:var(--color-text-primary)}.join-goal-title{font-family:var(--font-serif);font-size:1.75rem;color:var(--color-text-primary);margin-bottom:.5rem;text-align:center}.join-goal-subtitle{font-family:var(--font-sans);font-size:.95rem;color:#fff;text-align:center;margin-bottom:1rem}.join-goal-subtitle strong{font-weight:600}.join-goal-owner-hint{font-family:var(--font-sans);font-size:.8rem;color:var(--color-text-secondary);text-align:center;margin-bottom:1.5rem;opacity:.7}.join-goal-form{display:flex;flex-direction:column;gap:1rem}.join-goal-input-group{display:flex;flex-direction:column;gap:.4rem}.join-goal-input-group label{font-family:var(--font-sans);font-size:.7rem;text-transform:uppercase;letter-spacing:.12em;color:var(--color-text-secondary);margin-left:.25rem}.join-goal-input-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.join-goal-amount,.join-goal-unit{background:#fff;border:1px solid var(--glass-border);border-radius:10px;padding:.7rem .9rem;color:var(--color-text-primary);font-family:var(--font-sans);font-size:.95rem;outline:none;width:100%;box-sizing:border-box;transition:all .3s ease}.join-goal-amount:focus,.join-goal-unit:focus{border-color:var(--color-accent-warm);box-shadow:0 2px 8px #0000000d}.join-goal-actions{display:flex;flex-direction:column;align-items:center;gap:.5rem;margin-top:.5rem}.join-goal-confirm{background:#e6b88a99;color:#5a4a3a;border:none;padding:.75rem 2rem;border-radius:100px;font-family:var(--font-sans);font-size:.95rem;font-weight:600;cursor:pointer;transition:all .3s ease}.join-goal-confirm:hover{background:#e6b88acc;transform:translateY(-1px)}.join-goal-skip{background:transparent;color:var(--color-text-secondary);border:none;font-family:var(--font-sans);font-size:.85rem;cursor:pointer;padding:.5rem 1rem;transition:color .2s;text-decoration:underline}.join-goal-skip:hover{color:var(--color-text-primary)}.calendar-section{margin-top:4rem;padding:2.5rem;border-radius:24px;background:var(--glass-bg);border:1px solid var(--glass-border);box-shadow:var(--shadow-soft)}.calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2.5rem;flex-wrap:wrap;gap:1.5rem}.calendar-title{font-family:var(--font-serif);font-size:1.75rem;color:var(--color-text-primary);margin:0}.calendar-view-toggle{display:flex;border:1px solid var(--glass-border);border-radius:8px;overflow:hidden}.calendar-view-toggle .toggle-btn{background:#fff;border:none;padding:.6rem 1.1rem;font-family:var(--font-sans);font-size:.9rem;font-weight:500;color:var(--color-text-secondary);cursor:pointer;transition:all .2s ease;white-space:nowrap;min-width:max-content}.calendar-view-toggle .toggle-btn:first-child{border-right:1px solid var(--glass-border)}.calendar-view-toggle .toggle-btn.active{background:var(--color-accent-warm);color:#fff}.calendar-view-toggle .toggle-btn:hover:not(.active){background:#00000008}.habit-legend{display:flex;gap:1.5rem;flex-wrap:wrap}.legend-item{display:flex;align-items:center;gap:8px}.legend-dot{width:10px;height:10px;border-radius:50%;box-shadow:0 2px 5px #0000001a}.legend-name{font-size:.85rem;color:var(--color-text-secondary);font-family:var(--font-sans)}.calendar-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:1rem;margin-top:1.5rem}.calendar-loading{grid-column:1 / -1;text-align:center;padding:2rem;color:var(--color-text-secondary);font-style:italic}.calendar-empty-state{text-align:center;padding:3rem 1rem;color:var(--color-text-secondary)}.calendar-empty-state p{margin:.5rem 0;font-family:var(--font-serif);font-size:1.1rem}.calendar-empty-hint{font-size:.9rem!important;opacity:.7;font-style:italic}.calendar-day{display:flex;flex-direction:column;align-items:center;gap:12px;padding:1rem .5rem;background:#ffffff26;border-radius:16px;border:1px solid rgba(255,255,255,.3);transition:transform .3s ease,background .3s ease}.day-label{font-size:.75rem;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em;font-family:var(--font-sans)}.day-dots{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;min-height:26px;max-width:40px}.completion-dot{width:10px;height:10px;border-radius:50%;box-shadow:0 2px 4px #0000000d;animation:dot-appear .6s cubic-bezier(.22,1,.36,1) backwards}@keyframes dot-appear{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}.calendar-day .day-label{opacity:.5}.calendar-day:hover{transform:translateY(-4px);background:#fff6}.calendar-day:hover .day-label{opacity:.9}.calendar-day.disabled{display:none}.calendar-day.is-today{background:#ffffffe6;border-width:2px;border-color:var(--color-accent-warm);box-shadow:0 4px 15px #e6b88a40;opacity:1;transform:scale(1.05)}.calendar-day.is-today .day-label{opacity:1;color:#5a4b41}.calendar-day.perfect-day{border-color:#a5d6a7;box-shadow:0 0 15px #a5d6a766;animation:perfect-glow 3s infinite ease-in-out}.calendar-day.is-today.perfect-day{background:#fffffff2;opacity:1}@keyframes perfect-glow{0%{box-shadow:0 0 10px #a5d6a74d;border-color:#a5d6a799}50%{box-shadow:0 0 20px #a5d6a799;border-color:#a5d6a7}to{box-shadow:0 0 10px #a5d6a74d;border-color:#a5d6a799}}.calendar-modal-overlay{position:fixed;top:0;left:0;width:100%;height:100vh;background:#0000004d;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:2000;display:flex;align-items:center;justify-content:center}.calendar-day-modal{width:90%;max-width:400px;background:var(--color-bg-surface);border-radius:24px;padding:2rem;box-shadow:0 10px 40px #0003;border:1px solid var(--glass-border);position:relative;max-height:80vh;display:flex;flex-direction:column}.day-modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.day-modal-date{font-family:var(--font-serif);font-size:1.5rem;color:var(--color-text-primary);margin:0}.close-modal-btn{background:transparent;border:none;color:var(--color-text-secondary);cursor:pointer;padding:4px;border-radius:50%;transition:background .2s;display:flex;align-items:center;justify-content:center}.close-modal-btn:hover{background:#0000000d;color:var(--color-text-primary)}.day-habits-list{display:flex;flex-direction:column;gap:1rem;overflow-y:auto;padding-right:4px}.day-habit-item{background:#ffffff0d;border-radius:16px;padding:1rem;border:1px solid rgba(255,255,255,.1)}.day-habit-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.5rem}.day-habit-dot{width:12px;height:12px;border-radius:50%}.day-habit-title{font-family:var(--font-sans);font-weight:600;color:var(--color-text-primary);font-size:1rem}.day-habit-note{font-family:var(--font-italic);font-style:italic;color:var(--color-text-secondary);font-size:.9rem;margin:.5rem 0 0 .5rem;border-left:2px solid rgba(255,255,255,.2);padding-left:.75rem;line-height:1.4}.day-habit-note-empty{color:var(--color-text-secondary);font-size:.8rem;opacity:.5;margin-left:.5rem;margin-top:.25rem;font-style:italic}.no-activity-msg{text-align:center;color:var(--color-text-secondary);font-style:italic;margin-top:2rem}.modal-loading{text-align:center;color:var(--color-text-secondary);font-style:italic;padding:1rem}.day-habit-meta{display:flex;align-items:center;gap:.5rem;font-size:.8rem;color:var(--color-text-secondary);margin-top:.5rem;padding-left:1.5rem}.day-habit-meta svg{opacity:.7;flex-shrink:0}.day-habit-streak{color:var(--color-accent-warm)}.day-habit-streak svg{color:var(--color-accent-warm);opacity:1}.day-habit-kin{margin-top:.75rem;padding:.75rem;background:#4caf8814;border-radius:10px;border:1px solid rgba(76,175,136,.15)}.kin-header{display:flex;align-items:center;gap:.5rem;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-secondary);margin-bottom:.5rem}.kin-header svg{color:#4caf88cc}.kin-completion{font-size:.85rem;color:var(--color-text-primary);padding:.25rem 0 .25rem 1.25rem}.add-kin-overlay{position:fixed;top:0;left:0;width:100%;height:100vh;background:#0003;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:2000;display:flex;align-items:center;justify-content:center}.add-kin-modal{width:90%;max-width:420px;background:var(--color-bg-surface);border-radius:32px;padding:2.5rem;box-shadow:0 20px 60px #00000026;border:1px solid var(--glass-border);position:relative}.add-kin-close{position:absolute;top:1.5rem;right:1.5rem;background:transparent;border:none;cursor:pointer;color:var(--color-text-secondary);padding:.5rem;border-radius:50%;transition:background .2s;display:flex;align-items:center;justify-content:center}.add-kin-close:hover{background:#0000000d}.add-kin-header{text-align:center;margin-bottom:2rem}.add-kin-title{font-family:var(--font-serif);font-size:1.75rem;color:var(--color-text-primary);margin-bottom:.5rem}.add-kin-subtitle{font-family:var(--font-italic);font-style:italic;color:var(--color-text-secondary);font-size:.95rem}.add-kin-tabs{display:flex;gap:.5rem;margin-bottom:1.5rem}.tab-btn{flex:1;background:transparent;border:1px solid var(--glass-border);padding:.75rem;border-radius:12px;font-family:var(--font-sans);font-size:.85rem;color:var(--color-text-secondary);cursor:pointer;transition:all .2s}.tab-btn.active{background:var(--color-accent-warm);border-color:var(--color-accent-warm);color:var(--color-bg-base);font-weight:600}.add-kin-form{display:flex;flex-direction:column;gap:1.5rem}.add-kin-input{background:#fff6;border:1px solid rgba(163,143,133,.4);padding:1rem 1.25rem;border-radius:16px;font-family:var(--font-sans);font-size:1rem;color:var(--color-text-primary);transition:all .3s ease;outline:none;width:100%}.add-kin-input:focus{background:#fffc;border-color:var(--color-accent-warm);box-shadow:0 0 0 3px var(--color-accent-warm-glow)}.add-kin-submit{background:var(--color-text-primary);color:var(--color-bg-base);border:none;padding:1rem;border-radius:16px;font-family:var(--font-sans);font-weight:600;font-size:1rem;cursor:pointer;transition:all .3s ease}.add-kin-submit:hover{transform:translateY(-2px);box-shadow:var(--shadow-soft)}.add-kin-submit:disabled{opacity:.7;cursor:not-allowed;transform:none}.add-kin-error{color:#e57373;font-size:.9rem;text-align:center;background:#e573731a;padding:.75rem;border-radius:12px}.add-kin-success{color:#4ade80;font-size:.9rem;text-align:center;background:#4ade801a;padding:.75rem;border-radius:12px}.pending-section{margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--glass-border)}.pending-title{font-family:var(--font-sans);font-weight:600;font-size:.9rem;color:var(--color-text-secondary);margin-bottom:1rem}.pending-list{display:flex;flex-direction:column;gap:.75rem}.pending-item{display:flex;align-items:center;justify-content:space-between;padding:.75rem;background:#ffffff4d;border-radius:12px}.pending-info{display:flex;align-items:center;gap:.75rem}.pending-avatar{width:36px;height:36px;border-radius:50%;background:var(--color-accent-warm);display:flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:600;color:var(--color-bg-base)}.pending-name{font-family:var(--font-sans);font-weight:500;color:var(--color-text-primary);font-size:.9rem}.pending-actions{display:flex;gap:.5rem}.pending-accept,.pending-decline{padding:.4rem .75rem;border-radius:8px;font-size:.8rem;font-family:var(--font-sans);cursor:pointer;transition:all .2s}.pending-accept{background:#4ade80;border:none;color:#fff;font-weight:600}.pending-accept:hover{background:#22c55e}.pending-decline{background:transparent;border:1px solid var(--color-text-secondary);color:var(--color-text-secondary)}.pending-decline:hover{background:#0000000d}.outgoing-badge{font-size:.75rem;color:var(--color-text-secondary);font-style:italic}.kin-detail-overlay{position:fixed;inset:0;background:#0006;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;justify-content:center;align-items:center;z-index:2000}.kin-detail-modal{background:#fffc;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.3);border-radius:24px;padding:2rem;width:90%;max-width:450px;box-shadow:0 20px 40px #0000001a;position:relative;overflow:hidden}[data-theme=dark] .kin-detail-modal{background:#1e1e1ecc;border-color:#ffffff1a}.kin-detail-close{position:absolute;top:1.5rem;right:1.5rem;background:none;border:none;color:var(--color-text-secondary);cursor:pointer;padding:.5rem;border-radius:50%;transition:all .2s;display:flex;align-items:center;justify-content:center}.kin-detail-close:hover{background:#0000000d;color:var(--color-text-primary)}.kin-detail-header{display:flex;flex-direction:column;align-items:center;text-align:center;margin-bottom:2rem}.kin-detail-avatar{width:80px;height:80px;border-radius:50%;background:linear-gradient(135deg,#e0c3fc,#8ec5fc);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:2rem;color:#fff;margin-bottom:1rem;border:3px solid white;box-shadow:0 8px 16px #0000001a}.kin-detail-name{font-family:var(--font-display);font-size:1.5rem;color:var(--color-text-primary);margin-bottom:.25rem}.kin-detail-email{font-size:.9rem;color:var(--color-text-secondary)}.kin-habits-section{border-top:1px solid rgba(0,0,0,.1);padding-top:1.5rem}[data-theme=dark] .kin-habits-section{border-top-color:#ffffff1a}.kin-habits-title{font-family:var(--font-display);font-size:1.1rem;color:var(--color-text-primary);margin-bottom:1rem}.kin-habits-list{display:flex;flex-direction:column;gap:.75rem;max-height:200px;overflow-y:auto}.kin-habit-item{background:#ffffff80;padding:.75rem 1rem;border-radius:12px;display:flex;align-items:center;gap:.75rem;transition:transform .2s}[data-theme=dark] .kin-habit-item{background:#ffffff0d}.kin-habit-icon{font-size:1.25rem}.kin-habit-name{font-weight:500;color:var(--color-text-primary)}.kin-empty-habits{text-align:center;color:var(--color-text-tertiary);font-size:.9rem;padding:1rem;font-style:italic}.kin-remove-btn{width:100%;margin-top:1.5rem;padding:.75rem;background:transparent;border:1px solid rgba(220,38,38,.3);color:#dc2626;border-radius:12px;font-family:var(--font-body);font-size:.9rem;cursor:pointer;transition:all .2s}.kin-remove-btn:hover{background:#dc26260d;border-color:#dc262680}.kin-section{margin-top:2rem}.kin-empty-state{display:flex;flex-direction:column;align-items:center;gap:1.5rem;padding:2rem;text-align:center}.kin-empty-text{font-family:var(--font-italic);font-style:italic;color:var(--color-text-secondary);font-size:1rem}.add-kin-btn{background:var(--color-accent-warm);color:var(--color-bg-base);border:none;padding:.75rem 1.5rem;border-radius:100px;font-family:var(--font-sans);font-weight:600;font-size:.9rem;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;gap:.5rem}.add-kin-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #ffcdb266}.kin-item{display:flex;flex-direction:column;align-items:center;gap:.75rem;cursor:pointer;transition:transform .3s cubic-bezier(.34,1.56,.64,1);min-width:80px}.kin-avatar-large{width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-family:var(--font-serif);color:var(--color-text-primary);background:#ffffff80;border:2px solid rgba(255,255,255,.8);box-shadow:0 4px 12px #0000000d;position:relative;overflow:hidden}.kin-avatar-large img{width:100%;height:100%;object-fit:cover}.kin-status-indicator{position:absolute;bottom:2px;right:2px;width:14px;height:14px;border-radius:50%;border:2px solid white}.kin-name{font-family:var(--font-sans);font-weight:500;color:var(--color-text-secondary);font-size:.85rem;text-align:center;max-width:90px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.add-kin-btn.has-requests{box-shadow:0 0 0 3px #ffcdb280,0 0 15px #ffcdb299,0 0 30px #ffcdb24d;animation:glow-pulse 2s ease-in-out infinite}@keyframes glow-pulse{0%,to{box-shadow:0 0 0 3px #ffcdb280,0 0 15px #ffcdb299,0 0 30px #ffcdb24d}50%{box-shadow:0 0 0 5px #ffcdb2b3,0 0 25px #ffcdb2cc,0 0 40px #ffcdb280}}.notification-settings-overlay{position:fixed;inset:0;background:#0006;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:2000;padding:1rem}.notification-settings-modal{width:100%;max-width:380px;max-height:75vh;border-radius:20px;overflow:hidden;display:flex;flex-direction:column}.settings-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;border-bottom:1px solid rgba(0,0,0,.05)}.settings-header h2{font-family:var(--font-serif);font-size:1rem;font-weight:600;color:var(--color-text-primary);margin:0}.settings-header .close-btn{background:none;border:none;padding:0;cursor:pointer;color:var(--color-text-secondary);border-radius:8px;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.settings-header .close-btn:hover{background:#0000000d;color:var(--color-text-primary)}.settings-content{padding:1rem 1.25rem;overflow-y:auto;flex:1}.settings-section{margin-bottom:1rem}.settings-section:last-child{margin-bottom:0}.settings-section h3{font-family:var(--font-sans);font-size:.7rem;font-weight:600;color:#fff;margin:0 0 .35rem;text-transform:uppercase;letter-spacing:.5px}.setting-toggle{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;border-bottom:1px solid rgba(0,0,0,.03)}.setting-toggle:last-child{border-bottom:none}.setting-info{display:flex;flex-direction:column;gap:.15rem;flex:1;padding-right:1rem}.setting-label{font-family:var(--font-sans);font-size:.85rem;font-weight:500;color:var(--color-text-primary)}.setting-description{font-size:.7rem;color:var(--color-text-tertiary);line-height:1.3}.toggle-switch{position:relative;width:44px;height:24px;background:#00000026;border:none;border-radius:12px;cursor:pointer;transition:background .3s ease;flex-shrink:0}.toggle-switch.active{background:var(--color-accent-warm)}.toggle-knob{position:absolute;top:2px;left:2px;width:20px;height:20px;background:#fff;border-radius:50%;transition:transform .3s cubic-bezier(.34,1.56,.64,1);box-shadow:0 2px 4px #0000001a}.toggle-switch.active .toggle-knob{transform:translate(20px)}body.dark-mode .notification-settings-modal{background:#1e1e23f2;border:1px solid rgba(255,255,255,.1)}body.dark-mode .settings-header{border-bottom-color:#ffffff1a}body.dark-mode .setting-toggle{border-bottom-color:#ffffff0d}body.dark-mode .toggle-switch{background:#fff3}body.dark-mode .settings-header .close-btn:hover{background:#ffffff1a}.reminder-time-settings{margin-top:.75rem;padding:.75rem;background:#00000008;border-radius:10px;display:flex;flex-direction:column;gap:.5rem}.time-setting-row{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.time-setting-row label{font-family:var(--font-sans);font-size:.75rem;color:var(--color-text-secondary)}.time-select{flex:1;max-width:160px;padding:.4rem .6rem;border:1px solid rgba(0,0,0,.1);border-radius:6px;background:#fff;font-family:var(--font-sans);font-size:.75rem;color:var(--color-text-primary);cursor:pointer;outline:none}.time-select:focus{border-color:var(--color-accent-warm)}body.dark-mode .reminder-time-settings{background:#ffffff0d}body.dark-mode .time-select{background:#ffffff1a;border-color:#ffffff1a;color:var(--color-text-primary)}.notification-bell-container,.notification-bell{position:relative}.notification-bell.has-unread{animation:bell-pulse 2s ease-in-out infinite}@keyframes bell-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.notification-badge{position:absolute;top:-4px;right:-4px;background:linear-gradient(135deg,#ff6b6b,#ee5a5a);color:#fff;font-size:.65rem;font-weight:700;min-width:16px;height:16px;border-radius:50%;display:flex;align-items:center;justify-content:center;padding:0 4px;border:2px solid var(--color-bg-base);box-shadow:0 2px 8px #ff6b6b66}.notification-dropdown{position:absolute;top:calc(100% + 8px);right:0;width:320px;max-height:400px;border-radius:16px;overflow:hidden;z-index:1000;box-shadow:0 8px 32px #00000026;display:flex;flex-direction:column}.notification-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;border-bottom:1px solid rgba(0,0,0,.05)}.notification-header h3{font-family:var(--font-serif);font-size:1rem;font-weight:600;color:var(--color-text-primary);margin:0}.notification-header-actions{display:flex;gap:.5rem}.notification-header-actions button{background:#0000000d;border:none;border-radius:8px;padding:.5rem;cursor:pointer;color:var(--color-text-secondary);transition:all .2s ease;display:flex;align-items:center;justify-content:center}.notification-header-actions button:hover{background:#0000001a;color:var(--color-text-primary)}.notification-list{overflow-y:auto;flex:1;max-height:320px}.notification-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1rem;text-align:center}.notification-empty-icon{font-size:2.5rem;margin-bottom:.75rem;opacity:.5}.notification-empty p{font-family:var(--font-sans);font-weight:500;color:var(--color-text-primary);margin:0 0 .25rem}.notification-empty-hint{font-size:.85rem;color:var(--color-text-tertiary)}.notification-item{display:flex;align-items:flex-start;gap:.75rem;padding:.875rem 1.25rem;cursor:pointer;transition:background .2s ease;position:relative}.notification-item:hover{background:#00000008}.notification-item.unread{background:#ffcdb226}.notification-item.unread:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--color-accent-warm)}.notification-icon{font-size:1.25rem;flex-shrink:0;margin-top:2px}.notification-content{flex:1;min-width:0}.notification-title{font-family:var(--font-sans);font-size:.9rem;font-weight:500;color:var(--color-text-primary);margin:0 0 .25rem;line-height:1.3}.notification-body{font-size:.8rem;color:var(--color-text-secondary);margin:0 0 .25rem;line-height:1.4}.notification-time{font-size:.75rem;color:var(--color-text-tertiary)}.notification-delete{background:none;border:none;padding:.25rem;cursor:pointer;color:var(--color-text-tertiary);opacity:0;transition:all .2s ease;border-radius:4px}.notification-item:hover .notification-delete{opacity:1}.notification-delete:hover{color:#ff6b6b;background:#ff6b6b1a}body.dark-mode .notification-dropdown{background:#1e1e23f2;border:1px solid rgba(255,255,255,.1)}body.dark-mode .notification-header{border-bottom-color:#ffffff1a}body.dark-mode .notification-item:hover{background:#ffffff0d}body.dark-mode .notification-item.unread{background:#ffcdb21a}body.dark-mode .notification-header-actions button{background:#ffffff1a}body.dark-mode .notification-header-actions button:hover{background:#ffffff26}.progress-stats{display:flex;justify-content:center;gap:1.5rem;margin-bottom:1.5rem;padding:.5rem 0}.stat-card{display:flex;flex-direction:column;align-items:center;padding:1rem 1.5rem;background:#fff6;border-radius:16px;border:1px solid rgba(255,255,255,.5);min-width:100px}.stat-card.highlight{background:#e6b88a33;border-color:#e6b88a66}.stat-value{font-family:var(--font-serif);font-size:1.75rem;font-weight:500;color:var(--color-text-primary);line-height:1}.stat-label{font-family:var(--font-sans);font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-secondary);margin-top:.4rem}body.dark-mode .stat-card{background:#ffffff1a;border-color:#ffffff26}body.dark-mode .stat-card.highlight{background:#e6b88a26;border-color:#e6b88a4d}@media(max-width:640px){.progress-stats{gap:.75rem}.stat-card{padding:.75rem 1rem;min-width:80px}.stat-value{font-size:1.4rem}}.studio-container{max-width:1200px;margin:0 auto;padding:1rem 2rem;min-height:100vh;display:flex;flex-direction:column;position:relative}.header-actions{position:absolute;top:2rem;right:2rem;display:flex;gap:1rem;z-index:100}.icon-btn{width:44px;height:44px;border-radius:50%;background:#fff6;border:1px solid rgba(255,255,255,.5);display:flex;align-items:center;justify-content:center;color:var(--color-text-primary);cursor:pointer;transition:all .3s ease}.icon-btn:hover{background:#fffc;transform:rotate(15deg)}body.dark-mode .icon-btn{background:#ffffff1a;border-color:#fff3}body.dark-mode .theme-toggle{color:gold}body.dark-mode .logout-btn{color:var(--color-text-primary)}body.dark-mode .icon-btn:hover{background:#fff3}.studio-header{margin-bottom:4rem;text-align:left}.brand-header{display:flex;flex-direction:column;align-items:center;gap:2rem;margin-bottom:2rem;position:relative;z-index:10;text-align:center}.app-header{text-align:center;margin-bottom:2rem;padding-top:1rem}.app-title{font-family:Cormorant Garamond,serif;font-size:5.5rem;color:var(--color-text-primary);font-weight:600;font-style:italic;line-height:1;margin-bottom:.2rem;letter-spacing:-.03em;display:flex;align-items:center;justify-content:center;gap:0}.title-emoji{font-style:normal;font-family:"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol;font-size:.5em;margin-top:.1em;margin-left:.1rem;filter:sepia(.3) hue-rotate(10deg)}.app-subtitle{font-family:var(--font-serif);font-size:1.25rem;color:var(--color-text-secondary);font-style:italic;font-weight:400;letter-spacing:.05em;opacity:.8;margin-top:-.5rem}.studio-logo{width:360px;height:auto;object-fit:contain;filter:drop-shadow(0 15px 40px rgba(255,183,178,.2));transition:transform .8s cubic-bezier(.22,1,.36,1);margin-bottom:-1.5rem}.studio-logo:hover{transform:scale(1.02)}.greeting{font-family:var(--font-italic);font-style:italic;color:var(--color-text-secondary);font-size:1.25rem;letter-spacing:.05em;opacity:.8}.studio-title{font-size:1.5rem;color:var(--color-text-secondary);letter-spacing:.2em;text-transform:uppercase;font-family:var(--font-sans);opacity:.6;margin-top:-1rem}.habitat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:2rem;flex:1}.add-habitat-btn{border:2px dashed var(--color-accent-cold);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;color:var(--color-text-secondary);cursor:pointer;min-height:240px;background:#ffffff4d;font-family:var(--font-sans);font-size:1rem;letter-spacing:.05em;border-radius:28px}.add-habitat-btn:hover{background:var(--color-bg-surface);border-style:solid;color:var(--color-text-primary);transform:translateY(-4px);box-shadow:var(--shadow-soft)}.kin-grid{display:flex;gap:2rem;padding:1rem 1rem 2rem;overflow-x:auto}.kin-item{display:flex;flex-direction:column;align-items:center;gap:.75rem;cursor:pointer;transition:transform .3s cubic-bezier(.34,1.56,.64,1)}.kin-item:hover{transform:translateY(-5px) scale(1.05)}.kin-avatar-large{width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-family:var(--font-serif);color:var(--color-text-primary);background:#ffffff80;border:1px solid rgba(255,255,255,.8);box-shadow:0 4px 12px #0000000d;position:relative}.kin-status-indicator{position:absolute;bottom:0;right:0;width:14px;height:14px;border-radius:50%;border:2px solid white}.kin-name{font-family:var(--font-sans);font-weight:500;color:var(--color-text-secondary);font-size:.9rem}.plus{font-size:2rem;font-weight:300}.view-toggle{display:flex;gap:.25rem;background:#ffffff4d;padding:3px;border-radius:8px}.toggle-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:transparent;border-radius:6px;color:var(--color-text-secondary);cursor:pointer;transition:all .2s ease}.toggle-btn:hover{color:var(--color-text-primary)}.toggle-btn.active{background:#fff;color:var(--color-text-primary);box-shadow:0 1px 3px #0000001a}body.dark-mode .toggle-btn.active{background:#fff3}.calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.habit-groups{display:flex;flex-direction:column;gap:2rem}.habit-group{padding:1rem 0}.group-title{font-family:var(--font-serif);font-size:1.1rem;color:var(--color-text-secondary);margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid rgba(0,0,0,.08);font-weight:500}.dragging{opacity:.5;transform:scale(.98)}.habitat-grid>div{cursor:grab;transition:transform .2s ease,opacity .2s ease}.habitat-grid>div:active{cursor:grabbing}@media(max-width:768px){.studio-title{font-size:2.5rem}.calendar-header{flex-direction:column;gap:.75rem;align-items:flex-start}}.onboarding-container{position:fixed;inset:0;background:linear-gradient(135deg,#f8f4ef,#e8ddd0,#d4c4b0);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;z-index:1000;overflow:auto}.dark-mode .onboarding-container{background:linear-gradient(135deg,#1a1814,#2d2820,#3d352a)}.onboarding-screen{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:2rem;background-size:cover;background-position:center;overflow:auto}.welcome-screen{justify-content:center;min-height:60vh}.welcome-content{display:flex;flex-direction:column;align-items:center;gap:.25rem}.welcome-to{font-family:var(--font-serif);font-size:1.75rem;color:#fff;margin:0;text-shadow:0 2px 8px rgba(0,0,0,.4)}.welcome-title{font-family:Cormorant Garamond,serif;font-size:5.5rem;color:#fff;font-weight:600;font-style:italic;line-height:1;margin:0;letter-spacing:-.03em;display:flex;align-items:center;justify-content:center;text-shadow:0 2px 10px rgba(0,0,0,.4)}.title-emoji{font-style:normal;font-family:"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol;font-size:.5em;margin-top:.1em;margin-left:.1rem}.welcome-tagline{font-family:var(--font-serif);font-size:1.25rem;color:#fff;font-style:italic;font-weight:400;letter-spacing:.05em;margin:.5rem 0 1rem;text-shadow:0 1px 4px rgba(0,0,0,.4)}.welcome-description{font-family:var(--font-sans);font-size:1.1rem;color:#ffffffe6;max-width:400px;line-height:1.6;margin:1rem 0 2rem;text-shadow:0 1px 4px rgba(0,0,0,.4)}.onboarding-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.875rem 1.75rem;border-radius:100px;font-family:var(--font-sans);font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;border:none}.onboarding-btn.primary{background:#e6b88a99;color:#5a4a3a;box-shadow:0 4px 15px #00000026}.onboarding-btn.primary:hover{transform:translateY(-2px);background:#e6b88acc;box-shadow:0 6px 20px #0003}.onboarding-btn.primary:disabled{opacity:.5;cursor:not-allowed;transform:none}.onboarding-btn.primary.large{padding:1.125rem 2.5rem;font-size:1.125rem}.onboarding-btn.secondary{background:#0000004d;color:#ffffffe6;border:1px solid rgba(255,255,255,.3)}.onboarding-btn.secondary:hover{background:#ffffff26;color:#fff}.screen-title{font-family:var(--font-display);font-size:2rem;color:#fff;margin:0 0 .5rem;text-shadow:0 2px 8px rgba(0,0,0,.5)}.screen-subtitle{font-family:var(--font-sans);font-size:1rem;color:#ffffffd9;margin:0 0 2rem;text-shadow:0 1px 4px rgba(0,0,0,.5)}.habit-grid{display:flex;flex-direction:column;gap:.75rem;width:100%;max-width:900px;margin-bottom:1.5rem;background:#00000040;padding:1.5rem;border-radius:16px;border:1px solid rgba(255,255,255,.15)}.habit-row{display:flex;align-items:center;gap:1rem}.habit-row-label{width:130px;flex-shrink:0;font-family:var(--font-serif);font-size:.95rem;color:#fff;text-align:right;text-shadow:0 1px 4px rgba(0,0,0,.4)}.habit-row-cards{display:flex;flex:1;gap:.5rem}.habit-card{flex:1;padding:.75rem .5rem;background:#fff3;border:1px solid rgba(255,255,255,.3);border-radius:12px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:.4rem;text-align:center}.habit-card:hover{background:#ffffff59;transform:translateY(-2px)}.habit-card.selected{background:#e6b88a99;border-color:#e6b88acc}.habit-card-name{font-family:var(--font-sans);font-size:.8rem;color:#fff;font-weight:500;text-shadow:0 1px 3px rgba(0,0,0,.3)}.habit-card.selected .habit-card-name{color:#5a4a3a;text-shadow:none}.habit-card-check{color:#5a4a3a;flex-shrink:0}.habit-grid-blurb{font-family:var(--font-sans);font-size:.85rem;color:#ffffffbf;text-align:center;max-width:500px;margin:.5rem 0 1.5rem;font-style:italic;text-shadow:0 1px 3px rgba(0,0,0,.3)}.onboarding-nav{display:flex;gap:1rem;margin-top:auto;padding-top:1rem;padding-bottom:3rem}.invite-screen{justify-content:center}.invite-content{display:flex;flex-direction:column;align-items:center;text-align:center;max-width:500px}.invite-sections{display:flex;flex-direction:column;gap:1.5rem;width:100%;margin-top:1rem}.invite-section{background:#00000040;padding:1.25rem;border-radius:16px;border:1px solid rgba(255,255,255,.15)}.invite-section-label{font-family:var(--font-serif);font-size:.95rem;color:#ffffffe6;margin:0 0 .75rem;text-align:left;text-shadow:0 1px 3px rgba(0,0,0,.3)}.invite-input-row{display:flex;gap:.5rem}.invite-input{flex:1;padding:.75rem 1rem;border:1px solid rgba(255,255,255,.3);border-radius:12px;background:#ffffff26;color:#fff;font-family:var(--font-sans);font-size:.9rem}.invite-input::placeholder{color:#ffffff80}.invite-input:focus{outline:none;border-color:#e6b88acc}.invite-send-btn{width:46px;height:46px;border-radius:12px;background:#e6b88a99;color:#5a4a3a;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.invite-send-btn:hover:not(:disabled){background:#e6b88acc;transform:scale(1.05)}.invite-send-btn:disabled{opacity:.5;cursor:not-allowed}.invite-success{color:#a5d6a7;font-family:var(--font-sans);font-size:.85rem;margin:.75rem 0 0;text-align:left;text-shadow:0 1px 2px rgba(0,0,0,.3)}.complete-screen{justify-content:center;min-height:60vh}.complete-content{display:flex;flex-direction:column;align-items:center;gap:1rem}.complete-title{font-family:var(--font-display);font-size:2.5rem;color:#fff;margin:0;text-shadow:0 2px 8px rgba(0,0,0,.5)}.complete-subtitle{font-family:var(--font-sans);font-size:1.1rem;color:#ffffffd9;margin:0 0 1rem;text-shadow:0 1px 4px rgba(0,0,0,.5)}.selected-habits-preview{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin-bottom:2rem}.habit-preview-chip{padding:.5rem 1rem;background:#0006;border:1px solid rgba(255,255,255,.3);border-radius:100px;font-family:var(--font-sans);font-size:.875rem;color:#fff}.progress-dots{display:flex;gap:.5rem;position:fixed;bottom:2rem}.dot{width:10px;height:10px;border-radius:50%;background:#fff6;transition:all .3s ease}.dot.active{background:var(--color-accent-warm);transform:scale(1.2)}.dot.completed{background:var(--color-accent-warm);opacity:.5}@media(max-width:600px){.welcome-title{font-size:2.5rem}.atmosphere-grid{grid-template-columns:repeat(2,1fr)}.atmosphere-card{aspect-ratio:1}}.app-root{min-height:100vh;width:100%;position:relative}.fade-enter{opacity:0}.fade-enter-active{opacity:1;transition:opacity 1s ease-in}.auth-container{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;position:relative;overflow:hidden}.auth-card{width:100%;max-width:420px;padding:2rem;display:flex;flex-direction:column;align-items:center;gap:1.5rem}.auth-header{text-align:center;margin-bottom:0;width:100%}.auth-title{font-family:Cormorant Garamond,serif;font-size:3rem;color:var(--color-text-primary);font-weight:600;font-style:italic;line-height:1;letter-spacing:-.03em;display:flex;align-items:center;justify-content:center;gap:0;margin-bottom:.5rem}.auth-title .title-emoji{font-style:normal;font-family:"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol;font-size:.5em;margin-top:.1em;margin-left:.1rem;filter:sepia(.3) hue-rotate(10deg)}.auth-subtitle{font-family:var(--font-serif);font-size:1.1rem;color:var(--color-text-secondary);font-style:italic;opacity:.8;margin-top:-.5rem}.auth-description{font-family:var(--font-sans);font-size:.85rem;color:var(--color-text-secondary);line-height:1.5;margin-top:1rem;max-width:90%;margin-left:auto;margin-right:auto;opacity:.9;font-weight:400}.auth-form{display:flex;flex-direction:column;gap:1rem;width:100%}.input-group-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;width:100%;box-sizing:border-box}.input-group{display:flex;flex-direction:column;gap:.35rem}.input-label{font-family:var(--font-sans);font-size:.85rem;font-weight:500;color:var(--color-text-secondary);margin-left:.5rem}.auth-input{background:#fff6;border:1px solid rgba(163,143,133,.4);padding:.8rem 1rem;border-radius:16px;font-family:var(--font-sans);font-size:1rem;color:var(--color-text-primary);transition:all .3s ease;outline:none;width:100%;box-sizing:border-box;min-width:0}.auth-input:focus{background:#fffc;border-color:var(--color-accent-warm);box-shadow:0 0 0 3px var(--color-accent-warm-glow)}.auth-select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23666' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;padding-right:2.5rem}.auth-actions{display:flex;flex-direction:column;gap:1rem;margin-top:1rem}.primary-btn{background:var(--color-text-primary);color:var(--color-bg-base);border:none;padding:1rem;border-radius:16px;font-family:var(--font-sans);font-weight:600;font-size:1rem;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center}.primary-btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-soft)}.primary-btn:disabled{opacity:.7;cursor:not-allowed;transform:none}.secondary-btn{background:transparent;border:1px solid var(--color-text-secondary);color:var(--color-text-primary);padding:1rem;border-radius:16px;font-family:var(--font-sans);font-weight:500;font-size:1rem;cursor:pointer;transition:all .3s ease}.secondary-btn:hover{background:#ffffff4d}.error-message{color:#e57373;font-size:.9rem;text-align:center;background:#e573731a;padding:.75rem;border-radius:12px}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100vh;background:#0003;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:2000;display:flex;align-items:center;justify-content:center}.signup-modal{width:90%;max-width:400px;background:var(--color-bg-surface);border-radius:32px;padding:2.5rem;box-shadow:0 20px 60px #00000026;border:1px solid var(--glass-border);position:relative}.close-btn{position:absolute;top:1.5rem;right:1.5rem;background:transparent;border:none;cursor:pointer;color:var(--color-text-secondary);padding:.5rem;border-radius:50%;transition:background .2s;display:flex;align-items:center;justify-content:center}.close-btn:hover{background:#0000000d}
