:root{--color-bg: #ffffff;--color-surface: #f5f5f5;--color-surface-hover: #ebebeb;--color-text: #1a1a1a;--color-text-muted: #666666;--color-border: #e0e0e0;--color-primary: #2563eb;--color-primary-hover: #1d4ed8;--color-today: #dbeafe;--color-today-border: #2563eb;--color-note-indicator: #2563eb;--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-family-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.25rem;--font-size-xl: 1.5rem;--font-size-2xl: 2rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.75;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--backdrop-blur: blur(12px);--overlay-bg: rgba(255, 255, 255, .7);--modal-shadow: 0 25px 50px -12px rgba(0, 0, 0, .25);--radius-sm: 4px;--radius: 8px;--radius-lg: 12px;--transition-fast: .15s ease;--transition-normal: .2s ease}@media(prefers-color-scheme:dark){:root{--color-bg: #0a0a0a;--color-surface: #1a1a1a;--color-surface-hover: #252525;--color-text: #f5f5f5;--color-text-muted: #a0a0a0;--color-border: #333333;--color-today: #1e3a5f;--color-today-border: #3b82f6;--color-note-indicator: #60a5fa;--overlay-bg: rgba(0, 0, 0, .7)}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-family);font-size:var(--font-size-base);line-height:1.5;color:var(--color-text);background-color:var(--color-bg);min-height:100vh}button{font-family:inherit;font-size:inherit;cursor:pointer;border:none;background:none}textarea{font-family:inherit;font-size:inherit;resize:none}a{color:inherit;text-decoration:none}.button{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius);font-weight:var(--font-weight-medium);transition:background-color var(--transition-fast),color var(--transition-fast)}.button--primary{background-color:var(--color-primary);color:#fff}.button--primary:hover{background-color:var(--color-primary-hover)}.button--ghost{background-color:transparent;color:var(--color-text)}.button--ghost:hover{background-color:var(--color-surface)}.button--icon{padding:var(--spacing-sm);width:2.5rem;height:2.5rem}.modal-backdrop{position:fixed;inset:0;background-color:var(--overlay-bg);backdrop-filter:var(--backdrop-blur);-webkit-backdrop-filter:var(--backdrop-blur);display:flex;justify-content:center;z-index:100}.modal-close-button{position:fixed;top:var(--spacing-lg);right:var(--spacing-lg);z-index:101;background-color:transparent;color:var(--color-text)}.modal-content{width:50%;min-width:400px;max-width:800px;height:calc(100vh - 20px);margin:10px 0;background-color:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg);display:flex;flex-direction:column}@media(max-width:768px){.modal-content{width:100%;height:100vh;min-width:unset;margin:0}}.calendar{padding:var(--spacing-xl);max-width:1400px;margin:0 auto;height:100vh;min-height:800px;display:flex;flex-direction:column}.calendar__header{display:flex;align-items:center;justify-content:center;gap:var(--spacing-lg);margin-bottom:var(--spacing-xl)}.calendar__year{font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);min-width:120px;text-align:center}.calendar__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--spacing-xl);flex:1;align-content:start}@media(max-width:1200px){.calendar__grid{grid-template-columns:repeat(3,1fr);gap:var(--spacing-lg)}}@media(max-width:900px){.calendar__grid{grid-template-columns:repeat(2,1fr);gap:var(--spacing-md)}}@media(max-width:600px){.calendar__grid{grid-template-columns:1fr;gap:var(--spacing-md)}}.month-grid{background-color:var(--color-surface);border-radius:var(--radius-lg);padding:var(--spacing-md)}.month-grid__header{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);text-align:center;margin-bottom:var(--spacing-sm);color:var(--color-text)}.month-grid__weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:var(--spacing-xs)}.month-grid__weekday{font-size:var(--font-size-xs);color:var(--color-text-muted);text-align:center;padding:var(--spacing-xs) 0}.month-grid__days{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.day-cell{aspect-ratio:1;display:flex;align-items:center;justify-content:center;position:relative;font-size:var(--font-size-sm);border-radius:var(--radius-sm);transition:background-color var(--transition-fast)}.day-cell--empty{cursor:default}.day-cell--past,.day-cell--today{cursor:pointer}.day-cell--past:hover{background-color:var(--color-surface-hover)}.day-cell--today{background-color:var(--color-today);border:2px solid var(--color-today-border);font-weight:var(--font-weight-semibold)}.day-cell--today:hover{background-color:var(--color-today)}.day-cell--future{color:var(--color-text-muted);opacity:.5;cursor:default}@media(min-width:1200px){.calendar{padding:var(--spacing-md);box-sizing:border-box}.calendar__header{margin-bottom:var(--spacing-md)}.calendar__year{font-size:var(--font-size-xl);min-width:100px}.calendar__grid{grid-template-rows:repeat(3,1fr);gap:var(--spacing-md);overflow:hidden}.month-grid{padding:var(--spacing-sm);border-radius:var(--radius);display:flex;flex-direction:column;height:100%}.calendar__header,.month-grid__header,.month-grid__weekdays{flex-shrink:0}.month-grid,.month-grid__days,.day-cell{min-height:0}.month-grid__header{font-size:var(--font-size-xs);margin-bottom:var(--spacing-md)}.month-grid__weekdays{gap:1px;margin-bottom:4px}.month-grid__weekday{font-size:.625rem;padding:2px 0}.month-grid__days{grid-template-rows:repeat(6,1fr);gap:1px;flex:1}.day-cell{font-size:.7rem;border-radius:2px;width:100%;height:100%}}.day-cell__indicator{position:absolute;bottom:2px;width:4px;height:4px;border-radius:50%;background-color:var(--color-note-indicator)}.note-editor{display:flex;flex-direction:column;height:100%}.note-editor__header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-xl) var(--spacing-2xl)}.note-editor__date{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}.note-editor__readonly-badge{font-size:var(--font-size-xs);color:var(--color-text-muted);background-color:var(--color-surface);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);margin-left:var(--spacing-sm)}.note-editor__saving{font-size:var(--font-size-xs);color:var(--color-text-muted);opacity:.8;transition:opacity .15s ease}.note-editor__body{flex:1;display:flex;flex-direction:column;padding:0 var(--spacing-2xl) var(--spacing-2xl);overflow:hidden}.note-editor__content{flex:1;width:100%;padding:0;border:none;background-color:transparent;color:var(--color-text);line-height:var(--line-height-relaxed);overflow-y:auto;overflow-x:hidden;word-wrap:break-word;outline:none}.note-editor__content:empty:before{content:attr(data-placeholder);color:var(--color-text-muted);pointer-events:none}.note-editor__content[contenteditable=false]{cursor:default;-webkit-user-select:text;user-select:text}.note-editor__content b,.note-editor__content strong{font-weight:var(--font-weight-semibold)}.note-editor__content i,.note-editor__content em{font-style:italic}.note-editor__content u{text-decoration:underline}.note-editor__content s,.note-editor__content strike,.note-editor__content del{text-decoration:line-through}.note-editor__content p{margin:0;margin-bottom:var(--spacing-sm)}.note-editor__content p:last-child{margin-bottom:0}.note-editor__content br{display:block;content:"";margin:var(--spacing-xs) 0}
