:root{--paper: #f5f1e6;--ink: #1c1813;--muted: #706658;--card: #fdfbf7;--line: #e6dfd3;--accent: #c45c26;--accent-light: #f6efe6;--olive: #3f5340;--olive-light: #eff3ef;--shadow-sm: 0 2px 8px rgba(47, 36, 22, .04);--shadow-md: 0 8px 24px rgba(47, 36, 22, .06);--shadow-lg: 0 16px 40px rgba(47, 36, 22, .12);--radius-sm: 10px;--radius-md: 16px;--radius-lg: 24px;--sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--serif: "Iowan Old Style", Palatino, Georgia, serif;color-scheme:light}*{box-sizing:border-box;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html,body,#root{min-height:100vh;min-height:-webkit-fill-available}body{margin:0;font-family:var(--sans);background:radial-gradient(1200px 600px at 15% -10%,#fffbf5 0%,transparent 60%),var(--paper);color:var(--ink);line-height:1.5}button,input,textarea,select{font:inherit;color:inherit}a{color:inherit;text-decoration:none}.app{max-width:1020px;margin:0 auto;padding:32px 24px 130px}.app:has(.db-page),.app:has(.movies-page-wrap),.app:has(.llm-page),.app:has(.llm-editor){max-width:1220px}.db-wrap{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--card);overflow-x:auto;box-shadow:var(--shadow-md);margin-top:16px}.db{width:100%;min-width:960px;border-collapse:collapse}.db th{text-align:left;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:14px 16px;border-bottom:1px solid var(--line);background:#fbf9f3;white-space:nowrap}.db td{border-bottom:1px solid var(--line);padding:0;vertical-align:middle;transition:background-color .15s ease}.db tr:hover td{background:#f9f6f0}.db tr:last-child td{border-bottom:0}.db-wrap .db td input{width:100%;border:0;border-radius:0;padding:12px 16px;background:transparent;min-height:46px;font-size:14px;transition:all .15s ease}.db-wrap .db td input:focus{outline:none;background:#fff;box-shadow:inset 0 0 0 2px var(--accent)}.db-gone{width:52px;text-align:center}.db-x{border:0;background:transparent;color:var(--muted);cursor:pointer;width:42px;height:42px;font-size:20px;line-height:1;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;transition:all .15s ease}.db-x:hover{color:#a93c2c;background:#fbf0ee}.db-add{padding:14px 16px;border-top:1px solid var(--line);background:#fdfbf7}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:32px;border-bottom:1px solid var(--line);padding-bottom:16px}.topbar-right{display:flex;align-items:center;gap:12px;min-width:0}.top-cal{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;flex-shrink:0;border-radius:10px;color:var(--ink)}.top-cal:hover,.top-cal.active{background:#eae3d2;color:var(--ink)}.brand{font-family:var(--serif);font-size:22px;font-weight:600;letter-spacing:-.03em;white-space:nowrap}.brand:hover{color:var(--accent)}.offline{font-size:13px;color:var(--muted)}.nav{position:fixed;left:50%;transform:translate(-50%);bottom:24px;width:calc(100% - 32px);max-width:580px;display:grid;grid-template-columns:repeat(5,1fr);background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);padding:6px;box-shadow:var(--shadow-lg);z-index:1000}.nav a{text-align:center;font-size:13px;font-weight:500;color:var(--muted);padding:10px 4px;border-radius:var(--radius-md);transition:all .2s cubic-bezier(.16,1,.3,1)}.nav a:hover{color:var(--ink)}.nav a.active{color:var(--ink);background:#eae3d2;box-shadow:inset 0 1px 2px #00000008}h1,h2,h3,.serif{font-family:var(--serif);font-weight:600;letter-spacing:-.02em;color:var(--ink);margin-top:0}h1{font-size:36px;margin-bottom:12px;line-height:1.2}h2{font-size:24px;margin-bottom:14px;line-height:1.3}.lede{color:var(--muted);margin:0 0 24px;font-size:15px;line-height:1.6}.steps{margin:0 0 24px;padding-left:1.25em;color:var(--muted);font-size:15px;line-height:1.55}.steps li{margin:12px 0}.steps strong{color:var(--ink);font-weight:600}.home-cols{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(220px,.85fr);grid-template-areas:"head-l head-r" "body-l body-r";column-gap:28px;row-gap:12px;align-items:start;margin-top:24px}.home-cols.bases-closed{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"head-l head-r" "body-l body-l"}.col-h-left{grid-area:head-l;min-height:36px}.fold-h2{grid-area:head-r;display:inline-flex;align-items:center;gap:6px;min-height:36px;margin:0;padding:0 0 8px;border:0;border-bottom:1px solid var(--line);background:transparent;font-family:var(--serif);font-size:20px;font-weight:600;letter-spacing:-.02em;color:inherit;cursor:pointer;white-space:nowrap;line-height:1.3}.fold-h2:hover{color:var(--accent)}.col-body-left{grid-area:body-l}.col-body-right{grid-area:body-r}.home-cols .chip.more{margin-top:14px;width:100%;display:block;text-align:center}.filters{display:flex;gap:8px;overflow-x:auto;padding-bottom:8px;margin-bottom:16px}.chip{border:1px solid var(--line);background:var(--card);color:var(--muted);border-radius:999px;padding:8px 16px;font-size:13px;font-weight:500;white-space:nowrap;cursor:pointer;transition:all .2s cubic-bezier(.16,1,.3,1);box-shadow:var(--shadow-sm)}.chip:hover{background:#fff;border-color:var(--accent);color:var(--ink);box-shadow:var(--shadow-md)}.chip.on{background:var(--olive);border-color:var(--olive);color:#fff;box-shadow:none}.list{display:grid;gap:12px}.item-link,.kanban-card{display:block;background:var(--card);border:1px solid var(--line);border-radius:var(--radius-md);padding:16px 20px;transition:all .25s cubic-bezier(.16,1,.3,1);box-shadow:var(--shadow-sm)}.item-link>a{display:block}.item-link:hover,.kanban-card:hover{transform:translateY(-2px);border-color:var(--accent);background:#fff;box-shadow:var(--shadow-md)}.item-link strong,.kanban-card strong{display:block;font-family:var(--serif);font-size:17px;font-weight:600;line-height:1.35;color:var(--ink)}.item-link p,.kanban-card p{margin:6px 0 0;color:var(--muted);font-size:14px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.empty{color:var(--muted);padding:32px 12px;text-align:center;font-style:italic;font-size:14px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-md);padding:20px;box-shadow:var(--shadow-sm)}.card input:not([type=checkbox]):not([type=file]),select{display:block;width:100%;border:1px solid var(--line);border-radius:var(--radius-sm);padding:12px 16px;background:#fff;transition:all .2s ease-in-out}.card input:not([type=checkbox]):not([type=file]):focus,select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-light)}.capture textarea{width:100%;min-height:100px;border:1px solid var(--line);border-radius:var(--radius-sm);padding:14px 16px;background:#fff;font-size:15px;line-height:1.6;resize:vertical;transition:all .2s ease-in-out}.capture textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-light)}.row{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.btn{border:0;background:var(--ink);color:#fff8ee;border-radius:999px;padding:10px 22px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s cubic-bezier(.16,1,.3,1);box-shadow:var(--shadow-sm)}.btn:hover{background:var(--accent);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn:active{transform:translateY(0)}.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--line);box-shadow:none}.btn.ghost:hover{background:#eae3d2;border-color:var(--ink)}.btn.danger{background:#a93c2c}.btn.danger:hover{background:#c34331}.task-list{display:grid;gap:8px;margin:16px 0}.task-row{display:grid;grid-template-columns:32px minmax(0,1fr) 144px auto 44px;gap:8px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:var(--radius-sm);padding:6px 12px;transition:all .2s ease-in-out;box-shadow:var(--shadow-sm)}.task-row:hover{background:#fff;border-color:var(--accent);box-shadow:var(--shadow-md)}.task-row.done{opacity:.75}.task-row.done .task-title{text-decoration:line-through;color:var(--muted)}.task-row.overdue{border-color:#e4bebe;background:#fdf5f5}.task-row.overdue:hover{background:#fff;border-color:#a93c2c}.task-row.overdue .task-when{color:#a93c2c;font-weight:500}.task-when{white-space:nowrap;font-size:13px;color:var(--muted)}.task-row input[type=checkbox]{appearance:none;-webkit-appearance:none;width:20px;height:20px;border:2px solid var(--line);border-radius:6px;background:#fff;cursor:pointer;display:grid;place-content:center;transition:all .15s ease-in-out}.task-row input[type=checkbox]:hover{border-color:var(--accent);background:var(--accent-light)}.task-row input[type=checkbox]:checked{background:var(--olive);border-color:var(--olive)}.task-row input[type=checkbox]:checked:before{content:"✓";color:#fff;font-size:13px;font-weight:700}.task-list .task-row input.task-title,.task-list .task-row input[type=date]{border:0;background:transparent;border-radius:6px;padding:8px;min-width:0}.task-list .task-row input.task-title:focus,.task-list .task-row input[type=date]:focus{background:#fff;box-shadow:inset 0 0 0 2px var(--line);outline:none}.board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:start;margin-top:20px}.column{background:#fbf9f380;border:1px dashed var(--line);border-radius:var(--radius-md);padding:14px;min-height:220px}.column h3{margin:4px 8px 14px;font-size:15px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.05em}.kanban-card{margin-bottom:12px;cursor:grab}.kanban-card:active{cursor:grabbing}.editor label{display:block;font-size:12px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin:18px 0 6px}.editor>input.title-field{font-family:var(--serif);font-size:30px;font-weight:600;border:0;border-bottom:2px solid var(--line);border-radius:0;padding:8px 0;background:transparent;width:100%;margin-bottom:24px;box-shadow:none;transition:border-color .2s ease}.editor>input.title-field:focus{border-bottom-color:var(--accent);box-shadow:none;background:transparent;outline:none}.editor select{width:100%;border:1px solid var(--line);border-radius:var(--radius-sm);padding:12px 16px;background:#fff;cursor:pointer}.editor textarea{display:block;width:100%;min-height:240px;line-height:1.6}.editor textarea.short{min-height:110px}.editor textarea.llm-sheet{min-height:calc(100vh - 220px);padding:28px;background:#fff;font-size:18px;line-height:1.7;resize:vertical}.related{display:grid;gap:8px;margin-top:10px}.related label{margin:0;color:var(--ink);font-size:14px;display:flex;gap:10px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:var(--radius-sm);padding:10px 14px;cursor:pointer;transition:all .15s ease}.related label:hover{background:#fff;border-color:var(--accent)}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:20px 0}.stat{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-md);padding:18px;box-shadow:var(--shadow-sm)}.stat b{display:block;font-size:28px;font-family:var(--serif);color:var(--accent);line-height:1.2}.stat span{color:var(--muted);font-size:13px;font-weight:500}.note-blocks{display:grid;gap:16px;margin-top:16px}.note-block{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-md);padding:18px;box-shadow:var(--shadow-sm);transition:all .25s cubic-bezier(.16,1,.3,1)}.note-block:focus-within{border-color:var(--accent);background:#fff;box-shadow:var(--shadow-md)}.note-block textarea{width:100%;min-height:120px;border:0;border-radius:0;padding:0;background:transparent;font-size:15px;line-height:1.6;resize:vertical;box-shadow:none}.note-block textarea:focus{outline:none;border:0;box-shadow:none;background:transparent}.note-img{display:block;width:100%;max-height:480px;object-fit:contain;border-radius:var(--radius-sm);background:#f1ebd9;border:1px solid var(--line)}.note-img.wait{min-height:100px;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:14px;font-style:italic;border-radius:var(--radius-sm)}.block-tools{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;border-top:1px solid var(--line);padding-top:12px}.graph{width:100%;height:480px;display:block;background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);cursor:pointer;box-shadow:var(--shadow-md)}.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:16px;margin-top:8px}.poster-card{display:block;background:var(--card);border:1px solid var(--line);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm);transition:all .2s cubic-bezier(.16,1,.3,1)}.poster-card:hover{transform:translateY(-2px);border-color:var(--accent);box-shadow:var(--shadow-md)}.poster-card strong{display:block;font-family:var(--serif);font-size:14px;font-weight:600;line-height:1.3;padding:10px 10px 12px}.llm-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;margin-top:8px}.llm-tile{display:flex;flex-direction:column;justify-content:flex-end;min-height:160px;padding:22px 22px 20px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);transition:all .2s cubic-bezier(.16,1,.3,1)}.llm-tile:hover{transform:translateY(-2px);border-color:var(--accent);box-shadow:var(--shadow-md)}.llm-tile strong{font-family:var(--serif);font-size:24px;font-weight:600;line-height:1.25}.llm-tile .meta{margin-top:10px}.poster{display:block;width:100%;aspect-ratio:2 / 3;object-fit:cover;background:#efe6d6}.poster.empty,.poster.wait{display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:12px;font-style:italic}.editor-poster{max-width:180px;border-radius:var(--radius-sm);border:1px solid var(--line);margin-bottom:8px}.movie-list{display:grid;gap:12px}.movie-card{display:grid;grid-template-columns:88px minmax(0,1fr);gap:14px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius-md);padding:12px;box-shadow:var(--shadow-sm)}.movie-card .poster{border-radius:8px}.movie-card strong{font-family:var(--serif);font-size:18px}.movie-meta-line{margin:6px 0 0;font-size:13px;color:var(--muted)}.movie-meta-line a{color:var(--ink);text-decoration:underline;text-underline-offset:2px}.movie-rating{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:6px;font-size:13px}.movie-rating .stars{letter-spacing:1px;color:var(--accent);font-size:12px}.cal-page{--cal-bg: #ffffff;--cal-fg: #111111;--cal-muted: #8a8a8a;--cal-line: #e8e8e8;--cal-card: #ffffff;--cal-weekend: #c45c4a;background:var(--cal-bg);color:var(--cal-fg);border:1px solid var(--cal-line);border-radius:24px;padding:18px 16px 28px;min-height:70vh;font-family:var(--sans)}.cal-page h1{font-family:var(--sans);color:inherit}.cal-head{display:grid;grid-template-columns:40px minmax(0,1fr) 40px 40px;align-items:center;gap:4px;margin-bottom:18px}.cal-title{margin:0;text-align:center;font-size:22px;font-weight:700;letter-spacing:-.03em}.cal-head-spacer{width:40px;height:40px}.cal-nav-btn{width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border:0;background:transparent;color:inherit;border-radius:12px;cursor:pointer}.cal-nav-btn:hover{background:#f2f2f2}.cal-views-btn{justify-self:end}.cal-weekdays,.cal-grid{display:grid;grid-template-columns:repeat(7,1fr)}.cal-weekdays{margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid var(--cal-line);text-align:center;font-size:12px;font-weight:600;letter-spacing:.04em;color:var(--cal-fg)}.cal-grid{gap:4px 0}.cal-cell{position:relative;height:48px;border:0;background:transparent;color:inherit;font-size:16px;cursor:pointer;border-radius:0}.cal-cell.out{color:#c4c4c4}.cal-weekdays .cal-weekend,.cal-cell.cal-weekend:not(.out){color:var(--cal-weekend)}.cal-day-card.cal-weekend .cal-day-head,.cal-week-day.cal-weekend .cal-week-name,.cal-week-day.cal-weekend .cal-week-date{color:var(--cal-weekend)}.cal-cell.today:not(.on):after{content:"";position:absolute;inset:6px;border:1.5px solid currentColor;border-radius:50%;pointer-events:none}.cal-cell.on{color:var(--cal-fg);box-shadow:inset 0 0 0 2.5px var(--cal-fg);border-radius:6px}.cal-cell.on.cal-weekend{color:var(--cal-weekend);box-shadow:inset 0 0 0 2.5px var(--cal-weekend)}.cal-cell.mark:before{content:"";position:absolute;left:50%;bottom:7px;width:12px;height:1.5px;background:currentColor;transform:translate(-50%)}.cal-day-card,.cal-week-day{margin-top:18px;padding:16px 16px 12px;background:var(--cal-card);border:1px solid var(--cal-line);border-radius:18px}.cal-day-head,.cal-week-line{display:flex;align-items:center;gap:8px;width:100%;margin:0;padding:0;border:0;background:transparent;color:inherit;font:inherit;font-size:13px;font-weight:700;letter-spacing:.04em;cursor:pointer;text-align:left}.cal-day-name,.cal-week-name,.cal-week-date{display:inline-flex;align-items:center;gap:6px;margin:0;padding:0;border:0;background:transparent;color:inherit;font:inherit;letter-spacing:inherit;cursor:pointer}.cal-day-head span,.cal-week-date{margin-left:auto}.cal-plus{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border:0;background:transparent;color:inherit;cursor:pointer;border-radius:8px}.cal-plus:hover,.cal-day-name:hover,.cal-week-name:hover{opacity:.75}.cal-week{display:grid;gap:10px}.cal-week-day{margin-top:0}.cal-week-count{margin:10px 0 4px;padding:0;border:0;background:transparent;color:var(--cal-muted);font-size:13px;cursor:pointer;text-align:left}.cal-rows{display:grid;gap:4px;margin-top:12px}.cal-row{display:grid;grid-template-columns:minmax(0,1fr) 32px;align-items:center;gap:4px}.cal-row.done .cal-row-link span{text-decoration:line-through;color:var(--cal-muted)}.cal-row-link{display:flex;align-items:center;gap:8px;min-width:0;padding:8px 0;color:inherit}.cal-row-link span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-mark{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border:0;background:transparent;color:var(--cal-muted);cursor:pointer;border-radius:50%}.cal-row.done .cal-mark{color:var(--cal-fg)}.cal-add{width:100%;margin-top:8px;padding:10px 0;border:0;border-bottom:1px solid var(--cal-line);background:transparent;color:var(--cal-fg);border-radius:0}.cal-add:focus{outline:none;border-bottom-color:var(--cal-fg)}.cal-add::placeholder{color:#b0b0b0}.cal-empty{margin:8px 0 4px;color:var(--cal-muted);font-size:14px}.cal-list{display:grid;gap:10px}.cal-switch-back{position:fixed;inset:0;z-index:1200;display:flex;align-items:center;justify-content:center;padding:24px;background:#00000047}.cal-switch{width:min(320px,100%);display:grid;grid-template-columns:1fr 1fr;background:#fff;color:#111;border-radius:22px;overflow:hidden;border:1px solid #e6e6e6}.cal-switch button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:120px;border:0;background:transparent;color:inherit;font-size:14px;cursor:pointer;border-right:1px solid #ececec;border-bottom:1px solid #ececec}.cal-switch button:nth-child(2n){border-right:0}.cal-switch button:nth-child(n+3){border-bottom:0}.cal-switch button.on{background:#f4f4f4}.cal-switch button:hover{background:#f7f7f7}.chip-x{border:0;background:transparent;color:inherit;cursor:pointer;margin-left:4px;padding:0 2px;font-size:14px}.rating-10{flex-wrap:wrap}@media(max-width:760px){.stats,.board{grid-template-columns:1fr}.home-cols,.home-cols.bases-closed{grid-template-columns:1fr;grid-template-areas:"body-l" "head-r" "body-r"}.home-cols.bases-closed{grid-template-areas:"body-l" "head-r"}.fold-h2{margin-top:8px}.col-h-left{display:none}.app{padding:20px 16px 110px}h1{font-size:30px}.cal-title{font-size:18px}.cal-cell{height:42px;font-size:15px}.task-row{grid-template-columns:32px minmax(0,1fr) 40px;gap:4px}.task-row input[type=date],.task-when{grid-column:2}.movie-card{grid-template-columns:72px minmax(0,1fr)}}
