:root{color-scheme:light;--bg: #faf9f6;--surface: #ffffff;--surface-2: #f4f2ed;--surface-mute: #f9f7f1;--ink: #1f1f25;--ink-soft: #4a4a55;--ink-mute: #8a8a92;--ink-faint: #bcbcc2;--accent: #3953a4;--accent-soft: #e7ebf6;--accent-deep: #2c4180;--red: #d3402b;--red-soft: #fbeae6;--sat: #8a8a92;--warm: #c89060;--line: #e6e3da;--line-strong: #d1ccc0;--grid: #d8d4c7;--r-1: 4px;--r-2: 6px;--r-3: 10px;--r-4: 14px;--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 24px;--s-6: 32px;--font-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;--shadow-1: 0 1px 2px rgba(31, 31, 37, .04), 0 1px 1px rgba(31, 31, 37, .03);--shadow-2: 0 2px 8px rgba(31, 31, 37, .06), 0 1px 2px rgba(31, 31, 37, .04);--shadow-3: 0 8px 28px rgba(31, 31, 37, .1), 0 2px 6px rgba(31, 31, 37, .05);--ring: 0 0 0 3px rgba(57, 83, 164, .22)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font-sans);font-size:14px;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"cv11","ss01"}button{font-family:inherit}.app{max-width:1400px;margin:0 auto;padding:var(--s-5) var(--s-5) var(--s-6)}.app-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--s-4)}.app-wordmark{display:inline-flex;align-items:center;gap:var(--s-2);font-size:14px;font-weight:600;letter-spacing:-.01em;color:var(--ink-soft)}.app-wordmark:before{content:"";width:10px;height:10px;border-radius:3px;background:linear-gradient(135deg,var(--accent) 0%,var(--warm) 100%)}.app-context{display:inline-flex;align-items:center;margin-left:var(--s-2);padding:2px 8px;background:var(--accent-soft);color:var(--accent);border-radius:999px;font-size:11px;font-weight:500;letter-spacing:0;text-transform:none}.app-hint{font-size:12px;color:var(--ink-mute);font-style:italic}.app-header-right{display:inline-flex;align-items:center;gap:var(--s-3)}.toolbar{display:flex;gap:var(--s-2);align-items:center;flex-wrap:wrap;padding:var(--s-3);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-3);box-shadow:var(--shadow-1);margin-bottom:var(--s-4)}.toolbar-group{display:inline-flex;align-items:center;gap:var(--s-3);padding:0 var(--s-3);border-right:1px solid var(--line);height:30px}.toolbar-group:last-of-type{border-right:0}.toolbar-group--actions{flex:1;justify-content:flex-end;gap:var(--s-2)}.toolbar-field{display:inline-flex;align-items:center;gap:var(--s-2);font-size:13px}.toolbar-label{color:var(--ink-mute);font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.06em}.toolbar-select{font:inherit;font-size:13px;color:var(--ink);padding:5px 24px 5px 8px;border:1px solid var(--line-strong);background:var(--surface);border-radius:var(--r-2);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--ink-mute) 50%),linear-gradient(135deg,var(--ink-mute) 50%,transparent 50%);background-position:calc(100% - 11px) 50%,calc(100% - 7px) 50%;background-size:4px 4px,4px 4px;background-repeat:no-repeat;transition:border-color .12s ease,box-shadow .12s ease}.toolbar-select:hover{border-color:var(--ink-mute)}.toolbar-select:focus-visible{outline:none;border-color:var(--accent);box-shadow:var(--ring)}.toolbar-segmented{display:inline-flex;border:1px solid var(--line-strong);border-radius:var(--r-2);overflow:hidden;background:var(--surface)}.toolbar-segment{font:inherit;font-size:13px;color:var(--ink-soft);padding:5px 10px;background:transparent;border:0;cursor:pointer;border-right:1px solid var(--line);min-width:30px;transition:background .12s ease,color .12s ease}.toolbar-segment:last-child{border-right:0}.toolbar-segment:hover:not(.is-active){background:var(--surface-2)}.toolbar-segment.is-active{background:var(--ink);color:var(--surface)}.toolbar-segment:focus-visible{outline:none;box-shadow:var(--ring);position:relative;z-index:1}.toolbar button:not(.toolbar-segment):not(.toolbar-export){font:inherit;font-size:13px;color:var(--ink-soft);padding:5px 10px;border:1px solid var(--line-strong);background:var(--surface);border-radius:var(--r-2);cursor:pointer;transition:background .12s ease,border-color .12s ease}.toolbar button:not(.toolbar-segment):not(.toolbar-export):hover{background:var(--surface-2);border-color:var(--ink-mute)}.toolbar button:not(.toolbar-segment):not(.toolbar-export):focus-visible{outline:none;border-color:var(--accent);box-shadow:var(--ring)}.toolbar-export{font:inherit;font-size:13px;font-weight:600;padding:6px 14px;color:var(--surface);background:var(--accent);border:1px solid var(--accent);border-radius:var(--r-2);cursor:pointer;white-space:nowrap;flex-shrink:0;transition:background .12s ease,border-color .12s ease}.toolbar-export:hover:not(:disabled){background:var(--accent-deep);border-color:var(--accent-deep)}.toolbar-export:focus-visible{outline:none;box-shadow:var(--ring)}.toolbar-export:disabled{opacity:.55;cursor:not-allowed}.share-controls{display:flex;align-items:center;gap:var(--s-2);flex-wrap:wrap}.share-url{flex:1;min-width:180px;max-width:260px;padding:5px 8px;font:inherit;font-family:var(--font-mono);font-size:11px;color:var(--ink-soft);border:1px solid var(--line);background:var(--surface-mute);border-radius:var(--r-2)}.share-url:focus{outline:none;border-color:var(--accent)}.toolbar-readonly{font-size:12px;color:var(--ink-mute);font-style:italic}.calendar{background:transparent}.cal-title{text-align:center;font-size:22px;font-weight:700;letter-spacing:-.01em;color:var(--ink);margin:var(--s-4) 0 var(--s-4);position:relative}.cal-title:after{content:"";display:block;width:56px;height:2px;background:linear-gradient(90deg,var(--accent) 0%,var(--warm) 100%);margin:10px auto 0;border-radius:2px}.cal-frame{background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-3);overflow:hidden;box-shadow:var(--shadow-1)}.cal-day-header,.cal-grid{display:grid;grid-template-columns:repeat(7,1fr)}.cal-day-header{background:var(--surface-mute);border-bottom:1px solid var(--line)}.cal-day-header-cell{padding:8px 10px;font-size:11px;font-weight:600;text-align:center;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.08em;border-right:1px solid var(--line)}.cal-day-header-cell:last-child{border-right:0}.cal-day-header-cell.is-sat{color:var(--sat)}.cal-day-header-cell.is-sun{color:var(--red)}.day-cell{position:relative;min-height:100px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:6px 8px;transition:background .12s ease}.day-cell .day-num,.day-cell .day-month-label,.day-cell .day-note{position:relative;z-index:5;pointer-events:none}.day-cell:nth-child(7n){border-right:0}.day-cell--out{background:var(--surface-mute)}.day-cell--first{border-left:2px solid var(--accent);margin-left:-1px}.day-cell--editing{z-index:40;background:var(--surface);box-shadow:0 0 0 2px var(--accent-soft)}.day-cell:hover .day-body{background:var(--surface-mute)}.day-head{display:flex;align-items:baseline;gap:var(--s-2)}.day-num{font-size:18px;font-weight:500;font-variant-numeric:tabular-nums;color:var(--ink)}.day-num--out{color:var(--ink-faint)}.day-num--holiday,.day-num--sun{color:var(--red)}.day-num--sat{color:var(--sat)}.day-month-label{font-size:10px;font-weight:700;color:var(--accent);letter-spacing:.08em}.day-body{padding-top:4px;min-height:40px;cursor:text;border-radius:var(--r-1);transition:background .12s ease}.day-note{font-size:12px;color:var(--ink-soft);white-space:pre-wrap;word-wrap:break-word;overflow:hidden;line-height:1.35}.day-note-input{width:100%;min-height:38px;border:1px solid var(--accent);border-radius:var(--r-1);font:inherit;font-size:12px;color:var(--ink);padding:4px 6px;resize:vertical;background:var(--surface);box-shadow:var(--ring)}.day-note-input:focus{outline:none}.cal-footer{background:var(--surface);border:1px solid var(--line-strong);border-top:0;border-bottom-left-radius:var(--r-3);border-bottom-right-radius:var(--r-3);padding:12px 16px;font-size:12px;line-height:1.55;color:var(--ink-soft);margin-top:-1px}.cal-footer strong{color:var(--ink);font-weight:600}.cal-footer .is-holiday{color:var(--red)}.cal-footer-empty{color:var(--ink-mute);font-style:italic}.cal-frame{border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom:0}.cal-grid-wrap{position:relative}.block-layer{position:absolute;top:0;left:0;pointer-events:none}.block-rect{position:absolute;border:2px solid;border-radius:var(--r-2);pointer-events:auto;cursor:grab;transition:box-shadow .12s ease}.block-rect:not(.is-first){border-top-left-radius:0;border-bottom-left-radius:0;border-left-width:0}.block-rect:not(.is-last){border-top-right-radius:0;border-bottom-right-radius:0;border-right-width:0}.block-label{position:absolute;bottom:3px;left:6px;right:6px;font-size:11px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:.85;pointer-events:none;text-align:right}.block-rect.block-draft{border-color:var(--accent);border-style:dashed;background:#3953a414;pointer-events:none}.block-rect.is-selected{box-shadow:0 0 0 2px #1f1f2533}.block-rect:hover:not(.is-selected){box-shadow:0 0 0 1px #1f1f251a}.block-handle{position:absolute;top:0;width:8px;height:100%;cursor:ew-resize;background:transparent}.block-handle--start{left:-4px}.block-handle--end{right:-4px}.block-editor{position:absolute;z-index:50;pointer-events:auto;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-3);padding:14px;box-shadow:var(--shadow-3);width:252px;font-size:13px}.block-editor-name{width:100%;padding:7px 9px;font:inherit;font-size:13px;color:var(--ink);border:1px solid var(--line-strong);border-radius:var(--r-2);transition:border-color .12s ease,box-shadow .12s ease}.block-editor-name:focus{outline:none;border-color:var(--accent);box-shadow:var(--ring)}.block-editor-swatches{display:flex;gap:7px;margin:10px 0;flex-wrap:wrap}.swatch{width:22px;height:22px;border-radius:50%;border:2px solid #fff;outline:1px solid var(--line-strong);cursor:pointer;padding:0;transition:transform .12s ease}.swatch:hover{transform:scale(1.08)}.swatch.is-selected{outline:2px solid var(--ink)}.block-editor-tentative{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-soft);margin-bottom:10px;cursor:pointer;-webkit-user-select:none;user-select:none}.block-editor-tentative input{margin:0}.block-editor-actions{display:flex;justify-content:space-between;gap:8px}.btn-delete{background:var(--surface);color:var(--red);border:1px solid var(--red);padding:5px 12px;border-radius:var(--r-2);cursor:pointer;font:inherit;transition:background .12s ease}.btn-delete:hover{background:var(--red-soft)}.btn-done{background:var(--ink);color:var(--surface);border:0;padding:6px 14px;border-radius:var(--r-2);cursor:pointer;font:inherit;font-weight:500;transition:background .12s ease}.btn-done:hover{background:var(--ink-soft)}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--s-5);background:radial-gradient(1200px 600px at 50% -10%,rgba(57,83,164,.1),transparent 60%),var(--bg)}.login-form{display:flex;flex-direction:column;gap:var(--s-3);padding:var(--s-5);border:1px solid var(--line);border-radius:var(--r-4);min-width:320px;background:var(--surface);box-shadow:var(--shadow-3)}.login-form h2{margin:0 0 var(--s-2);font-size:18px;font-weight:600;letter-spacing:-.01em}.login-form input{padding:9px 12px;font:inherit;font-size:14px;color:var(--ink);border:1px solid var(--line-strong);border-radius:var(--r-2);background:var(--surface);transition:border-color .12s ease,box-shadow .12s ease}.login-form input:focus{outline:none;border-color:var(--accent);box-shadow:var(--ring)}.login-form button{padding:9px 12px;font:inherit;font-size:14px;font-weight:600;background:var(--accent);color:var(--surface);border:0;border-radius:var(--r-2);cursor:pointer;transition:background .12s ease}.login-form button:hover:not(:disabled){background:var(--accent-deep)}.login-form button:disabled{opacity:.55;cursor:not-allowed}.login-error{color:var(--red);background:var(--red-soft);border:1px solid rgba(211,64,43,.25);padding:8px 10px;border-radius:var(--r-2);font-size:12px}.redeem-form{min-width:360px}.redeem-help{margin:0;font-size:13px;line-height:1.5;color:var(--ink-soft)}.redeem-field{display:flex;flex-direction:column;gap:4px}.redeem-field>span{font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-mute)}.redeem-field input,.redeem-field select{padding:9px 12px;font:inherit;font-size:14px;color:var(--ink);border:1px solid var(--line-strong);border-radius:var(--r-2);background:var(--surface);transition:border-color .12s ease,box-shadow .12s ease}.redeem-field input:focus,.redeem-field select:focus{outline:none;border-color:var(--accent);box-shadow:var(--ring)}.app-hint--link{color:var(--accent);text-decoration:none;font-style:normal}.app-hint--link:hover{text-decoration:underline}.admin-section{margin-bottom:var(--s-5);padding:var(--s-4);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-3);box-shadow:var(--shadow-1)}.admin-h2{margin:0 0 var(--s-3);font-size:14px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-mute)}.admin-create{display:grid;grid-template-columns:1fr 1fr 1fr 1fr auto;gap:var(--s-3);align-items:end}.admin-field{display:flex;flex-direction:column;gap:4px}.admin-field>span{font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-mute)}.admin-field input,.admin-field select{padding:7px 10px;font:inherit;font-size:13px;color:var(--ink);border:1px solid var(--line-strong);border-radius:var(--r-2);background:var(--surface);transition:border-color .12s ease,box-shadow .12s ease}.admin-field input:focus,.admin-field select:focus{outline:none;border-color:var(--accent);box-shadow:var(--ring)}.admin-submit{padding:7px 14px;height:fit-content}.admin-error{grid-column:1 / -1;margin-top:var(--s-2)}.admin-empty{padding:var(--s-3);color:var(--ink-mute);font-style:italic}.admin-orders{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--s-3)}.admin-order{padding:var(--s-3);border:1px solid var(--line);border-radius:var(--r-2);background:var(--surface-mute)}.admin-order.is-personal{background:var(--accent-soft);border-color:#3953a433}.admin-order-head{display:flex;align-items:center;gap:var(--s-2);flex-wrap:wrap;margin-bottom:var(--s-2);font-size:13px}.admin-order-id{font-family:var(--font-mono);font-size:12px;color:var(--ink)}.admin-order-meta{color:var(--ink-mute);font-size:12px}.admin-order-meta--right{margin-left:auto}.admin-tag{display:inline-flex;padding:2px 8px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;border-radius:999px;background:var(--surface);color:var(--ink-soft);border:1px solid var(--line-strong)}.admin-tag--personal{background:var(--accent);color:var(--surface);border-color:var(--accent)}.admin-tag--etsy{background:#f59e2b;color:#fff;border-color:#f59e2b}.admin-tag--lemonsqueezy{background:#ffce00;color:#1f1f25;border-color:#ffce00}.admin-order-link{display:flex;align-items:center;gap:var(--s-2);flex-wrap:wrap}.admin-order-link .share-url{max-width:none;flex:1;min-width:200px}.admin-order-link button:not(.btn-delete){font:inherit;font-size:13px;color:var(--ink-soft);padding:5px 10px;border:1px solid var(--line-strong);background:var(--surface);border-radius:var(--r-2);cursor:pointer;transition:background .12s ease,border-color .12s ease}.admin-order-link button:not(.btn-delete):hover{background:var(--surface-2);border-color:var(--ink-mute)}.admin-order-link a{font-size:13px;color:var(--accent);padding:5px 8px;text-decoration:none;border-radius:var(--r-2)}.admin-order-link a:hover{background:var(--accent-soft)}@media (max-width: 720px){.admin-create{grid-template-columns:1fr 1fr}.admin-create .admin-submit{grid-column:1 / -1}.admin-order-meta--right{margin-left:0;flex-basis:100%}}@media (max-width: 720px){.app{padding:var(--s-3)}.app-header{margin-bottom:var(--s-3)}.toolbar{padding:var(--s-2);gap:var(--s-2)}.toolbar-group{padding:0 var(--s-2);border-right:0;height:auto;flex-wrap:wrap;gap:var(--s-2)}.toolbar-group--actions{justify-content:flex-start}.cal-title{font-size:17px;margin:var(--s-3) 0}.cal-title:after{width:40px;margin-top:6px}.cal-day-header-cell{padding:5px 2px;font-size:9px;letter-spacing:.04em}.day-cell{min-height:60px;padding:3px 4px}.day-head{gap:4px}.day-num{font-size:13px}.day-month-label{font-size:8px;letter-spacing:.04em}.day-body{padding-top:2px;min-height:28px}.day-note{font-size:10px;line-height:1.2}.day-note-input{font-size:11px;min-height:30px;padding:3px 4px}.day-cell--first{border-left-width:2px}.block-label{font-size:9px;bottom:1px;left:3px;right:3px}.block-handle{width:6px}.block-handle--start{left:-3px}.block-handle--end{right:-3px}.cal-footer{font-size:11px;padding:10px 12px;line-height:1.4}.share-controls{gap:var(--s-1)}.share-url{flex:1 1 100%;max-width:none;min-width:0;font-size:10px}.block-editor{width:calc(100vw - 24px);max-width:280px}.block-editor-name{font-size:14px}.login-form{min-width:0;width:100%;max-width:360px}}
