:root{--color-bg: #ffffff;--color-surface: #f5f6f8;--color-border: #e1e4e8;--color-text: #20242a;--color-text-muted: #636973;--color-accent: #3b5bdb;--color-accent-soft: #e8edfb;--color-danger: #b03030;--space-1: .25rem;--space-2: .5rem;--space-3: 1rem;--space-4: 1.5rem;--radius: 6px;--sidebar-width: 240px;--font-sans: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font-sans);font-size:16px;line-height:1.5;color:var(--color-text);background:var(--color-bg)}.app-shell{display:grid;grid-template-columns:var(--sidebar-width) 1fr;height:100%}.sidebar{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-3);background:var(--color-surface);border-right:1px solid var(--color-border);overflow-y:auto}.brand{margin:0;font-size:1.1rem}.sidebar-nav{display:flex;flex-direction:column;gap:2px}.nav-link{padding:var(--space-1) var(--space-2);border-radius:var(--radius);color:inherit;text-decoration:none}.nav-link:hover{background:var(--color-border)}.nav-link.active{background:var(--color-accent-soft);color:var(--color-accent);font-weight:600}.sidebar-section h2{margin:0 0 var(--space-1);font-size:.75rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--color-text-muted)}.sidebar-status{margin-top:auto;padding-top:var(--space-2);border-top:1px solid var(--color-border);font-size:.75rem;color:var(--color-text-muted)}.sidebar-status p{margin:2px 0}.content{padding:var(--space-4);overflow-y:auto}.content h2{margin-top:0}.muted{color:var(--color-text-muted)}.placeholder-note{margin:0;font-size:.85rem;color:var(--color-text-muted)}.boot-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);height:100%;padding:var(--space-4);text-align:center}.button{padding:var(--space-1) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);font:inherit;cursor:pointer}.button:hover{background:var(--color-border)}.entry-editor{display:flex;flex-direction:column;gap:var(--space-2)}.editor-save-status{min-height:1.25rem;margin:0;font-size:.85rem;color:var(--color-text-muted)}.editor-save-status[data-status=error]{color:var(--color-danger)}.entry-editor-surface{min-height:12rem;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);outline:none}.entry-editor-surface:focus{border-color:var(--color-accent)}.entry-editor-surface :first-child{margin-top:0}.calendar-page{display:flex;flex-direction:column;gap:var(--space-4);--rdp-accent-color: var(--color-accent);--rdp-accent-background-color: var(--color-accent-soft);--rdp-today-color: var(--color-accent)}.rdp-has-entries .rdp-day_button{font-weight:600}.rdp-count-badge{display:inline-block;min-width:1.1em;margin-left:2px;padding:0 var(--space-1);border-radius:999px;background:var(--color-accent);color:#fff;font-size:.6rem;line-height:1.3;vertical-align:super}.calendar-day-entries h3,.calendar-on-this-day h3{margin-bottom:var(--space-2)}.search-input{width:100%;margin-top:var(--space-1);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);font:inherit}.search-input:focus{border-color:var(--color-accent)}.search-input:focus-visible{outline:2px solid var(--color-accent);outline-offset:1px}.search-results{list-style:none;margin:var(--space-2) 0 0;padding:0;display:flex;flex-direction:column;gap:var(--space-1)}.search-result-link{display:flex;flex-direction:column;gap:2px;padding:var(--space-2);border-radius:var(--radius);color:inherit;text-decoration:none}.search-result-link:hover{background:var(--color-surface)}.search-result-date{font-size:.8rem;color:var(--color-text-muted)}.search-result-snippet mark{background:var(--color-accent);color:var(--color-bg);border-radius:2px;padding:0 1px}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sidebar-section-head{display:flex;align-items:baseline;justify-content:space-between}.sidebar-sublist{display:flex;flex-direction:column;gap:2px}.link-button{padding:0;border:0;background:none;font:inherit;font-size:.75rem;color:var(--color-accent);cursor:pointer}.link-button:hover{text-decoration:underline}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:flex-start;justify-content:center;padding:var(--space-4);background:#14182066;overflow-y:auto}.modal-panel{width:min(32rem,100%);margin-top:4rem;padding:var(--space-3);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius)}.modal-header{display:flex;align-items:center;justify-content:space-between}.modal-header h2{margin:0}.manage-body{display:flex;flex-direction:column;gap:var(--space-2)}.manage-create,.manage-rename{display:flex;gap:var(--space-2)}.manage-create input,.manage-rename input{flex:1;padding:var(--space-1) var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius);font:inherit}.manage-list{display:flex;flex-direction:column;gap:var(--space-1);margin:0;padding:0;list-style:none}.manage-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2);padding:var(--space-1) 0;border-bottom:1px solid var(--color-border)}.manage-name{flex:1}.manage-actions{display:flex;gap:var(--space-1)}.manage-error{margin:0;font-size:.85rem;color:var(--color-danger)}.entry-tags{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);margin-top:var(--space-2)}.chip-list{display:flex;flex-wrap:wrap;gap:var(--space-1);margin:0;padding:0;list-style:none}.chip{display:inline-flex;align-items:center;gap:var(--space-1);padding:2px var(--space-2);background:var(--color-accent-soft);color:var(--color-accent);border-radius:999px;font-size:.85rem}.chip-remove{border:0;background:none;color:inherit;font-size:1rem;line-height:1;cursor:pointer}.settings-page>section{margin-bottom:var(--space-4);padding-bottom:var(--space-3);border-bottom:1px solid var(--color-border)}.lock-banner{margin-bottom:var(--space-3);padding:var(--space-2) var(--space-3);border:1px solid var(--color-danger);border-radius:var(--radius);background:var(--color-accent-soft);color:var(--color-text)}.lock-banner p{margin:0}
