:root{--bg-gradient: linear-gradient(135deg, #0a0a1a 0%, #1a1035 30%, #0d1f3c 60%, #0a0a1a 100%);--text-primary: #e8e4f0;--text-muted: rgba(232, 228, 240, .5);--text-faint: rgba(232, 228, 240, .4);--purple-glow: rgba(138, 100, 200, .3);--purple-border: rgba(138, 100, 200, .25);--purple-bg: rgba(138, 100, 200, .15);--blue-accent: rgba(100, 140, 200, .15);--card-bg: rgba(255, 255, 255, .03);--card-border: rgba(255, 255, 255, .06);--input-border: rgba(255, 255, 255, .08);--font-display: "Cormorant Garamond", Georgia, serif;--font-ui: "Quicksand", sans-serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%}body{font-family:var(--font-display);color:var(--text-primary);background:var(--bg-gradient);min-height:100vh;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.app{min-height:100vh;position:relative;overflow-x:hidden}.app-content{position:relative;z-index:10}.loading-screen{display:flex;align-items:center;justify-content:center;min-height:100vh;font-style:italic;color:var(--text-muted)}.header{padding:20px 20px 15px;border-bottom:1px solid var(--card-border)}@media (min-width: 768px){.header{padding:30px 40px 20px}}@media (min-width: 1024px){.header{padding:40px 60px 30px}}.header-title{font-size:2rem;font-weight:300;letter-spacing:.15em;margin:0;background:linear-gradient(135deg,#e8e4f0,#a89bc4,#7b8cba);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-transform:lowercase}@media (min-width: 768px){.header-title{font-size:2.4rem}}@media (min-width: 1024px){.header-title{font-size:2.8rem}}.nav{display:flex;gap:20px;margin-top:20px}@media (min-width: 768px){.nav{gap:30px;margin-top:30px}}.nav-button{background:none;border:none;color:var(--text-faint);font-family:var(--font-ui);font-size:.9rem;letter-spacing:.2em;cursor:pointer;padding:8px 0;border-bottom:1px solid transparent;transition:all .3s ease;min-height:44px;display:flex;align-items:center}.nav-button:hover{color:var(--text-muted)}.nav-button.active{color:var(--text-primary);border-bottom-color:#8a64c899}.main{padding:20px;max-width:900px}@media (min-width: 768px){.main{padding:30px 40px}}@media (min-width: 1024px){.main{padding:40px 60px}}.card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:12px;padding:20px;margin-bottom:15px;cursor:pointer;transition:all .3s ease}@media (min-width: 768px){.card{padding:30px;margin-bottom:20px}}.card:hover{background:#8a64c80d}.card.expanded{background:#8a64c814;border-color:#8a64c833}.form-group{margin-bottom:25px}@media (min-width: 768px){.form-group{margin-bottom:30px}}.form-label{display:block;font-family:var(--font-ui);font-size:.75rem;letter-spacing:.2em;color:var(--text-muted);margin-bottom:10px;text-transform:uppercase}.form-input{width:100%;background:var(--card-bg);border:1px solid var(--input-border);border-radius:8px;padding:15px 20px;font-size:1rem;font-family:var(--font-display);color:var(--text-primary);transition:border-color .3s ease;min-height:44px}.form-input::placeholder{color:var(--text-faint)}.form-input:focus{outline:none;border-color:#8a64c899}.form-input.title-input{font-size:1.1rem;font-style:italic}@media (min-width: 768px){.form-input.title-input{font-size:1.2rem}}.form-textarea{width:100%;background:var(--card-bg);border:1px solid var(--input-border);border-radius:8px;padding:20px;font-size:1rem;font-family:var(--font-display);color:var(--text-primary);line-height:1.8;resize:vertical;transition:border-color .3s ease;min-height:200px}.form-textarea::placeholder{color:var(--text-faint)}.form-textarea:focus{outline:none;border-color:#8a64c899}.btn{font-family:var(--font-ui);font-size:.85rem;letter-spacing:.1em;cursor:pointer;transition:all .3s ease;border:none;min-height:44px;padding:12px 24px}.btn-primary{background:linear-gradient(135deg,#8a64c84d,#648cc84d);border:1px solid rgba(138,100,200,.3);border-radius:8px;color:var(--text-primary);padding:15px 40px;font-size:.9rem;letter-spacing:.15em}.btn-primary:disabled{background:#ffffff0d;color:#e8e4f04d;cursor:not-allowed;animation:none}.btn-primary:not(:disabled){animation:glow 2s ease-in-out infinite}.btn-primary:not(:disabled):hover{background:linear-gradient(135deg,#8a64c866,#648cc866)}.btn-secondary{background:#8a64c833;border:1px solid rgba(138,100,200,.3);border-radius:8px;color:var(--text-primary)}.btn-secondary:hover{background:#8a64c84d}.tag{display:inline-flex;align-items:center;padding:4px 12px;border-radius:20px;font-size:.8rem;font-family:var(--font-ui);letter-spacing:.05em;min-height:32px}.tag-purple{background:var(--purple-bg);border:1px solid var(--purple-border);color:#c8b4e6e6}.tag-blue{background:var(--blue-accent);border:1px solid rgba(100,140,200,.25);color:#a0bee6e6}.tag-removable{cursor:pointer;transition:all .3s ease}.tag-removable:hover{background:#8a64c84d}.tag-chip{background:var(--card-bg);border:1px solid var(--input-border);padding:4px 10px;border-radius:15px;font-size:.75rem;color:var(--text-muted);cursor:pointer;transition:all .3s ease;min-height:32px;display:inline-flex;align-items:center}.tag-chip:hover{background:#8a64c81a;border-color:var(--purple-border)}.mood-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}@media (min-width: 480px){.mood-grid{grid-template-columns:repeat(4,1fr)}}@media (min-width: 768px){.mood-grid{display:flex;flex-wrap:wrap;gap:8px}}.mood-button{background:var(--card-bg);border:1px solid var(--input-border);padding:10px 16px;border-radius:20px;font-size:.8rem;font-family:var(--font-ui);color:var(--text-muted);cursor:pointer;transition:all .3s ease;min-height:44px}.mood-button:hover{background:#648cc81a}.mood-button.selected{background:#648cc840;border-color:#648cc866;color:#b4c8f0f2}.lucidity-scale{display:flex;gap:10px}.lucidity-button{width:44px;height:44px;background:var(--card-bg);border:1px solid var(--input-border);border-radius:50%;color:var(--text-faint);font-family:var(--font-ui);font-size:.9rem;cursor:pointer;transition:all .3s ease}.lucidity-button.filled{background:#8a64c84d;border-color:#8a64c880;color:var(--text-primary);box-shadow:0 0 15px var(--purple-glow)}.symbol-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}@media (min-width: 480px){.symbol-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:15px}}.symbol-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:10px;padding:15px;transition:all .3s ease}@media (min-width: 768px){.symbol-card{padding:20px}}.symbol-card:hover{background:#8a64c80d}.symbol-name{font-size:1rem;font-weight:400;margin:0 0 6px;color:var(--text-primary)}@media (min-width: 768px){.symbol-name{font-size:1.1rem;margin:0 0 8px}}.symbol-count{font-family:var(--font-ui);font-size:.75rem;color:var(--text-faint);margin:0}.symbol-count.has-dreams{color:#8a64c8cc}.auth-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.auth-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:12px;padding:30px;width:100%;max-width:400px;animation:glow 3s ease-in-out infinite}@media (min-width: 768px){.auth-card{padding:40px}}.auth-title{font-size:1.8rem;font-weight:300;letter-spacing:.1em;margin-bottom:8px;background:linear-gradient(135deg,#e8e4f0,#a89bc4,#7b8cba);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-transform:lowercase}.auth-subtitle{font-family:var(--font-ui);font-size:.85rem;color:var(--text-muted);margin-bottom:30px}.auth-error{background:#c8646426;border:1px solid rgba(200,100,100,.3);border-radius:8px;padding:12px 16px;margin-bottom:20px;font-family:var(--font-ui);font-size:.85rem;color:#ffb4b4e6}.auth-link{display:block;text-align:center;margin-top:20px;font-family:var(--font-ui);font-size:.85rem;color:var(--text-muted)}.auth-link a{color:#b4a0dce6;text-decoration:none}.auth-link a:hover{text-decoration:underline}.empty-state{color:var(--text-faint);font-style:italic;text-align:center;margin-top:60px}@media (min-width: 768px){.empty-state{margin-top:80px}}.dream-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:15px;gap:15px}.dream-title{font-size:1.2rem;font-weight:400;font-style:italic;margin:0;color:var(--text-primary)}@media (min-width: 768px){.dream-title{font-size:1.4rem}}.dream-header-right{display:flex;align-items:center;gap:12px}.dream-date{font-family:var(--font-ui);font-size:.75rem;color:var(--text-faint);letter-spacing:.1em;white-space:nowrap}.edit-btn{background:transparent;border:1px solid var(--purple-border);padding:4px 12px;border-radius:12px;font-family:var(--font-ui);font-size:.7rem;color:var(--text-muted);cursor:pointer;transition:all .3s ease;letter-spacing:.1em}.edit-btn:hover{background:var(--purple-bg);color:var(--text-primary)}.page-title{font-family:var(--font-ui);font-size:.85rem;font-weight:400;letter-spacing:.15em;color:var(--text-muted);text-transform:lowercase;margin:0 0 25px}.dream-content{font-size:1rem;line-height:1.8;color:#e8e4f0b3;margin:0 0 20px}.dream-content.truncated{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.dream-tags{display:flex;flex-wrap:wrap;gap:8px}@keyframes twinkle{0%,to{opacity:.3;transform:scale(1)}50%{opacity:.8;transform:scale(1.2)}}@keyframes float{0%,to{transform:translateY(0) translate(0)}33%{transform:translateY(-20px) translate(10px)}66%{transform:translateY(10px) translate(-10px)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes glow{0%,to{box-shadow:0 0 20px var(--purple-glow)}50%{box-shadow:0 0 30px #8a64c880}}.fade-in{animation:fadeIn .6s ease both}.fade-in-1{animation-delay:.1s}.fade-in-2{animation-delay:.2s}.fade-in-3{animation-delay:.3s}.fade-in-4{animation-delay:.4s}.fade-in-5{animation-delay:.5s}::selection{background:#8a64c866}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:#ffffff0d}::-webkit-scrollbar-thumb{background:var(--purple-glow);border-radius:3px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.symbol-input-row{display:flex;gap:10px;margin-bottom:15px}.symbol-input-row .form-input{flex:1}.tags-container{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:15px}.tags-container:empty{display:none}.quick-add-label{font-family:var(--font-ui);font-size:.7rem;color:var(--text-faint);margin-bottom:8px;letter-spacing:.1em}.quick-add-tags{display:flex;flex-wrap:wrap;gap:6px}.form-section{margin-bottom:30px;padding-bottom:30px;border-bottom:1px solid var(--card-border)}.section-title{font-family:var(--font-ui);font-size:.75rem;font-weight:400;letter-spacing:.2em;color:var(--text-muted);text-transform:uppercase;margin:0 0 20px}.collapsible-section{margin-bottom:30px;border:1px solid var(--card-border);border-radius:12px;overflow:hidden}.collapsible-header{display:flex;justify-content:space-between;align-items:center;width:100%;padding:16px 20px;background:var(--card-bg);border:none;cursor:pointer;transition:all .3s ease}.collapsible-header:hover{background:#8a64c80d}.collapsible-title{font-family:var(--font-ui);font-size:.8rem;font-weight:400;letter-spacing:.15em;color:var(--text-muted);text-transform:uppercase}.collapsible-arrow{font-size:1.2rem;color:var(--text-muted);transition:transform .3s ease}.collapsible-arrow.open{transform:rotate(90deg)}.collapsible-content{max-height:0;overflow:hidden;transition:max-height .3s ease;padding:0 20px}.collapsible-content.open{max-height:2000px;padding:20px}.scale-input{display:flex;gap:8px}.scale-button{width:40px;height:40px;background:var(--card-bg);border:1px solid var(--input-border);border-radius:50%;color:var(--text-faint);font-family:var(--font-ui);font-size:.85rem;cursor:pointer;transition:all .3s ease}.scale-button.filled{background:#8a64c84d;border-color:#8a64c880;color:var(--text-primary);box-shadow:0 0 12px var(--purple-glow)}.scales-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:20px;margin-bottom:25px}.toggle-group{display:flex;flex-wrap:wrap;gap:8px}.toggle-button{background:var(--card-bg);border:1px solid var(--input-border);padding:10px 16px;border-radius:20px;font-size:.8rem;font-family:var(--font-ui);color:var(--text-muted);cursor:pointer;transition:all .3s ease;min-height:40px}.toggle-button:hover{background:#8a64c81a}.toggle-button.selected{background:#8a64c840;border-color:#8a64c866;color:var(--text-primary)}.multi-select-pills{display:flex;flex-wrap:wrap;gap:8px}.pill-button{background:transparent;border:1px solid var(--input-border);padding:8px 14px;border-radius:20px;font-size:.8rem;font-family:var(--font-ui);color:var(--text-muted);cursor:pointer;transition:all .3s ease;min-height:36px}.pill-button:hover{border-color:var(--purple-border)}.pill-button.selected{background:var(--purple-bg);border-color:var(--purple-border);color:#c8b4e6e6}.checkbox-wrapper{display:flex;align-items:center;gap:12px;cursor:pointer;font-family:var(--font-ui);font-size:.85rem;color:var(--text-muted)}.checkbox-input{display:none}.checkbox-custom{width:20px;height:20px;background:var(--card-bg);border:1px solid var(--input-border);border-radius:4px;transition:all .3s ease;position:relative}.checkbox-input:checked+.checkbox-custom{background:#8a64c84d;border-color:#8a64c880}.checkbox-input:checked+.checkbox-custom:after{content:"";position:absolute;left:6px;top:2px;width:5px;height:10px;border:solid var(--text-primary);border-width:0 2px 2px 0;transform:rotate(45deg)}.checkbox-label{-webkit-user-select:none;user-select:none}.character-tag{display:inline-flex;align-items:center;gap:6px;background:var(--purple-bg);border:1px solid var(--purple-border);padding:6px 10px;border-radius:20px;font-size:.8rem;font-family:var(--font-ui);color:#c8b4e6e6}.character-name{max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.character-type-toggle{background:#ffffff1a;border:none;padding:2px 6px;border-radius:8px;font-size:.65rem;font-family:var(--font-ui);color:var(--text-muted);cursor:pointer;transition:all .2s ease}.character-type-toggle.real{background:#64b46433;color:#96dc96e6}.character-type-toggle.invented{background:#b464b433;color:#dc96dce6}.character-remove{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:0 2px;font-size:1rem;line-height:1}.character-remove:hover{color:var(--text-primary)}.dream-metadata{margin-top:20px;padding-top:20px;border-top:1px solid var(--card-border)}.metadata-row{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:12px}.metadata-item{font-family:var(--font-ui);font-size:.75rem;color:var(--text-muted);background:var(--card-bg);padding:4px 10px;border-radius:12px}.metadata-item.recurring{background:#8a64c826;color:#b4a0dce6}.metadata-section{margin-bottom:15px}.metadata-label{display:block;font-family:var(--font-ui);font-size:.7rem;color:var(--text-faint);letter-spacing:.1em;margin-bottom:8px}.metadata-tags{display:flex;flex-wrap:wrap;gap:6px}.interpretation-text{font-size:.9rem;line-height:1.7;color:#e8e4f099;font-style:italic;margin:0}.save-button{margin-top:30px}.patterns-page{padding-bottom:60px}.patterns-subtitle{font-family:var(--font-ui);font-size:.85rem;color:var(--text-muted);margin-bottom:40px;font-style:italic}.pattern-section{margin-bottom:40px}.pattern-title{font-family:var(--font-ui);font-size:.75rem;font-weight:400;letter-spacing:.15em;color:var(--text-muted);text-transform:lowercase;margin:0 0 20px}.bar-chart{display:flex;flex-direction:column;gap:12px}.bar-row{display:flex;align-items:center;gap:12px}.bar-label{font-family:var(--font-ui);font-size:.8rem;color:var(--text-muted);width:80px;flex-shrink:0;text-align:right}.bar-track{flex:1;height:24px;background:var(--card-bg);border-radius:12px;overflow:hidden}.bar-fill{height:100%;background:linear-gradient(90deg,#8a64c866,#648cc866);border-radius:12px;transition:width .5s ease}.bar-value{font-family:var(--font-ui);font-size:.75rem;color:var(--text-faint);width:30px;text-align:left}.moon-chart{display:flex;justify-content:space-between;align-items:flex-end;height:150px;padding:0 10px}.moon-item{display:flex;flex-direction:column;align-items:center;gap:8px;flex:1}.moon-icon{font-size:1.2rem}.moon-bar-track{width:20px;height:80px;background:var(--card-bg);border-radius:10px;overflow:hidden;display:flex;align-items:flex-end}.moon-bar-fill{width:100%;background:linear-gradient(180deg,#8a64c880,#648cc84d);border-radius:10px;transition:height .5s ease}.moon-count{font-family:var(--font-ui);font-size:.7rem;color:var(--text-faint)}.day-chart{display:flex;justify-content:space-between;align-items:flex-end;height:150px}.day-item{display:flex;flex-direction:column;align-items:center;gap:8px;flex:1}.day-bar-track{width:30px;height:80px;background:var(--card-bg);border-radius:8px;overflow:hidden;display:flex;align-items:flex-end}.day-bar-fill{width:100%;background:linear-gradient(180deg,#8a64c880,#648cc84d);border-radius:8px;transition:height .5s ease}.day-label{font-family:var(--font-ui);font-size:.7rem;color:var(--text-muted);text-transform:uppercase}.day-count{font-family:var(--font-ui);font-size:.7rem;color:var(--text-faint)}.type-pills{display:flex;gap:15px;flex-wrap:wrap}.type-pill{display:flex;flex-direction:column;align-items:center;gap:6px;padding:15px 25px;background:var(--card-bg);border-radius:12px;min-width:100px}.type-pill.nightmare{border:1px solid rgba(200,100,100,.3)}.type-pill.neutral{border:1px solid var(--card-border)}.type-pill.pleasant{border:1px solid rgba(100,180,100,.3)}.type-label{font-family:var(--font-ui);font-size:.75rem;color:var(--text-muted)}.type-count{font-size:1.5rem;font-weight:300;color:var(--text-primary)}.mood-pills{display:flex;flex-wrap:wrap;gap:10px}.mood-pill{display:flex;align-items:center;gap:8px;padding:8px 14px;background:var(--card-bg);border:1px solid var(--card-border);border-radius:20px}.mood-name{font-family:var(--font-ui);font-size:.8rem;color:var(--text-muted)}.mood-count{font-family:var(--font-ui);font-size:.75rem;color:#8a64c8cc}.character-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}.character-item{display:flex;flex-direction:column;gap:4px;padding:12px 16px;background:var(--card-bg);border:1px solid var(--card-border);border-radius:10px}.character-item .character-name{font-size:.9rem;color:var(--text-primary);max-width:none}.character-item .character-count{font-family:var(--font-ui);font-size:.7rem;color:var(--text-faint)}.recurring-list{display:flex;flex-direction:column;gap:10px}.recurring-item{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:var(--card-bg);border:1px solid rgba(138,100,200,.2);border-radius:10px}.recurring-title{font-size:.95rem;font-style:italic;color:var(--text-primary)}.recurring-date{font-family:var(--font-ui);font-size:.7rem;color:var(--text-faint)}
