:root{--paper:#f0eadf;--card:#fff;--ink:#2b2a27;--ink-soft:#8a857c;--accent:#6b5d8f;--accent-soft:#ece8f4;--border:#e6e1d8;--danger:#b0523f;color:var(--ink);font-family:Segoe UI,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}body{background:var(--paper);min-height:100vh;margin:0}h1,h2{font-weight:600}button{font:inherit;cursor:pointer;border:1px solid var(--border);background:var(--card);color:var(--ink);border-radius:8px;padding:8px 14px}button:hover{border-color:var(--accent)}input,textarea,select{font:inherit;color:var(--ink);border:1px solid var(--border);background:var(--card);border-radius:8px;padding:8px 12px}input:focus,textarea:focus,select:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}code,pre{background:var(--accent-soft);border-radius:6px;padding:2px 6px;font-size:.9em}pre{text-align:left;padding:12px;overflow-x:auto}.muted{color:var(--ink-soft)}.topbar{background:var(--card);border-bottom:1px solid var(--border);align-items:center;gap:16px;padding:12px 24px;display:flex}.topbar-brand{color:var(--accent);margin-right:auto;font-size:18px;font-weight:700;text-decoration:none}.topbar-user{color:var(--ink-soft);font-size:14px}.link-button{color:var(--accent);background:0 0;border:none;padding:4px}.auth-screen{justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.auth-card{background:var(--card);border:1px solid var(--border);text-align:center;border-radius:16px;flex-direction:column;gap:12px;width:100%;max-width:420px;padding:36px;display:flex}.auth-card h1{color:var(--accent);margin:0}.auth-subtitle{color:var(--ink-soft);margin:0 0 8px}.auth-error{color:var(--danger);margin:0;font-size:14px}.auth-notice{color:var(--accent);margin:0;font-size:14px}.content{max-width:860px;margin:0 auto;padding:32px 24px}.breadcrumb{color:var(--ink-soft);font-size:14px}.breadcrumb a{color:var(--accent);text-decoration:none}.create-row{gap:8px;margin-bottom:24px;display:flex}.create-row input{flex:1}.notebook-shelf{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:28px 20px;padding-top:8px;display:grid}.notebook-card{position:relative}.notebook-cover{border-radius:6px 14px 14px 6px;justify-content:center;align-items:center;height:210px;text-decoration:none;transition:transform .15s,box-shadow .15s;display:flex;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff40,0 2px 4px #3c321e40,0 10px 18px #3c321e2e}.notebook-cover:hover{transform:translateY(-4px)rotate(-1deg);box-shadow:inset 0 1px #ffffff40,0 4px 8px #3c321e47,0 16px 26px #3c321e38}.notebook-spine{background:#00000038;border-right:1px solid #ffffff1f;width:14px;position:absolute;top:0;bottom:0;left:0}.notebook-elastic{background:#00000047;width:5px;position:absolute;top:0;bottom:0;right:18px}.notebook-cover-title{color:#fffffdf2;text-align:center;text-shadow:0 1px 2px #00000059;word-break:break-word;padding:12px 28px 12px 26px;font-family:Georgia,Times New Roman,serif;font-size:17px;font-weight:600}.notebook-card .delete-button{opacity:0;background:#ffffffd9;border-radius:6px;transition:opacity .15s;position:absolute;top:6px;right:6px}.notebook-card:hover .delete-button{opacity:1}.cover-classic{background:linear-gradient(150deg,#6b5d8f 0%,#574a7a 60%,#4a3f6b 100%)}.cover-forest{background:linear-gradient(150deg,#4e6e58 0%,#3d5a46 60%,#33503c 100%)}.cover-ocean{background:linear-gradient(150deg,#3e6284 0%,#33526f 60%,#2a4560 100%)}.cover-sand{background:linear-gradient(150deg,#c2a878 0%,#ad9260 60%,#9c8354 100%)}.cover-rose{background:linear-gradient(150deg,#a86073 0%,#91505f 60%,#7e4453 100%)}.cover-charcoal{background:linear-gradient(150deg,#4d4c4a 0%,#3c3b39 60%,#323130 100%)}.cover-picker{align-items:center;gap:6px;display:inline-flex}.cover-dot{border:2px solid #0000;border-radius:50%;width:26px;height:26px;padding:0}.cover-dot.active{border-color:var(--ink)}.page-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.page-row{background:var(--card);border:1px solid var(--border);border-radius:10px;align-items:center;gap:8px;padding:4px 8px 4px 16px;display:flex}.page-link{color:inherit;flex:1;align-items:baseline;gap:12px;padding:10px 0;text-decoration:none;display:flex}.page-title{font-weight:600}.page-meta{color:var(--ink-soft);font-size:13px}.editor-toolbar{justify-content:space-between;align-items:center;gap:16px;display:flex}.background-picker{gap:6px;display:inline-flex}.background-option{border:1px solid var(--border);background-color:#fffdf6;border-radius:6px;width:28px;height:28px;padding:0}.background-option.active{border:2px solid var(--accent)}.background-option.bg-lined{background-image:repeating-linear-gradient(#0000,#0000 5px,#c9d6e6 5px 6px)}.background-option.bg-dotted{background-image:radial-gradient(#b9b2a2 .8px,#0000 1px);background-size:6px 6px}.background-option.bg-grid{background-image:linear-gradient(#dcd5c5 1px,#0000 1px),linear-gradient(90deg,#dcd5c5 1px,#0000 1px);background-size:6px 6px}.paper-wrap{justify-content:center;margin-top:12px;display:flex;position:relative}.paper{background-color:#fffdf6;border-radius:3px 12px 12px 3px;flex-direction:column;width:100%;max-width:760px;min-height:860px;padding:40px 48px 48px 64px;display:flex;box-shadow:inset 18px 0 24px -20px #503c1e73,0 1px 3px #3c321e33,0 14px 34px #3c321e29}.paper-lined{background-image:repeating-linear-gradient(#0000,#0000 27px,#d4dfec 27px 28px);position:relative}.paper-lined:before{content:"";pointer-events:none;background:#c45c5c59;width:1px;position:absolute;top:0;bottom:0;left:52px}.paper-dotted{background-image:radial-gradient(#c6bfae 1px,#0000 1.3px);background-size:24px 24px}.paper-grid{background-image:linear-gradient(#e5decd 1px,#0000 1px),linear-gradient(90deg,#e5decd 1px,#0000 1px);background-size:24px 24px}.paper .block-list{gap:0;line-height:28px}.paper .text-block textarea,.paper .bullet-text,.paper .toggle-heading{padding-top:0;padding-bottom:0;line-height:28px}.paper .bullet-block,.paper .toggle-block{min-height:28px}.paper .bullet-symbol{height:28px}.paper-footer{text-align:center;color:var(--ink-soft);margin-top:auto;padding-top:24px;font-family:Georgia,serif;font-size:12px;font-style:italic}.page-flip{color:var(--ink-soft);border-radius:12px;align-self:flex-start;padding:8px 14px;font-size:40px;line-height:1;text-decoration:none;position:sticky;top:45vh}.page-flip:hover{color:var(--accent);background:var(--accent-soft)}.toc-paper{min-height:640px}.toc-heading{text-align:center;margin:8px 0 0;font-family:Georgia,Times New Roman,serif;font-size:26px}.toc-sub{text-align:center;color:var(--ink-soft);margin:4px 0 24px;font-family:Georgia,serif;font-size:13px;font-style:italic}.toc-list{margin:0;padding:0;list-style:none}.toc-row{align-items:baseline;gap:8px;line-height:32px;display:flex}.toc-link{min-width:0;color:inherit;flex:1;align-items:baseline;gap:10px;text-decoration:none;display:flex}.toc-title{white-space:nowrap;text-overflow:ellipsis;font-family:Georgia,Times New Roman,serif;font-size:17px;overflow:hidden}.toc-link:hover .toc-title{color:var(--accent)}.toc-meta{color:var(--ink-soft);white-space:nowrap;font-size:12px}.toc-leader{border-bottom:1px dotted #8a857c99;flex:1;min-width:24px;transform:translateY(-4px)}.toc-num{color:var(--ink-soft);font-family:Georgia,serif}.toc-actions{opacity:0;gap:4px;transition:opacity .15s;display:inline-flex}.toc-row:hover .toc-actions{opacity:1}.toc-actions button{padding:2px 8px;font-size:12px}.page-title-input{background:0 0;border:none;width:100%;padding:4px 0;font-family:Georgia,Times New Roman,serif;font-size:28px;font-weight:700}.page-title-input:focus{border-bottom:2px solid var(--accent);border-radius:0;outline:none}.block-list{flex-direction:column;gap:4px;margin-top:16px;display:flex}.block{align-items:flex-start;gap:8px;display:flex}.block .delete-button{opacity:0;transition:opacity .15s}.block:hover .delete-button{opacity:1}.text-block textarea{resize:none;background:0 0;border-color:#0000;flex:1;line-height:1.6;overflow:hidden}.text-block textarea:hover,.text-block textarea:focus{border-color:var(--border);background:var(--card)}.bullet-block{align-items:center}.bullet-symbol{width:32px;height:32px;color:var(--accent);background:0 0;border:none;padding:0;font-size:18px}.bullet-text{background:0 0;border-color:#0000;flex:1}.bullet-text:hover,.bullet-text:focus{border-color:var(--border);background:var(--card)}.bullet-text.completed{color:var(--ink-soft);text-decoration:line-through}.cycle-button{color:var(--ink-soft);opacity:0;background:0 0;border:none;padding:4px;transition:opacity .15s}.block:hover .cycle-button{opacity:1}.handwriting-block img{border:1px solid var(--border);border-radius:8px;max-width:100%}.add-block-row{gap:8px;margin-top:16px;display:flex}.delete-button{color:var(--ink-soft);background:0 0;border:none;padding:4px 8px;font-size:16px}.delete-button:hover{color:var(--danger)}.topbar-nav{gap:16px;margin-right:auto;display:flex}.topbar-nav a{color:var(--ink-soft);font-size:14px;text-decoration:none}.topbar-nav a:hover{color:var(--accent)}.title-row{align-items:center;gap:8px;display:flex}.bookmark-button{color:var(--accent);background:0 0;border:none;padding:4px;font-size:24px}.page-meta-row{align-items:center;gap:16px;margin:4px 0 8px;display:flex}.mood-row{gap:2px;display:flex}.mood-button{filter:grayscale();opacity:.5;background:0 0;border:none;padding:2px 4px;font-size:18px}.mood-button.active,.mood-button:hover{filter:none;opacity:1}.tag-bar{flex-wrap:wrap;align-items:center;gap:6px;margin:8px 0;display:flex}.tag-chip{background:var(--accent-soft);color:var(--accent);border:none;border-radius:999px;align-items:center;gap:4px;padding:3px 10px;font-size:13px;display:inline-flex}.tag-chip.active{background:var(--accent);color:#fff}.tag-remove{color:inherit;background:0 0;border:none;padding:0;font-size:13px}.tag-add,.tag-input{border:1px dashed var(--border);color:var(--ink-soft);background:0 0;border-radius:999px;padding:3px 10px;font-size:13px}.tag-cloud{margin-bottom:16px}.tag-cloud .tag-chip{cursor:pointer}.toggle-body{flex-direction:column;flex:1;gap:4px;display:flex}.toggle-heading{background:0 0;border-color:#0000;font-weight:600}.toggle-heading:hover,.toggle-heading:focus{border-color:var(--border);background:var(--card)}.toggle-body textarea{resize:none;line-height:1.6}.search-snippet{width:100%;color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;font-size:13px;display:block;overflow:hidden}.page-link{flex-wrap:wrap}.day-nav{justify-content:space-between;align-items:center;gap:16px;display:flex}.day-nav h2{margin:0}.day-nav a{color:var(--accent);font-size:14px;text-decoration:none}.day-events{border:1px solid var(--border);background:var(--card);border-radius:10px;margin:16px 0;padding:16px 20px}.day-events h3{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);margin:0 0 8px;font-size:14px}.event-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.event-row{align-items:baseline;gap:12px;display:flex}.event-time{color:var(--accent);font-variant-numeric:tabular-nums;min-width:110px;font-size:13px}.event-title{font-weight:600}.event-location{color:var(--ink-soft);font-size:13px}.calendar-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.calendar-modes{border:1px solid var(--border);border-radius:8px;display:inline-flex;overflow:hidden}.mode-button{border:none;border-radius:0;padding:6px 14px;font-size:14px}.mode-button.active{background:var(--accent);color:#fff}.calendar-nav-controls{align-items:center;gap:6px;display:inline-flex}.calendar-nav-controls input[type=date]{padding:6px 8px}.calendar-heading{margin:16px 0 12px}.calendar-hint{margin-top:24px;font-size:12px}.month-grid{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.month-weekday{text-align:center;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);padding:4px 0;font-size:12px}.month-cell{text-align:left;border-radius:8px;flex-direction:column;align-items:stretch;gap:2px;min-height:92px;padding:6px;font-size:11px;display:flex;overflow:hidden}.month-cell.other-month{opacity:.45}.month-cell.today{border-color:var(--accent);border-width:2px}.month-day-number{font-size:13px;font-weight:600}.month-cell.today .month-day-number{color:var(--accent)}.month-event{background:var(--accent-soft);color:var(--accent);white-space:nowrap;text-overflow:ellipsis;border-radius:4px;padding:1px 4px;overflow:hidden}.month-more,.month-pages{color:var(--ink-soft)}.agenda{flex-direction:column;display:flex}.agenda-day{border-bottom:1px solid var(--border);gap:16px;padding:10px 8px;display:flex}.agenda-day.today{background:var(--accent-soft);border-radius:8px}.agenda-date{min-width:110px;color:inherit;font-size:14px;font-weight:600;text-decoration:none}.agenda-date:hover{color:var(--accent)}.agenda-body{flex-direction:column;flex:1;gap:4px;display:flex}.agenda-page{color:var(--accent);font-size:14px;text-decoration:none}.event-row.clickable{cursor:pointer;border-radius:6px;margin:0 -6px;padding:2px 6px}.event-row.clickable:hover{background:var(--accent-soft)}.modal-backdrop{z-index:50;background:#1e191459;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal{background:var(--card);border-radius:14px;flex-direction:column;gap:12px;width:100%;max-width:440px;padding:24px;display:flex;box-shadow:0 20px 50px #281e1459}.modal h3{margin:0 0 4px}.field{color:var(--ink-soft);flex-direction:column;gap:4px;font-size:13px;display:flex}.field input,.field select{color:var(--ink);font-size:15px}.field-row{gap:12px;display:flex}.field-row .field{flex:1}.field-inline{align-items:center;gap:8px;font-size:14px;display:flex}.modal-actions{align-items:center;gap:8px;margin-top:8px;display:flex}.modal-actions-spacer{flex:1}.primary-button{background:var(--accent);color:#fff;border-color:var(--accent)}.primary-button:hover{filter:brightness(1.05)}.danger-button{color:var(--danger);border-color:var(--danger)}.settings-card{background:var(--card);border:1px solid var(--border);border-radius:12px;margin-bottom:20px;padding:20px 24px}.settings-card h3{margin-top:0}.settings-form{flex-wrap:wrap;gap:8px;display:flex}.settings-form input{flex:1;min-width:180px}.settings-actions{gap:8px;margin-top:12px;display:flex}.account-list{flex-direction:column;gap:6px;margin:0 0 8px;padding:0;list-style:none;display:flex}.account-list li{align-items:center;gap:10px;display:flex}.account-provider{text-transform:uppercase;letter-spacing:.05em;background:var(--accent-soft);color:var(--accent);border-radius:6px;padding:2px 8px;font-size:12px}.day-section{margin-bottom:20px}.day-section-title{color:var(--accent);font-weight:600;text-decoration:none}.day-block-list{flex-direction:column;gap:4px;margin:0;padding:8px 0 0 8px;list-style:none;display:flex}
