:root{font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",Meiryo,sans-serif;color:#273b32;background:#f7f5ef;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--ink:#273b32;--muted:#84908a;--green:#315d4a;--accent:#e88a60;--paper:#fffdf9;--edge:#e8e9df;--shadow:0 10px 35px rgba(61,71,50,.045)}
*{box-sizing:border-box}body{margin:0;min-width:320px}button,input{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible{outline:3px solid #eaa17c;outline-offset:3px}button:disabled{opacity:.55;cursor:not-allowed}.app-shell{display:flex;min-height:100vh}.sidebar{width:265px;min-height:100vh;background:#2e5948;color:#fcfbf4;display:flex;flex-direction:column;flex-shrink:0;padding:38px 28px 28px;position:sticky;top:0;height:100vh;overflow:hidden}.brand{display:flex;align-items:center;gap:12px}.brand-mark{width:45px;height:45px;border-radius:15px;background:#efcda9;color:#355743;display:grid;place-items:center;font-size:27px;transform:rotate(-9deg)}.brand-name{font-size:20px;font-weight:800;white-space:nowrap;letter-spacing:.05em}.brand-period{color:#edaa7d}.brand-tag{font-size:9px;color:#a1c3ad;letter-spacing:.22em;margin-top:5px}.sidebar-story{margin-top:125px;position:relative;z-index:0}.eyebrow{font-size:10px;font-weight:750;letter-spacing:.2em}.sidebar-story>.eyebrow{color:#add4bd}.sidebar-story p{font-size:29px;line-height:1.72;letter-spacing:.06em;font-weight:700;margin:20px 0 19px}.sidebar-story p em{font-style:normal;color:#edbe92}.sidebar-story-line{font-size:12px;line-height:2.3;color:#bdd5c4}.story-decoration{display:flex;gap:12px;margin-top:70px;transform:rotate(-12deg);font-size:36px}.story-decoration span{display:grid;place-items:center;width:57px;height:57px;border-radius:19px;background:#47715b;border:1px solid #658874;box-shadow:0 7px 14px #20433545}.story-decoration span:nth-child(2){transform:translateY(17px) rotate(10deg);color:#fae1b1}.story-decoration span:nth-child(3){transform:translateY(-9px) rotate(-7deg)}.sidebar-bottom{margin-top:auto;display:flex;flex-direction:column;gap:14px}.privacy-pill{font-size:10px;display:flex;align-items:center;gap:8px;color:#e4eadf;white-space:nowrap;background:#406958;padding:11px;border-radius:11px}.privacy-dot{width:7px;height:7px;flex:none;border-radius:50%;background:#acdeac}.sidebar-version{color:#96b4a2;font-size:10px;letter-spacing:.05em}.main-content{width:100%;min-width:0;max-width:1760px;margin:0 auto;padding:0 46px}.topbar{height:78px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e5e5dc}.topbar-caption{font-size:10px;letter-spacing:.21em;font-weight:700;color:#9aa49c}.tiny-star{color:#d19470;padding:0 5px}.button{display:inline-flex;gap:8px;justify-content:center;align-items:center;border:0;border-radius:12px;padding:11px 16px;font-size:12px;font-weight:750;white-space:nowrap;transition:transform .15s,background-color .15s}.button:active,.nav-arrow:active,.quick-stamp:active{transform:scale(.96)}.button-quiet{background:#eeeee6;color:#596c5e}.button-quiet:hover{background:#e5e6dc}.mobile-brand{display:none}.page-heading{position:relative;display:flex;justify-content:space-between;align-items:center;margin:38px 0 31px}.eyebrow-green{color:#b17a57}.page-heading h1{font-size:37px;letter-spacing:.045em;line-height:1.4;margin:9px 0 8px;font-weight:850}.page-heading h1 span{color:#e18b66}.page-description{font-size:12px;color:#7f8980;letter-spacing:.02em;line-height:1.8;margin:0}.heading-accent{color:#efbb92;font-size:70px;transform:rotate(12deg);padding-right:16px;user-select:none}.workspace{display:grid;grid-template-columns:minmax(0,1.58fr) minmax(320px,1fr);align-items:start;gap:22px}.calendar-card,.day-card,.backup-card{background:var(--paper);border:1px solid var(--edge);border-radius:20px;box-shadow:var(--shadow)}.calendar-card{padding:26px 24px 17px}.month-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.section-eyebrow{font-size:10px;letter-spacing:.16em;font-weight:750;color:#b5a694}.month-label{font-size:22px;font-weight:850;letter-spacing:.065em;margin:7px 0 0;font-variant-numeric:tabular-nums}.month-controls{display:flex;gap:8px}.nav-arrow{border:1px solid #e7e9e0;color:#647466;border-radius:11px;width:36px;height:36px;background:#faf9f5;font-size:25px;line-height:1;display:grid;place-items:center;padding:0 0 3px}.nav-arrow:hover{background:#edf1e9}.weekday-row{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));text-align:center;padding:0 1px 12px;font-weight:750;font-size:11px;color:#859489}.weekday-row .sunday{color:#dc8c80}.weekday-row .saturday{color:#85a7be}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.calendar-day{min-width:0;height:107px;border:1px solid #eeefe9;background:#faf9f5;border-radius:9px;padding:9px 6px 7px;text-align:left;display:flex;flex-direction:column;gap:8px;color:#354c3d;position:relative;transition:background .12s,border-color .12s}.calendar-day:hover{background:#eef3e9;border-color:#c9d5c8}.calendar-day.outside-month{opacity:.35}.calendar-day.is-selected{background:#edf3e9;border:2px solid #64957a;padding:8px 5px 6px;box-shadow:inset 0 0 0 1px #edf3e9}.calendar-day.is-today .day-number{background:#eab28f;color:#543e31;border-radius:7px;padding:2px 5px;margin:-2px -5px}.calendar-day.is-selected.is-today .day-number{background:#dca57f}.day-number{font-size:12px;font-weight:800;display:flex;align-items:center;gap:3px;white-space:nowrap}.today-label{font-size:6px;letter-spacing:.04em}.calendar-day-events{display:flex;flex-direction:column;gap:3px;min-width:0;width:100%}.mini-event-chip{display:flex;align-items:center;gap:2px;border-radius:5px;font-size:9px;min-width:0;max-width:100%;padding:3px 3px;font-weight:650}.chip-emoji{font-size:11px;flex:none}.chip-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chip-peach,.icon-peach,.stamp-bg-peach{background:#fce7d9}.chip-green,.icon-green,.stamp-bg-green{background:#e6f0dd}.chip-lilac,.icon-lilac,.stamp-bg-lilac{background:#eee6fa}.chip-yellow,.icon-yellow,.stamp-bg-yellow{background:#fff1d6}.chip-brown,.icon-brown,.stamp-bg-brown{background:#f1e8df}.chip-pink,.icon-pink,.stamp-bg-pink{background:#f8e2e7}.chip-sky,.icon-sky,.stamp-bg-sky{background:#e3f2ee}.chip-blue,.icon-blue,.stamp-bg-blue{background:#e1ecfc}.chip-neutral,.icon-neutral{background:#ecece5}.more-events{font-size:9px;font-weight:700;color:#829487;padding-left:3px}.calendar-footer{display:flex;justify-content:space-between;align-items:center;margin-top:18px;padding:15px 2px 2px;border-top:1px solid #eff0e9;gap:10px}.legend{display:flex;gap:13px}.legend span{font-size:10px;color:#839085;display:flex;align-items:center;gap:5px;white-space:nowrap}.legend-mark{width:10px;height:10px;display:inline-block;border-radius:3px}.legend-today{background:#eab28f}.legend-selected{background:#edf3e9;border:1px solid #64957a}.calendar-footer-note{font-size:10px;color:#a6aaa0}.side-column{display:flex;flex-direction:column;gap:20px}.day-card{padding:25px 24px 24px}.day-card-heading{display:flex;justify-content:space-between;align-items:center}.day-card-heading h2{margin:7px 0 4px;font-size:24px;font-weight:850;letter-spacing:.07em}.day-subtitle{font-size:12px;color:#87958c;margin:0}.add-button{border:0;background:#e7a47e;color:#fff;width:44px;height:44px;border-radius:15px;font-size:31px;line-height:1;display:grid;place-items:center;box-shadow:0 5px 10px #e7a47e35}.add-button:hover{background:#dc8c61}.quick-stamps{margin-top:24px}.mini-section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:13px;gap:10px}.mini-section-head h3{font-size:13px;font-weight:850;letter-spacing:.03em;margin:0}.mini-section-head>span{font-size:10px;color:#a1aaa1;white-space:nowrap}.stamp-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px}.quick-stamp{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0;background:none;border:0;padding:0;color:#697a6e}.quick-stamp-symbol{width:100%;max-width:56px;aspect-ratio:1/1;border-radius:12px;display:grid;place-items:center;font-size:21px;border:1px solid #eeeeea;transition:transform .15s,border-color .15s}.quick-stamp:hover .quick-stamp-symbol{transform:translateY(-2px);border-color:#96b29a}.quick-stamp-name{font-size:9px;letter-spacing:-.02em;white-space:nowrap}.day-events{margin-top:27px}.day-event-list{display:flex;flex-direction:column;gap:7px;max-height:360px;overflow:auto}.event-row{width:100%;border:1px solid #ecede6;background:#fffefa;border-radius:12px;padding:10px;display:flex;align-items:center;gap:11px;text-align:left}.event-row:hover{border-color:#b9cec0;background:#fbfcf7}.event-icon{width:41px;height:41px;flex:none;border-radius:11px;display:grid;place-items:center;font-size:22px}.event-row-text{display:flex;flex:1;flex-direction:column;gap:3px;min-width:0}.event-title{color:#364a3f;font-weight:750;font-size:12px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.event-meta{font-size:10px;color:#96a096;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.event-edit-icon{color:#b4bbb3;font-size:14px;padding-right:2px}.empty-state{height:114px;border:1px dashed #dde6d7;border-radius:12px;background:#fafbf6;text-align:center;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:4px}.empty-flower{font-size:26px;color:#9fc1a4;line-height:1}.empty-title{color:#6b8172;font-size:11px;font-weight:800;margin:4px 0 0}.empty-hint{color:#9daa9b;font-size:10px;margin:0}.text-add-button{width:100%;margin-top:13px;border:1px dashed #bfcfbe;background:#f6f9f2;color:#597866;border-radius:11px;padding:12px;text-align:left;font-weight:750;font-size:11px;display:flex;align-items:center;gap:6px}.text-add-button>span:last-child{margin-left:auto}.text-add-button:hover{background:#eef5eb}.text-add-icon{font-size:17px}.backup-card{padding:20px 22px 17px;background:#f8f6ee}.backup-heading{display:flex;align-items:center;gap:12px}.backup-emoji{width:42px;height:42px;display:grid;place-items:center;border-radius:13px;background:#f0e8d9;font-size:23px}.backup-heading h2{font-size:14px;margin:5px 0 0;letter-spacing:.015em}.backup-card p{font-size:11px;color:#7c867c;line-height:1.9;margin:13px 0 14px}.backup-actions{display:flex;gap:9px}.backup-actions .button{flex:1;font-size:11px;padding:11px 7px}.button-export{background:#376750;color:#fff}.button-export:hover{background:#2a5943}.button-import{background:#ffffff;border:1px solid #d7dfd2;color:#536c5c}.button-import:hover{background:#f2f7ee}.backup-caption{text-align:center;color:#a4aba2;font-size:9px;margin-top:12px}.main-footer{padding:25px 0 32px;font-size:9px;letter-spacing:.13em;color:#b1b9ad;display:flex;gap:12px;align-items:center}.main-footer span:last-child{margin-left:auto;font-size:10px;letter-spacing:0}.event-dialog{padding:0;border:1px solid #e5e7df;border-radius:23px;width:min(92vw,535px);max-height:min(92vh,810px);box-shadow:0 25px 90px rgba(20,36,26,.22);background:#fffdf9;color:#273b32;overscroll-behavior:contain}.event-dialog::backdrop{background:rgba(26,48,35,.43);backdrop-filter:blur(3px)}.editor-content{padding:27px}.editor-top{display:flex;justify-content:space-between;align-items:start;gap:12px}.editor-top h2{font-size:23px;margin:7px 0 5px}.editor-date{font-size:11px;color:#8b988c;margin:0}.icon-close{width:35px;height:35px;flex:none;background:#f3f3ee;border:0;border-radius:10px;font-size:25px;color:#75877a;line-height:1}.editor-fields{margin-top:23px}.input-label{font-size:12px;font-weight:800;display:block;margin-bottom:8px}.optional{font-size:10px;font-weight:450;color:#a0a89f}.editor-fields input{width:100%;background:#fff;border:1px solid #dce4d9;border-radius:10px;height:43px;padding:10px 12px;color:#344838;font-size:13px;min-width:0}.editor-fields input::placeholder{color:#abb6ab}.editor-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:17px}.editor-stamps{border:0;padding:0;margin:20px 0 0;min-width:0}.editor-stamp-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px}.editor-stamp{display:flex;flex-direction:column;align-items:center;gap:3px;border:1px solid #e7e9e2;border-radius:11px;background:#fafaf7;color:#6f8174;padding:8px 2px;font-size:10px;min-width:0}.editor-stamp-symbol{font-size:22px}.editor-stamp:hover{border-color:#91b49c}.editor-stamp.active{background:#e7f2e5;border:2px solid #4c8267;padding:7px 1px;color:#28543d;font-weight:800}.editor-hint{font-size:10px;color:#8d998c;margin:15px 0 0;line-height:1.6}.editor-actions{display:flex;justify-content:space-between;align-items:center;gap:10px;border-top:1px solid #e9ece4;margin-top:24px;padding-top:20px}.editor-action-right{display:flex;gap:8px;margin-left:auto}.button-primary{background:#315d4a;color:#fff;font-size:12px}.button-primary:hover{background:#244935}.delete-button{font-size:11px;background:transparent;border:0;color:#ba665e;font-weight:800;padding:8px 0}.delete-button:hover{text-decoration:underline}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);z-index:100;background:#2e5948;color:#fff;border-radius:12px;padding:12px 19px;font-size:12px;box-shadow:0 10px 35px #273b3250;max-width:90vw;text-align:center;line-height:1.6}.toast[hidden]{display:none}.toast-error{background:#ad6258}
@media(min-width:1500px){.main-content{padding:0 62px}.calendar-day{height:121px;padding:11px 8px}.calendar-day.is-selected{padding:10px 7px}.mini-event-chip{font-size:10px;padding:4px 3px}}
@media(max-width:1150px){.sidebar{width:208px;padding:28px 20px}.brand-name{font-size:17px}.sidebar-story{margin-top:100px}.sidebar-story p{font-size:24px}.story-decoration span{width:46px;height:46px;font-size:26px}.main-content{padding:0 24px}.workspace{grid-template-columns:minmax(0,1.4fr) minmax(290px,1fr);gap:14px}.calendar-card{padding:20px 15px 15px}.day-card{padding:21px 17px}.calendar-day{height:95px;padding:6px 4px}.calendar-day.is-selected{padding:5px 3px}.mini-event-chip{font-size:8px}.stamp-grid{gap:5px}.quick-stamp-symbol{font-size:18px}}
@media(max-width:900px){.sidebar{display:none}.main-content{max-width:760px;padding:0 24px}.mobile-brand{display:block;font-size:16px;font-weight:900;letter-spacing:.07em}.mobile-brand-star{display:inline-block;font-size:22px;color:#db916f;vertical-align:-2px}.topbar-caption{display:none}.workspace{grid-template-columns:1fr}.calendar-day{height:104px;padding:8px}.calendar-day.is-selected{padding:7px}.mini-event-chip{font-size:10px}.side-column{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(225px,.85fr);align-items:start;gap:14px}.backup-card{padding:18px}.day-card{padding:21px}.page-heading{margin:27px 0}.page-heading h1{font-size:32px}.heading-accent{font-size:50px}.main-footer{margin-top:4px}}
@media(max-width:650px){.main-content{padding:0 13px}.topbar{height:59px}.topbar .button{font-size:10px;padding:9px 11px}.page-heading{margin:21px 5px 20px}.page-heading h1{font-size:29px;margin:7px 0}.page-description{font-size:11px;line-height:1.7;max-width:275px}.heading-accent{font-size:38px;padding-right:6px}.calendar-card{padding:17px 10px 13px;border-radius:17px}.month-toolbar{padding:0 6px;margin-bottom:20px}.month-label{font-size:21px}.weekday-row{padding-bottom:10px}.calendar-grid{gap:3px}.calendar-day{height:77px;gap:5px;padding:6px 2px;border-radius:6px}.calendar-day.is-selected{padding:5px 1px}.day-number{font-size:11px;padding-left:3px}.calendar-day.is-today .day-number{margin:0;padding:0 3px}.today-label{display:none}.calendar-day-events{gap:3px}.mini-event-chip{padding:2px 2px;justify-content:center;font-size:10px;min-height:20px}.chip-emoji{font-size:13px}.chip-title{display:none}.more-events{font-size:8px;text-align:center;padding:0}.calendar-footer{margin-top:12px;padding-top:12px}.calendar-footer-note{font-size:9px}.side-column{display:flex;gap:13px}.day-card{padding:20px 17px;border-radius:17px}.quick-stamp-symbol{font-size:22px;max-width:72px}.stamp-grid{gap:8px}.quick-stamp-name{font-size:10px}.backup-card{border-radius:17px;padding:19px}.main-footer{padding:17px 2px 29px;flex-direction:column;gap:7px;align-items:center}.main-footer span:last-child{margin-left:0}.event-dialog{width:calc(100vw - 24px);max-height:90dvh;border-radius:18px}.editor-content{padding:20px 17px}.editor-stamp-grid{gap:5px}.editor-stamp{font-size:9px;padding:6px 1px}.editor-stamp.active{padding:5px 0}.editor-stamp-symbol{font-size:20px}.editor-actions{align-items:flex-start}.editor-actions .button{padding:11px 9px;font-size:11px}}
@media(max-width:375px){.calendar-day{height:69px}.calendar-footer-note{display:none}.page-heading h1{font-size:26px}.day-number{font-size:10px}.mini-event-chip{min-height:17px}.chip-emoji{font-size:11px}.stamp-grid{gap:4px}.quick-stamp-symbol{border-radius:10px}.quick-stamp-name{font-size:9px}.editor-stamp-symbol{font-size:18px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
/* v1.1: custom stamps, user emoji in compact calendar, and management dialogs */
[hidden]{display:none!important}
.stamps-manage-link{border:0;background:transparent;color:#47775c;font-weight:800;font-size:10px;padding:5px 0;text-decoration:underline;text-underline-offset:3px;white-space:nowrap}
.stamps-manage-link:hover{color:#d3825d}.editor-manage-link{margin-top:12px;font-size:11px}
.stamp-grid:has(.no-stamps),.editor-stamp-grid:has(.no-stamps){display:block}
.no-stamps{font-size:11px;color:#84968a;line-height:1.7;padding:10px;margin:0}
.stamp-picture{display:block;max-width:87%;max-height:87%;width:100%;height:100%;object-fit:contain}
.chip-emoji .stamp-picture{width:14px;height:14px;max-width:14px;max-height:14px}
.chip-mobile-title{display:none;white-space:nowrap;font-size:13px;line-height:1.1}
.quick-stamp-name,.editor-stamp-label{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.stamps-dialog{width:min(94vw,620px);max-height:87dvh}
.stamp-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:24px 0 14px}
.stamp-count{font-size:11px;color:#8e9c90}
.manage-stamp-list{display:flex;flex-direction:column;gap:8px}
.manage-stamp-row{border:1px solid #e8ebe3;border-radius:12px;background:#fffefa;display:flex;align-items:center;gap:10px;padding:9px}
.manage-stamp-icon{width:44px;height:44px;border-radius:11px;display:grid;place-items:center;font-size:23px;flex:none}
.manage-stamp-details{display:flex;flex-direction:column;min-width:0;flex:1;gap:3px}
.manage-stamp-details strong{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.manage-stamp-details small{font-size:10px;color:#91a093;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.manage-stamp-actions{display:flex;gap:4px;flex:none}
.small-action{border:1px solid #e1e6db;border-radius:8px;color:#526c5b;background:#f6f8f3;font-size:10px;font-weight:750;padding:8px 7px;white-space:nowrap}
.small-action:hover{background:#e7efe5}.arrow-action{font-size:15px;padding:5px 8px}
.danger-action{color:#aa6c65;background:#fff8f5}
.hidden-stamps-section{margin-top:24px;padding-top:17px;border-top:1px solid #e6eae1}
.hidden-stamps-section h3{font-size:13px;margin:0 0 5px}
.hidden-stamps-section p{font-size:10px;color:#89988b;margin:0 0 12px}
.manager-bottom{display:flex;justify-content:flex-end;margin-top:22px}
.stamp-edit-dialog{width:min(92vw,490px)}
.stamp-edit-dialog .editor-fields{display:flex;flex-direction:column;gap:9px}
.stamp-kind-fieldset{border:0;min-width:0;padding:6px 0 0;margin:0;display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.stamp-kind-fieldset legend{margin-bottom:6px}.stamp-kind-fieldset label{display:flex;align-items:center;gap:6px;font-size:12px;color:#617464}
.stamp-kind-fieldset input{width:auto;height:auto;accent-color:#376750}
.stamp-edit-dialog #stamp-image-file{height:auto;border:0;padding:8px 0;background:transparent;font-size:11px}
.field-help{font-size:10px;color:#8b998c;margin:5px 0 6px;line-height:1.6}
.stamp-preview-row{display:flex;align-items:center;gap:15px;margin:5px 0 9px}
.stamp-preview-row .input-label{margin:0}.stamp-preview{width:62px;height:62px;border-radius:15px;border:1px solid #e6e8df;display:grid;place-items:center;font-size:33px;overflow:hidden}
.stamp-color-select{border:1px solid #dce4d9;border-radius:10px;height:43px;padding:9px 12px;background:#fff;color:#344838;font:inherit;font-size:13px}
@media(max-width:650px){
  .mini-event-chip{max-width:100%;gap:1px}
  .chip-mobile-title{display:inline-block;font-size:13px;overflow:hidden;text-overflow:clip}
  .chip-emoji .stamp-picture{width:16px;height:16px;max-width:16px;max-height:16px}
  .stamps-dialog .editor-content{padding:19px 13px}
  .manage-stamp-row{padding:7px;gap:7px}
  .manage-stamp-icon{width:37px;height:37px;font-size:19px}
  .small-action{font-size:10px;padding:7px 5px}
  .arrow-action{font-size:13px;padding:6px}
  .stamp-kind-fieldset{gap:12px}
}
@media(max-width:375px){.chip-mobile-title{font-size:11px}.stamps-manage-link{font-size:9px}.manage-stamp-actions{gap:2px}}


/* v1.2: warm brown identity, minimal copy, configurable first weekday. */
:root {
  color:#49382e; background:#f7f1e9;
  --ink:#49382e; --muted:#8d786b; --green:#72503e;
  --accent:#c28b68; --paper:#fffbf6; --edge:#e9ded1;
  --shadow:0 10px 36px rgba(76,51,35,.055);
}
body{background:#f7f1e9}
button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #c8936d;outline-offset:3px}
.sidebar{width:225px;background:#75513e;color:#fff8ed;padding:30px 24px}
.brand{gap:11px}
.brand-mark{background:#e9c9a9;color:#6c4532;transform:none;font-size:27px;font-weight:900;border-radius:13px}
.brand-name{font-size:23px;letter-spacing:.055em}
.privacy-pill{background:#876450;color:#fff2e4}
.privacy-dot{background:#e5bd95}
.sidebar-version{color:#ddc0aa}
.topbar{border-bottom-color:#e7dcd0;justify-content:flex-end}
.mobile-brand-star{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:9px;background:#ead0b5;color:#674330;font-size:18px;margin-right:5px;vertical-align:middle}
.workspace{margin-top:25px;margin-bottom:35px}
.calendar-card,.day-card,.backup-card{background:#fffbf6;border-color:#e7dacd}
.section-eyebrow{color:#b39680}
.month-toolbar{gap:8px}
.month-actions{display:flex;align-items:center;gap:11px}
.week-start-control{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:700;color:#7d6454;white-space:nowrap}
.week-start-control select{padding:9px 27px 9px 10px;border:1px solid #dfcebe;background:#fcf5ed;color:#5d4031;border-radius:10px;font-size:12px;font-weight:800;cursor:pointer;max-width:90px}
.nav-arrow{border-color:#e8d9c9;color:#725443;background:#fcf4eb}
.nav-arrow:hover,.button-quiet:hover{background:#ebdccd}
.button-quiet{background:#f0e5d9;color:#6d4e3d}
.weekday-row{color:#9a8171}
.weekday-row .sunday{color:#b66d5e}
.weekday-row .saturday{color:#728fa7}
.calendar-day{background:#fdf8f1;border-color:#efe5d9;color:#574336}
.calendar-day:hover{background:#f3e6d8;border-color:#d5bea9}
.calendar-day.is-selected{background:#f3e3d2;border-color:#a67859;box-shadow:inset 0 0 0 1px #f3e3d2}
.calendar-day.is-today .day-number{background:#ddb18b;color:#563d2d}
.calendar-day.is-selected.is-today .day-number{background:#d8a47d}
.chip-neutral,.icon-neutral{background:#f1e8df}
.more-events,.calendar-footer-note,.legend span{color:#927d6e}
.calendar-footer{border-top-color:#eee3d7}
.legend-today{background:#ddb18b}
.legend-selected{background:#f3e3d2;border-color:#a67859}
.day-subtitle,.event-meta{color:#987f70}
.add-button{background:#a97857;box-shadow:0 5px 10px #a9785735}
.add-button:hover{background:#8f6349}
.quick-stamp,.quick-stamp-name{color:#796455}
.quick-stamp-symbol{border-color:#eadfd3}
.quick-stamp:hover .quick-stamp-symbol{border-color:#c6a78c}
.quick-stamps-more{display:block;width:100%;margin:13px 0 1px;border:1px solid #e8d7c6;background:#faf1e8;color:#825d45;padding:9px;border-radius:10px;font-weight:750;font-size:11px;cursor:pointer}
.quick-stamps-more:hover{background:#f3e4d4}
.event-row{background:#fffcf8;border-color:#eee1d5}
.event-row:hover{background:#fff5e8;border-color:#d8b99f}
.event-title{color:#563f32}
.event-edit-icon{color:#ac907e}
.empty-state{background:#fdf7ef;border-color:#e5d2bf}
.empty-flower{color:#b18f7e}
.empty-title{color:#785d4c}
.empty-hint{color:#a18b79}
.text-add-button{background:#fbf2e8;border-color:#d6b99f;color:#76513b}
.text-add-button:hover{background:#f1e2d1}
.backup-card{background:#f8eee4}
.backup-emoji{background:#f0dfcb}
.backup-card p{color:#8e7665}
.button-export,.button-primary{background:#77513c;color:#fffaf4}
.button-export:hover,.button-primary:hover{background:#5c3b2b}
.button-import{background:#ead9c8;color:#684835}
.event-dialog{color:#47372c;border-color:#e4d4c3;background:#fffbf6}
.event-dialog::backdrop{background:rgba(48,32,20,.50)}
.editor-date,.optional,.editor-hint,.field-help{color:#987e6d}
.icon-close{background:#f2e7da;color:#7f624f}
.editor-fields input,.stamp-color-select{border-color:#dfcfbf;color:#503a2d;background:#fffdf9}
.editor-fields input::placeholder{color:#b8a394}
.editor-stamp{background:#fdf7f1;border-color:#eddfd2;color:#816753}
.editor-stamp:hover{border-color:#c8a78d}
.editor-stamp.active{background:#f2e1ce;border-color:#9e6b4b;color:#69432d}
.editor-actions{border-top-color:#eddfd3}
.stamps-manage-link{color:#8b603f}
.stamps-manage-link:hover{color:#a27354}
.no-stamps,.stamp-count{color:#947e6b}
.manage-stamp-row{background:#fffaf4;border-color:#e9dacf}
.manage-stamp-details small{color:#9e8675}
.small-action{background:#faf1e7;border-color:#e7d6c6;color:#74513d}
.small-action:hover{background:#f0dfce}
.hidden-stamps-section{border-top-color:#e8dacb}
.hidden-stamps-section p{color:#987c69}
.stamp-kind-fieldset label{color:#806655}
.stamp-kind-fieldset input{accent-color:#78533e}
.stamp-preview{border-color:#e4d6c8}
.toast{background:#72503c;box-shadow:0 10px 35px #4d362f45}
/* Keep the brightly colored stamp backgrounds: individual stamps still use their chosen color. */
.stamp-toolbar{align-items:flex-start}
.stamp-toolbar-buttons{display:flex;flex-wrap:wrap;gap:8px}
@media(max-width:1150px){.sidebar{width:205px;padding:28px 17px}.month-actions{gap:6px}}
@media(max-width:900px){.mobile-brand{display:block;font-size:17px;color:#654430}.sidebar{display:none}}
@media(max-width:650px){
 .workspace{margin-top:14px;margin-bottom:25px}
 .month-toolbar{padding:0 3px;align-items:flex-start}
 .month-actions{gap:7px;align-items:flex-end;flex-direction:column}
 .week-start-control{font-size:10px;gap:4px}
 .week-start-control select{padding:7px 22px 7px 8px;font-size:11px}
 .month-controls{gap:6px}
 .nav-arrow{width:31px;height:29px;font-size:21px}
 .month-label{font-size:20px}
 .stamp-toolbar{gap:6px;flex-direction:column}
 .stamp-toolbar-buttons .button{font-size:10px;padding:10px 11px}
}


/* v1.3: One-tap undo and iPhone Safari's accidental zoom prevention. */
.stamp-undo-row{display:flex;justify-content:flex-end;margin:5px 0 11px}
.stamp-undo-button{display:inline-flex;align-items:center;gap:7px;padding:9px 11px;border:1px solid #d8bba5;border-radius:10px;color:#704a33;background:#f5e8dc;font-weight:800;font-size:12px;min-height:39px}
.stamp-undo-button:hover:not(:disabled){background:#edd8c6}
.stamp-undo-button:disabled{opacity:.52;background:#f9f3ec}
.stamp-undo-button span{font-size:19px;line-height:1}
.event-row-wrap{display:flex;align-items:stretch;gap:6px;min-width:0}
.event-row-wrap .event-row{flex:1;min-width:0}
.event-remove-stamp{width:42px;min-width:42px;border-radius:12px;border:1px solid #e3c9ba;background:#f9ede5;color:#855943;font-size:25px;line-height:1;cursor:pointer}
.event-remove-stamp:hover{background:#f0d6c8}
.event-remove-stamp:focus-visible{outline:3px solid #c8936d;outline-offset:2px}
/* 'manipulation' suppresses double-tap zoom while preserving normal pinch zoom. */
body,button,input,textarea,select{touch-action:manipulation}
/* Safari auto-zooms text controls below 16 CSS px. Keep accessibility zoom available. */
@media (pointer:coarse){
 input,textarea,select{font-size:max(16px,1rem)!important}
 .week-start-control select{max-width:105px}
}
@media(max-width:650px){.stamp-undo-row{margin-top:5px}.stamp-undo-button{font-size:12px;min-height:44px}.event-remove-stamp{min-width:44px;width:44px}}
