:root{color-scheme:light;--plum:#5e3b76;--rose:#a45c77;--tint:#e8d8f2;--paper:#fffdfa;--border:#e9e0e8;--ink:#4a3556;--muted:#796a80}*{box-sizing:border-box}body{margin:0;padding:24px;background:#f8f0f4;color:var(--ink);font-family:Manrope,system-ui,sans-serif;font-size:13px}button,input,select,textarea{font:inherit;color:inherit}button,a{cursor:pointer}button{border:1px solid var(--border);background:#fffdfa;padding:10px 14px;border-radius:9px}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid #bda2d2;outline-offset:3px}.planner-app{max-width:1250px;margin:auto;display:grid;grid-template-columns:180px minmax(0,1fr);border-radius:22px;border:1px solid var(--border);overflow:hidden;background:#fff9f1}aside{padding:24px 16px;background:linear-gradient(#fffdfa,#f4eaf6);border-right:1px solid var(--border)}.brand{display:flex;flex-direction:column;align-items:center;text-decoration:none}.brand img{width:76px;height:90px;object-fit:contain}.wordmark{display:flex;flex-direction:column;align-items:center;margin-top:-12px;line-height:1.15}.wordmark b{font-size:22px;font-weight:800;color:var(--plum)}.wordmark span{font-size:17px;font-weight:600;color:var(--rose);margin-top:3px}.side-caption{font-size:10px;letter-spacing:1.3px;margin:34px 0 14px;color:var(--muted)}nav{display:grid;gap:7px}nav button{text-align:left;background:transparent;border:0;padding:12px}button[aria-pressed=true]{background:var(--tint);color:var(--plum);font-weight:600}.back{display:block;margin-top:32px;color:var(--rose);font-size:11px;text-decoration:none}.side-note{font-size:12px;text-align:center;color:var(--rose);margin-top:50px;line-height:1.8}main{padding:28px;min-width:0}header{display:flex;justify-content:space-between;gap:16px;align-items:center;flex-wrap:wrap}.eyebrow{font-size:10px;font-weight:800;letter-spacing:1.8px;color:var(--rose)}h1{font-size:28px;letter-spacing:-1px;margin:8px 0;color:var(--plum)}header p{color:var(--muted);margin:0}.actions{display:flex;gap:8px;flex-wrap:wrap}.primary{background:var(--plum);border-color:var(--plum);color:white}.options{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap;margin:24px 0 22px}.options label{font-size:11px;color:var(--muted);display:grid;gap:6px}input,select{background:#fffdfa;border:1px solid var(--border);padding:9px 12px;border-radius:8px;min-width:0}#save-status{margin-left:auto;font-size:11px;color:var(--muted);padding:10px 0}.book-stage{display:flex;gap:6px;align-items:flex-start}.book{flex:1;min-width:0;position:relative;background:var(--tint);border-radius:12px;padding:14px 16px 14px 28px;box-shadow:0 12px 28px #63417712}.rings{position:absolute;left:6px;top:65px;bottom:30px;width:20px;background:radial-gradient(ellipse at center,#fff 18%,#ad9caf 24%,#dfd3df 40%,transparent 46%) 0 0/20px 48px;z-index:1;pointer-events:none}article{padding:30px;background:var(--paper);border:1px solid #dfd0e3;border-radius:5px;min-height:570px}.page-tabs{display:grid;gap:5px;padding-top:28px}.page-tabs button{writing-mode:vertical-rl;padding:12px 8px;background:#f8d6e0;border-radius:0 8px 8px 0;font-size:11px;border:0}.page-tabs button:nth-child(2){background:#d8eee2}.page-tabs button:nth-child(3){background:#fff0c9}.page-tabs button:nth-child(4){background:#e8d8f2}.page-tabs button:nth-child(5){background:#dce6fa}.page-tabs button[aria-pressed=true]{box-shadow:inset -3px 0 var(--plum)}.page-title{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;flex-wrap:wrap;padding-bottom:18px;border-bottom:1px solid var(--border);margin-bottom:22px}.page-title h2{font-size:27px;letter-spacing:-.7px;font-weight:800;color:var(--plum);margin:0 0 5px}.page-title span{font-size:11px;color:var(--muted)}.page-tag{background:var(--tint);padding:7px 11px;border-radius:7px;font-size:10px;letter-spacing:.6px;color:var(--plum)}.columns{display:grid;grid-template-columns:1.1fr 1fr;gap:20px}.section-label{font-size:10px;font-weight:800;letter-spacing:1px;color:var(--rose);margin:0 0 10px}.panel{border:1px solid var(--border);border-radius:10px;padding:15px;margin-bottom:16px}.panel.tint{background:color-mix(in srgb,var(--tint) 28%,white)}textarea{resize:vertical;width:100%;display:block;border:0;border-bottom:1px solid var(--border);background:repeating-linear-gradient(transparent,transparent 27px,#e9e0e8 28px);background-position:0 4px;line-height:28px;min-height:100px;padding:0 3px;border-radius:0;font-size:12px}textarea::placeholder,input::placeholder{color:#a497ab}.priority{display:flex;gap:10px;align-items:center;margin-bottom:10px}.priority span{background:var(--tint);width:23px;height:23px;border-radius:50%;display:grid;place-items:center;font-size:11px;flex-shrink:0}.priority input{border:0;border-bottom:1px solid var(--border);border-radius:0;background:transparent;width:100%;padding:7px 0;font-size:12px}.schedule-row{display:grid;grid-template-columns:44px 1fr;align-items:center;font-size:10px;color:var(--muted);gap:8px}.schedule-row input{border:0;border-bottom:1px solid var(--border);border-radius:0;font-size:12px;padding:10px 0;width:100%;background:transparent}.small-note{padding:10px 12px;background:#fff0c9;display:inline-block;color:#76573e;font-size:11px;transform:rotate(-2deg);margin-top:10px}.check-row{display:flex;gap:10px;align-items:center;margin-bottom:8px}.check-row input[type=checkbox]{accent-color:var(--plum);width:16px;height:16px}.check-row input[type=text]{border:0;border-bottom:1px solid var(--border);border-radius:0;flex:1;width:100%;padding:5px 0;background:transparent;font-size:12px}.days{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.day{border:1px solid var(--border);border-radius:8px;padding:12px;min-width:0}.day h3{margin:-12px -12px 10px;padding:9px 12px;background:#f8d6e0;font-size:11px;border-radius:8px 8px 0 0;font-weight:600}.day:nth-child(2n) h3{background:#d8eee2}.day:nth-child(3n) h3{background:#e8d8f2}.day textarea{min-height:85px}.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.calendar .weekday{font-size:10px;text-align:center;padding:6px 0;font-weight:600}.calendar .cell{border:1px solid var(--border);min-height:70px;padding:7px 5px;border-radius:4px;min-width:0}.cell span{font-size:11px;color:var(--rose)}.cell input{width:100%;border:0;padding:5px 0;background:transparent;font-size:10px;border-radius:0}.cell.empty{border:0;background:#f7f3f5}.moods{display:flex;gap:7px;flex-wrap:wrap}.moods button{font-size:11px;padding:8px 11px}.journal-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.journal-grid .wide{grid-column:1/-1}.cover{text-align:center;display:grid;justify-items:center;align-content:center;min-height:490px;background:linear-gradient(160deg,#fff9f1,var(--tint));border-radius:8px;padding:24px}.cover img{width:150px;height:180px;object-fit:contain}.cover input{font-size:28px;font-weight:800;color:var(--plum);width:100%;text-align:center;border:0;background:transparent;padding:16px 0}.cover .owner{font-size:13px;font-weight:400}.cover p{font-size:12px;color:var(--rose)}.habit-table{width:100%;border-collapse:collapse;font-size:11px}.habit-table th,.habit-table td{padding:12px 5px;border-bottom:1px solid var(--border);text-align:center}.habit-table th:first-child,.habit-table td:first-child{text-align:left}.habit-table input[type=text]{width:100%;min-width:75px;border:0;padding:5px;background:transparent;font-size:11px}.habit-table input[type=checkbox]{accent-color:var(--plum);width:16px;height:16px}footer{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:10px;color:var(--muted);margin-top:20px}
@media(max-width:900px){.planner-app{grid-template-columns:145px minmax(0,1fr)}main{padding:20px}.columns,.journal-grid{grid-template-columns:1fr}article{padding:22px}.journal-grid .wide{grid-column:auto}}
@media(max-width:600px){body{padding:10px}.planner-app{grid-template-columns:1fr}aside{padding:12px;border-right:0;border-bottom:1px solid var(--border)}.brand{flex-direction:row;gap:8px}.brand img{width:55px;height:65px}.wordmark{align-items:flex-start;margin-top:0}.side-caption,.side-note,.back{display:none}nav{display:flex;flex-wrap:wrap;gap:3px;margin-top:12px}nav button{padding:10px;font-size:11px}main{padding:15px}h1{font-size:24px}.options{gap:10px}.options input,.options select{font-size:16px;max-width:100%}#save-status{margin-left:0;padding:0}.book-stage{flex-direction:column-reverse}.page-tabs{display:flex;flex-wrap:wrap;padding-top:0}.page-tabs button{writing-mode:initial;border-radius:6px;padding:10px}.book{width:100%;padding:10px 10px 10px 22px}article{padding:15px;min-height:0}.rings{left:1px}.page-title h2{font-size:23px}.calendar .cell{min-height:58px;padding:5px 3px}.cell input{font-size:10px}.habit-table th,.habit-table td{padding:10px 2px}.days{grid-template-columns:1fr}textarea,input{font-size:16px}}
:root{--ink:#35213f;--muted:#594760;--border:#d7c9d9}
.section-label{color:#43264f;font-size:11px;font-weight:800;letter-spacing:.6px}
.page-title h2,h1{color:#43264f}
.page-title span,.options label,.side-caption,footer,header p{color:#594760}
.page-tag{color:#43264f;font-weight:800}
.calendar .weekday{color:#43264f;font-size:11px;font-weight:800}
.cell span{color:#43264f;font-size:13px;font-weight:800}
.calendar .cell{border-color:#c9b9cf}
.priority span{color:#43264f;font-weight:800}
.day h3{color:#43264f;font-weight:800}
.schedule-row{color:#50365c;font-weight:600}
.habit-table th{color:#43264f;font-weight:800}
.habit-table input[type=text],.cell input,.schedule-row input,.priority input,.check-row input[type=text],textarea{color:#35213f;font-weight:600}
textarea::placeholder,input::placeholder{color:#736179;opacity:1;font-weight:400}
textarea{background-image:repeating-linear-gradient(transparent,transparent 27px,#d7c9d9 28px)}
.moods button{color:#50365c;font-weight:600}
.small-note{color:#5b3f22;font-weight:600}
.eyebrow{color:#774052}
article{position:relative}
#sticker-tray{background:#fffdfa;border:1px solid #d7c9d9;border-radius:14px;padding:18px;margin-bottom:18px}
#sticker-tray[hidden]{display:none}
.sticker-top,.sticker-tools{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.sticker-top label,.sticker-tools label{display:flex;align-items:center;gap:8px;font-size:11px}
#sticker-catalog{display:grid;grid-template-columns:repeat(auto-fill,minmax(95px,1fr));gap:10px;margin:16px 0}
.sticker-choice{background:var(--sticker-color);border:1px solid #dacddd;min-height:55px;font-weight:800;font-size:11px;color:#43264f;padding:10px}
.sticker-choice.mascot{display:flex;flex-direction:column;align-items:center;gap:5px}
.sticker-choice img{width:38px;height:45px;object-fit:contain}
.sticker-choice.decor{font-size:28px}
.sticker-tools{border-top:1px solid #e8d8f2;padding-top:12px;font-size:11px;color:#594760}
.sticker-tools input[type=range]{max-width:110px;padding:0;accent-color:#5e3b76}
.sticker-tools button:disabled{opacity:.5;cursor:default}
.sticker-layer{position:absolute;inset:0;pointer-events:none;z-index:2;overflow:hidden;border-radius:5px}
.placed-sticker{position:absolute;pointer-events:auto;background:var(--sticker-color);border:2px solid #fffdfa;padding:8px;border-radius:10px;box-shadow:0 3px 6px #43264f18;touch-action:none;user-select:none;font-weight:800;color:#43264f;cursor:grab;line-height:1.2;max-width:80%}
.placed-sticker:active{cursor:grabbing}
.placed-sticker[aria-pressed=true]{background:var(--sticker-color)}
.placed-sticker.mascot{display:flex;flex-direction:column;align-items:center;gap:5px}
.placed-sticker img{width:70%;height:auto;pointer-events:none}
.placed-sticker span{pointer-events:none}
.sticker-art{display:block;width:100%;background-image:url('assets/planner-stickers.png');background-repeat:no-repeat;pointer-events:none}
.sticker-choice.illustrated{background:#fff9f1;padding:8px;min-height:95px;display:flex;align-items:center;justify-content:center}
.sticker-choice.illustrated:hover{background:#f2e8f6;border-color:#a88dbb}
.sticker-choice.illustrated .sticker-art{width:85px;max-width:100%}
.placed-sticker.illustrated,.placed-sticker.illustrated[aria-pressed=true]{padding:0;border:0;background:transparent;box-shadow:none;border-radius:8px}
@media print{#sticker-tray,#sticker-toggle{display:none!important}.placed-sticker{display:flex!important;justify-content:center;print-color-adjust:exact;-webkit-print-color-adjust:exact;outline:none!important;box-shadow:none}.sticker-layer{overflow:visible}}
.habit-table tbody tr:nth-child(1){--check-pastel:#f4bed0}
.habit-table tbody tr:nth-child(2){--check-pastel:#bfe4ce}
.habit-table tbody tr:nth-child(3){--check-pastel:#d6bfea}
.habit-table tbody tr:nth-child(4){--check-pastel:#f6d8ae}
.habit-table tbody tr:nth-child(5){--check-pastel:#bfd3f2}
.habit-table input[type=checkbox]{appearance:none;-webkit-appearance:none;width:20px;height:20px;padding:0;margin:0;vertical-align:middle;border:1px solid #aa96b3;border-radius:5px;background:color-mix(in srgb,var(--check-pastel) 30%,white);display:inline-grid;place-content:center;cursor:pointer}
.habit-table input[type=checkbox]:checked{background:var(--check-pastel);border-color:#8d759a}
.habit-table input[type=checkbox]::before{content:"";width:6px;height:11px;border:solid #43264f;border-width:0 2.5px 2.5px 0;transform:translateY(-1px) rotate(45deg);visibility:hidden}
.habit-table input[type=checkbox]:checked::before{visibility:visible}
.habit-table input[type=checkbox]:hover{outline:2px solid var(--check-pastel);outline-offset:2px}
@media print{.habit-table input[type=checkbox]{print-color-adjust:exact;-webkit-print-color-adjust:exact}}
@media print{body{padding:0;background:white}aside,header,.options,.page-tabs,footer,.rings{display:none!important}.planner-app,main,.book-stage,.book{display:block;margin:0;padding:0;border:0;box-shadow:none;background:white}article{min-height:0;border:0;padding:12mm;print-color-adjust:exact;-webkit-print-color-adjust:exact}textarea{resize:none}button{display:none}.moods button[aria-pressed=true]{display:inline-block}.calendar .cell{min-height:90px}.columns,.journal-grid{grid-template-columns:1fr 1fr}.days{grid-template-columns:1fr 1fr}.panel,.day{break-inside:avoid}}
/* Lined notebook and editable checklist pages */
.notebook-tools{display:flex;justify-content:flex-end;margin-bottom:16px}.notebook-tools label{display:flex;align-items:center;gap:10px;font-weight:600}
#page>input[data-field=notebookTitle],#page>input[data-field=checklistTitle]{width:100%;font-size:18px;font-weight:600;margin-bottom:18px;border:0;border-bottom:1px solid var(--border);background:transparent;border-radius:0}
.notebook-paper{display:grid;grid-template-columns:minmax(0,1fr);gap:24px}.notebook-paper.two-columns{grid-template-columns:repeat(2,minmax(0,1fr))}.notebook-paper>div{min-width:0;background:linear-gradient(to right,transparent 23px,#eab9c6 23px,#eab9c6 24px,transparent 24px);border-top:1px solid var(--border)}.notebook-paper textarea{padding:0 12px 0 36px;min-height:504px;line-height:28px;background:repeating-linear-gradient(transparent 0,transparent 27px,#d7c9d9 27px,#d7c9d9 28px);background-position:0 0;border:0;color:var(--ink);font-size:13px}
.notebook-checklist{margin-bottom:20px}.checklist-item{display:flex;align-items:center;gap:12px;min-height:52px;border-bottom:1px solid var(--border)}.checklist-item input[type=text]{flex:1;min-width:0;border:0;background:transparent;padding:12px 0;border-radius:0}.checklist-item input[type=checkbox]{appearance:none;width:22px;height:22px;flex-shrink:0;padding:0;border:1px solid #917b9f;background:#eadcf4;border-radius:6px;display:grid;place-content:center;cursor:pointer}.checklist-item:nth-child(3n+2) input[type=checkbox]{background:#d8eee2}.checklist-item:nth-child(3n) input[type=checkbox]{background:#f8d6e0}.checklist-item input[type=checkbox]:checked::after{content:'';width:6px;height:11px;border:solid #5e3b76;border-width:0 2px 2px 0;transform:rotate(45deg);margin-top:-3px}.checklist-item:has(input:checked) input[type=text]{text-decoration:line-through;color:#736179}.checklist-item button{border:0;background:transparent;font-size:20px;color:#a45c77;padding:5px 10px}.page-tabs button:nth-child(6){background:#ffdfca}.page-tabs button:nth-child(7){background:#e5edcf}
@media print{.notebook-tools,#add-checklist-task,.checklist-item button{display:none!important}.notebook-paper textarea{resize:none}}
