.photo-album{border-top:1px dashed #b8b6d8;margin:24px 0;padding-top:16px}.photo-album h3{font-size:18px}.photo-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:18px 0}.photo-item{min-width:0;background:#f6ecf8;border:1px solid #beb4d9;border-radius:13px 19px 12px 17px;padding:12px;text-align:center;box-shadow:3px 4px #e8dcec}.photo-item:nth-child(even){background:#eaf5ed}.photo-item p{font-size:12px;white-space:pre-wrap}.photo-sticker-button{display:block;width:100%;height:145px;padding:2px;border:0;background:transparent}.photo-sticker-button img{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(1px 3px 2px #59506924);transition:transform .18s ease}.photo-sticker-button:hover img{transform:translateY(-3px) rotate(-1deg)}.photo-actions{display:flex;flex-wrap:wrap;gap:4px 12px;justify-content:center}.photo-actions button{font-size:11px;padding:5px 0}.photo-editor{border:1px solid #00a2d4;border-radius:14px 20px 16px 13px;background:#fffbed;padding:16px;margin:20px 0;scroll-margin-top:130px}.photo-editor h3{margin-top:0}.photo-tools{display:flex;flex-wrap:wrap;gap:8px}.photo-tools button{font-size:12px;padding:7px 9px}.photo-editor canvas{display:block;width:100%;height:330px;border:1px solid #aaa3bf;border-radius:10px;touch-action:none;cursor:crosshair;background:#e9e4ee}.photo-editor input[type=range]{padding:8px 0;box-shadow:none;background:transparent}.photo-checker{padding:16px;border:1px solid #d0cbd8;border-radius:12px;background-color:#f4f0f7;background-image:conic-gradient(#e7e1ed 25%,transparent 0 50%,#e7e1ed 0 75%,transparent 0);background-size:20px 20px}.photo-checker img{display:block;width:100%;height:270px;object-fit:contain;filter:drop-shadow(1px 3px 2px #594b7126)}.photo-lightbox{background:#eee5f7;border:1px solid #b9b0d6;border-radius:14px;padding:16px;margin:12px 0;text-align:center}.photo-lightbox img{display:block;max-width:100%;max-height:400px;margin:auto;object-fit:contain}.photo-lightbox p{white-space:pre-wrap}.photo-backups{font-size:12px;padding-top:8px}.photo-backups .button-row button{font-size:12px}.photo-import-preview{padding:12px;background:#fff3b5;border-radius:12px;margin:15px 0}.day-photo-thumb{position:absolute;bottom:2px;left:50%;transform:translateX(-50%);width:25px;height:21px;object-fit:contain;pointer-events:none}.day-button.has-photo{padding-bottom:17px}.day-button.has-photo.has-daily{border:2px solid #a88a37;background:#fff4a3}.day-button.has-photo.has-daily:after{left:2px}.day-button.has-photo.has-question:before{right:2px}#photo-status:empty{display:none}@media(max-width:450px){.photo-editor{padding:10px}.photo-editor canvas{height:285px}.photo-list{gap:9px}.photo-item{padding:8px}.photo-sticker-button{height:120px}.day-photo-thumb{width:20px;height:17px}.day-button.has-photo{padding-top:1px;padding-bottom:15px}}

.photo-peel-stage{width:100%;height:340px;touch-action:none}.photo-peel-stage canvas{display:block;max-width:100%;touch-action:none}.photo-peel-stage:not([data-ready]){position:absolute;visibility:hidden;width:280px;height:290px;pointer-events:none}.photo-peel-stage:not([data-ready]) canvas{visibility:hidden}.photo-peel-controls{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.photo-peel-controls button{font-size:12px;padding:8px 12px}.photo-peel-controls [aria-pressed=true]{background:#fff3b5}.photo-lightbox .peel-fallback{max-height:340px}.photo-peel-controls+*{margin-top:0}@media(max-width:450px){.photo-peel-stage{height:290px}}
.photo-methods{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 8px}.photo-methods button{font-size:13px;padding:10px 12px;flex:1;white-space:nowrap}.photo-methods [aria-pressed=true],.photo-tools [aria-pressed=true]{background:#ffe5f2;border-color:#203cb1;box-shadow:2px 3px #e1d0ef}.photo-methods [aria-busy=true]{background:#e4f5fa}#photo-auto-status{min-height:1.5em}#photo-brush-tools{background:#f6eefb;border-radius:10px;padding:10px;margin:10px 0}#photo-brush-tools label{font-size:12px;margin-top:8px}.photo-editor canvas{background-color:#eee6f2}@media(max-width:450px){.photo-methods{gap:5px}.photo-methods button{font-size:12px;padding:9px 7px}}
.photo-placement{background:#fff9e5;box-shadow:5px 6px #e9d6f3;border:2px solid #1d39ab;scroll-margin-top:120px}.photo-placement h3{font-size:19px;margin:5px 0 14px}.photo-placement .photo-peel-stage{background:repeating-linear-gradient(-10deg,#faf4e9 0 18px,#f5eede 18px 19px);border-radius:16px}.photo-sticker-appears{animation:photo-appears .3s ease-out both}.photo-just-placed{animation:photo-lands .5s cubic-bezier(.2,.8,.2,1) both;outline:2px solid #00a4cf;outline-offset:3px}@keyframes photo-appears{from{opacity:0;transform:scale(.95) translateY(8px)}to{opacity:1;transform:none}}@keyframes photo-lands{0%{opacity:.2;transform:translateY(-35px) rotate(-5deg) scale(1.08)}65%{opacity:1;transform:translateY(2px) rotate(1deg)}100%{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.photo-sticker-appears,.photo-just-placed{animation:none}}
.photo-editor.photo-awaiting-placement,#editor.photo-awaiting-placement{display:none}

/* The day is a little paper box; date navigation stays outside the sticker buttons. */
#dialog.calendar-wide{width:min(960px,calc(100vw - 24px));max-width:960px}.calendar-view-switch{display:flex;align-items:center;gap:8px;margin:18px 0 5px}.calendar-view-switch button{font-size:13px;padding:8px 15px}.calendar-view-switch [aria-pressed=true]{background:var(--ink);color:white}.calendar-view-switch #calendar-now{margin-left:auto}.calendar-play-hint{margin:0 0 14px}.calendar-grid{align-items:start}.calendar-grid.calendar-week-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}.calendar-day{min-width:0;position:relative;background:#fffef8;border:1.5px solid #c9bce4;border-radius:16px 19px 14px 17px;padding:7px 5px;box-shadow:2px 3px #e8ddf1;overflow:hidden}.calendar-week-grid .calendar-day{padding:12px 10px;background:linear-gradient(155deg,#fffef8,#fff8ec);box-shadow:3px 4px #e8ddf1}.calendar-day.today{border:2px solid var(--ink)}.calendar-day.has-daily{background:#fffbd6}.calendar-date{display:flex;align-items:center;gap:5px;flex-wrap:wrap;border:0;background:transparent;padding:2px 4px;font-weight:750;font-size:13px;min-height:32px}.calendar-week-grid .calendar-date{font-size:14px}.calendar-today-label{font-size:9px;color:#6a599d;background:#eee5fa;border-radius:10px;padding:1px 5px}.calendar-day-marks{display:flex;gap:5px;align-items:center;flex-wrap:wrap;min-height:24px;padding:2px 4px;font-size:10px}.calendar-daily-mark{color:#76581a;background:#fff08b;border-radius:6px;padding:2px 5px;font-weight:700}.calendar-question-mark{color:#8471b1}.calendar-observation-mark{color:#368574}.calendar-sticker-stage{position:relative;min-height:64px}.calendar-week-grid .calendar-sticker-stage{min-height:175px}.empty-sticker-stage{display:flex;align-items:center;justify-content:center;text-align:center;color:#a397b7;font-size:12px;line-height:1.8;padding:10px}.calendar-photo-count{display:block;min-height:18px;font-size:10px;color:#7b7792;padding:2px 4px}.calendar-open-day{border:0;border-top:1px dashed #d8cce6;border-radius:0;background:transparent;font-size:11px;width:100%;margin-top:7px;padding:9px 0 1px;text-align:left}.sticker-playground{position:relative;overflow:hidden;isolation:isolate;touch-action:pan-y}.floating-sticker{position:absolute;top:0;left:0;display:block;border:0;padding:0;background:transparent;border-radius:12px;cursor:pointer;touch-action:pan-y;will-change:transform;contain:layout style}.floating-sticker img{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none;filter:drop-shadow(1px 3px 2px #71608330)}.floating-sticker:hover:not(:disabled){filter:none}.floating-sticker:focus-visible{outline:2px dashed #7794c7;outline-offset:0}.floating-sticker.sticker-tapped img{animation:sticker-tap .55s ease-out}.day-sticker-gallery{margin:10px 0 25px;padding:16px;border:1.5px solid #bdb0db;border-radius:20px 16px 22px 17px;background:linear-gradient(150deg,#fffbea,#f7efff);box-shadow:4px 5px #e8daf2}.day-sticker-gallery h3{font-size:18px;margin:0}.day-sticker-gallery p{margin:6px 0 0}.day-sticker-gallery .sticker-playground{min-height:270px}.day-sticker-gallery:has(.photo-just-placed){overflow:hidden}@keyframes sticker-tap{0%{filter:drop-shadow(1px 3px 2px #71608330)}40%{filter:drop-shadow(2px 8px 4px #71608350)}100%{filter:drop-shadow(1px 3px 2px #71608330)}}
@media(max-width:650px){#dialog.calendar-wide{width:calc(100vw - 16px)}.calendar-grid.calendar-week-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.calendar-toolbar h3{font-size:15px}.calendar-day{padding:5px 2px;border-radius:10px}.calendar-date{font-size:11px;padding:2px;gap:1px}.calendar-day-marks{padding:2px;gap:2px}.calendar-photo-count{font-size:8px;padding:2px}.calendar-today-label{font-size:8px;padding:0 2px}.calendar-week-grid .calendar-day{padding:10px 7px}.calendar-week-grid .calendar-date{font-size:12px}.calendar-view-switch button{padding:8px 10px}.calendar-week-grid .calendar-photo-count{font-size:10px}}
@media(prefers-reduced-motion:reduce){.floating-sticker.sticker-tapped img{animation:none}.floating-sticker{will-change:auto}.floating-sticker:active{outline:2px solid #b6cdda}}

.calendar-grid:not(.calendar-week-grid) .calendar-date{min-height:22px}.calendar-grid:not(.calendar-week-grid) .calendar-day-marks{min-height:18px}.calendar-grid:not(.calendar-week-grid) .calendar-sticker-stage{min-height:42px}.calendar-grid:not(.calendar-week-grid) .calendar-photo-count{min-height:14px;line-height:1.2}

.calendar-grid:not(.calendar-week-grid) .calendar-day-marks{position:absolute;right:3px;top:6px;min-height:0;flex-direction:column;gap:0;padding:0}.calendar-grid:not(.calendar-week-grid) .calendar-today-label{display:none}.calendar-grid:not(.calendar-week-grid) .calendar-daily-mark{font-size:8px;padding:0 2px}

/* Daily cards retain their suit color in both calendar and day details. */
.calendar-day.has-daily,.calendar-week-grid .calendar-day.has-daily,.day-record.daily-highlight{background:var(--daily-paper,#fffbd6)}.calendar-daily-mark,.daily-highlight .record-badge{background:var(--daily-accent,#fff08b);color:#25456c}.calendar-card-name{display:table;align-self:flex-start;width:fit-content;max-width:calc(100% - 8px);box-sizing:border-box;border:1px solid var(--daily-accent,#bac6df);border-radius:8px;background:rgba(255,255,255,.58);padding:3px 8px;font-size:12px;font-weight:500;line-height:1.5;margin:5px 4px 0;color:#42578d}.calendar-grid:not(.calendar-week-grid) .calendar-card-name{font-size:9px;line-height:1.4;margin:3px 1px;padding:2px 4px;border-radius:5px;max-width:calc(100% - 2px);overflow-wrap:anywhere}@media(max-width:650px){.calendar-card-name{font-size:11px}.calendar-grid:not(.calendar-week-grid) .calendar-card-name{font-size:9px}}

.calendar-week-grid .calendar-day-marks .calendar-card-name{display:inline-block;align-self:auto;font-size:10px;line-height:1.5;padding:2px 5px;margin:0;max-width:100%}
