*{box-sizing:border-box;margin:0;padding:0}:root{--font-sans: "Inter", sans-serif;--font-serif: "Lora", serif;--font-mono: "Courier New", Courier, monospace;--text-color: #333;--text-light: #888;--bg-color: #fff;--border-color: #eee;--accent-color: #4CAF50;--primary-action-color: #2e7d32}body{font-family:var(--font-sans);background-color:var(--bg-color);color:var(--text-color);overflow-y:scroll}#root,.app-container{min-height:100vh}.app-container{max-width:800px;margin:0 auto;padding:0 2rem;display:flex;flex-direction:column}.loading-container{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;flex-grow:1;padding-bottom:10vh;color:var(--text-light)}.login-container{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;flex-grow:1;padding-bottom:10vh}.login-title{font-family:var(--font-serif);font-size:3rem;font-weight:700;margin-bottom:1rem}.login-description{font-size:1.1rem;color:#555;line-height:1.6;max-width:400px;margin-bottom:2.5rem}.login-form{width:100%;max-width:350px}.login-form-intro{font-size:.9rem;color:var(--text-light);margin-bottom:1rem}.login-form input[type=email]{width:100%;padding:.8rem 1rem;font-size:1rem;border:1px solid #ccc;border-radius:6px;margin-bottom:1rem}.login-form button{width:100%;padding:.8rem 1rem;font-size:1rem;font-weight:700;color:#fff;background-color:var(--primary-action-color);border:none;border-radius:6px;cursor:pointer;transition:background-color .2s}.login-form button:hover{background-color:#1b5e20}.app-header{text-align:center;padding-top:2rem;width:100%;position:relative}.header-top{display:flex;justify-content:space-between;align-items:center;width:100%;gap:1rem}.app-title{font-weight:700;font-size:1.2rem;flex-shrink:0}.main-nav{display:flex;gap:.5rem;flex-shrink:0;margin-left:auto}.main-nav button{background:none;border:1px solid var(--border-color);border-radius:6px;padding:.5rem 1rem;cursor:pointer;font-weight:700;font-size:.9rem;transition:background-color .2s,color .2s}.main-nav button:hover{background-color:#f0f0f0}.main-nav button:disabled{cursor:not-allowed;background-color:#f5f5f5;color:#aaa;border-color:#eee}.date-display{font-family:var(--font-serif);font-size:2rem;font-weight:700;margin-bottom:1rem;margin-top:1.5rem}.month-nav{display:flex;justify-content:center;align-items:center;gap:1.5rem;margin-bottom:1rem}.month-nav button{background:none;border:none;cursor:pointer;font-size:1rem;color:var(--text-color);padding:.25rem .5rem;font-weight:700;transition:color .2s;border-radius:4px}.month-nav button:hover{color:#000}.month-nav button.is-current-month{color:var(--accent-color)}.month-nav span{font-weight:700;color:#555;min-width:80px;text-align:center}.streak-tracker-container{display:flex;justify-content:center;align-items:center;gap:1.5rem;margin-bottom:1rem;padding-bottom:2rem}.day-grid{display:grid;grid-template-columns:repeat(31,1fr);gap:4px}.day-square{width:18px;height:18px;background-color:#f0f0f0;border:1px solid #ddd;cursor:pointer;transition:background-color .2s,border-color .2s;border-radius:4px}.day-square.is-selected{border-color:var(--text-color);box-shadow:0 0 0 1px var(--text-color)}.day-square.is-today{border-color:var(--accent-color)}.day-square.is-future{background-color:#fcfcfc;border-color:#f0f0f0;cursor:not-allowed}.day-square.is-invisible{visibility:hidden}.streak-info{font-size:.9rem;color:var(--text-light)}.editor-container{flex-grow:1;display:flex;flex-direction:column}.editor-textarea{flex-grow:1;width:100%;border:none;resize:none;padding:1rem 0;font-family:var(--font-mono);font-size:1.1rem;line-height:1.7;color:var(--text-color);background-color:transparent;min-height:300px}.editor-textarea::placeholder{color:#ccc}.editor-textarea:focus{outline:none}.editor-textarea:disabled{background-color:#fdfdfd;cursor:not-allowed;color:#999}.editor-textarea:disabled::placeholder{color:#bbb}.search-results-list{margin-top:1.5rem}.search-result-item{background-color:#fdfdfd;border:1px solid var(--border-color);border-radius:8px;padding:1.5rem;margin-bottom:1rem;text-align:left}.search-result-item:last-child{margin-bottom:0}.search-result-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.search-result-date{font-family:var(--font-serif);font-weight:700;font-size:1.1rem}.search-result-header .button-view-entry{background-color:transparent;border:1px solid #ddd;border-radius:6px;padding:.4rem .8rem;cursor:pointer;font-weight:700;font-size:.85rem;color:#555;transition:background-color .2s,color .2s,border-color .2s}.search-result-header .button-view-entry:hover{background-color:#f7f7f7;border-color:#bbb;color:var(--text-color)}.search-result-snippet{font-family:var(--font-mono);color:#555;line-height:1.6}.search-result-snippet mark{background-color:#a5d6a7;color:#1b5e20;font-weight:700;border-radius:3px;padding:1px 3px}.search-results-empty{text-align:center;color:var(--text-light);padding:2rem 0}.settings-container{width:100%;padding:2rem 0}.settings-header{text-align:left;margin-bottom:2.5rem}.settings-header h1{font-family:var(--font-serif);font-size:2rem;font-weight:700}.settings-main-content{display:block}.settings-top-row{display:flex;gap:2rem;align-items:flex-start;margin-bottom:2.5rem}.user-info-card,.search-widget{flex:1}.user-info-card{border:1px solid #ddd;border-radius:8px;padding:1.5rem;font-size:1.1rem;line-height:1.6}.user-info-card p{margin-bottom:1.5rem}.user-info-card strong{font-weight:700;text-decoration:underline}.user-info-card .logout-button{width:100%;background:none;border:1px solid #ddd;border-radius:6px;padding:.6rem 1rem;cursor:pointer;font-weight:700;font-size:.9rem;transition:background-color .2s,color .2s}.user-info-card .logout-button:hover{background-color:#f5f5f5}.search-widget h2{font-size:1.2rem;font-weight:700;margin-bottom:1rem}.floating-input-group{position:relative}.floating-input-group .search-input{width:100%;padding:1.2rem 1rem .8rem;font-size:1rem;border:2px solid var(--accent-color);border-radius:6px;transition:border-color .2s,box-shadow .2s}.floating-input-group .search-input::placeholder{color:transparent}.floating-input-group label{position:absolute;top:1rem;left:1rem;color:var(--text-light);pointer-events:none;transition:all .2s ease}.floating-input-group .search-input:focus+label,.floating-input-group .search-input:not(:placeholder-shown)+label{top:.5rem;left:.8rem;font-size:.75rem;color:var(--primary-action-color);background-color:#fff;padding:0 .2rem}.floating-input-group .search-input:focus{outline:none}.streaks-widget{border:1px solid var(--border-color);border-radius:8px;padding:2rem;background-color:#fdfdfd}.streaks-widget h2{font-family:var(--font-serif);text-align:center;margin-bottom:2rem;font-size:1.4rem;color:var(--text-color)}.streaks-overview{display:flex;justify-content:center;gap:4rem;text-align:center;margin-bottom:2.5rem}.streak-stat .streak-value{display:block;font-size:2.5rem;font-weight:700;line-height:1;color:var(--primary-action-color)}.streak-stat .streak-label{font-size:.9rem;color:var(--text-light);margin-top:.25rem;display:block}.achievement-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1rem}.achievement-item{display:flex;align-items:center;gap:1rem;background-color:#fff;border:1px solid var(--border-color);padding:1rem;border-radius:6px;opacity:.5;transition:opacity .3s,box-shadow .3s}.achievement-item.is-unlocked{opacity:1}.achievement-details{text-align:left}.achievement-details h4{font-weight:700;margin-bottom:.25rem}.achievement-details p{font-size:.9rem;color:#555;line-height:1.4}.reward-shape{width:50px;height:50px;flex-shrink:0;background-color:var(--primary-action-color);transition:background-color .3s,border .3s,opacity .3s}.reward-shape.is-locked{background-color:#e0e0e0}.reward-shape.shape-square{border-radius:4px}.reward-shape.shape-circle{border-radius:50%}.reward-shape.shape-triangle{width:0;height:0;background-color:transparent;border-left:25px solid transparent;border-right:25px solid transparent;border-bottom:50px solid var(--primary-action-color)}.reward-shape.shape-triangle.is-locked{border-bottom-color:#e0e0e0}.reward-shape.shape-star{clip-path:polygon(50% 0%,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%)}.stats-container{display:flex;flex-direction:column;align-items:center;width:100%}.stats-date-subtitle{font-size:1rem;color:var(--text-light);margin-top:-.5rem;margin-bottom:1rem}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;width:100%;margin-top:1rem;flex-grow:1;padding-bottom:2rem}.stat-card{background-color:#f9f9f9;border:1px solid var(--border-color);border-radius:8px;padding:1.5rem;text-align:center;display:flex;flex-direction:column;justify-content:center}.stat-card.highlight-card{padding:2rem}.stat-card.chart-card{min-height:300px;position:relative}.chart-card-full-width{grid-column:1 / -1}.stat-value{font-size:1.75rem;font-weight:700;color:var(--text-color);line-height:1.2}.stat-label{font-size:.9rem;color:var(--text-light);margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.5px}.word-cloud-card{grid-column:1 / -1;padding:1.5rem 2rem;text-align:left}.word-cloud-title{font-family:var(--font-serif);font-size:.9rem;color:var(--text-light);margin-bottom:1.5rem;text-transform:uppercase;letter-spacing:1px;font-weight:700}.word-cloud-container{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem .75rem;font-family:var(--font-serif)}.word-cloud-word{padding:.2rem .6rem;border-radius:6px;background-color:#f8f8f8;border:1px solid #eee;line-height:1.2;transition:transform .2s ease-in-out,box-shadow .2s ease-in-out;cursor:default}.word-cloud-word:hover{transform:scale(1.05);box-shadow:0 2px 4px #0000000d}.entry-display-card{grid-column:1 / -1;text-align:left}.entry-display-title{font-family:var(--font-serif);font-size:.9rem;color:var(--text-light);margin-bottom:1rem;text-transform:uppercase;letter-spacing:1px;font-weight:700}.entry-display-content{font-family:var(--font-mono);font-size:1rem;line-height:1.7;color:var(--text-color);white-space:pre-wrap;max-height:400px;overflow-y:auto;background-color:#fff;padding:1rem;border-radius:4px;border:1px solid #f0f0f0}.app-footer{padding:1rem 0;text-align:center;font-size:.9rem;color:var(--text-light);margin-top:auto}.modal-backdrop{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.modal-content{background-color:#fff;padding:2rem;border-radius:8px;box-shadow:0 4px 6px #0000001a;width:100%;max-width:400px;text-align:left}.modal-content h2{font-family:var(--font-serif);margin-top:0;margin-bottom:1.5rem;text-align:center}.export-fieldset{border:1px solid var(--border-color);border-radius:6px;padding:.75rem 1rem 1rem;margin-bottom:1.5rem}.export-fieldset legend{padding:0 .5rem;font-weight:700;font-size:.9rem;color:#555}.export-fieldset select{width:100%;padding:.75rem;font-size:1rem;border:1px solid #ccc;border-radius:6px;background-color:#f9f9f9}.format-selector{display:flex;border:1px solid #ccc;border-radius:6px;overflow:hidden}.format-selector button{flex-grow:1;padding:.75rem;font-size:1rem;font-weight:700;border:none;background-color:#f9f9f9;color:#555;cursor:pointer;transition:background-color .2s,color .2s}.format-selector button:not(:last-child){border-right:1px solid #ccc}.format-selector button.active{background-color:var(--primary-action-color);color:#fff}.modal-actions{display:flex;justify-content:flex-end;gap:.75rem}.modal-actions button{padding:.75rem 1.25rem;border-radius:6px;border:none;cursor:pointer;font-weight:700;font-size:.9rem;transition:background-color .2s}.modal-actions .button-primary{background-color:var(--primary-action-color);color:#fff}.modal-actions .button-primary:hover{background-color:#1b5e20}.modal-actions .button-secondary{background-color:#f0f0f0;color:var(--text-color);border:1px solid #ccc}.modal-actions .button-secondary:hover{background-color:#e0e0e0}
