:root{color-scheme:light;font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;color:#593943;background:#fff1f5;--pink:#ac4367;--line:#ecd7df;--muted:#896571}*{box-sizing:border-box}body{margin:0;min-width:280px;min-height:100svh;display:grid;place-items:center}button,input,select{font:inherit}button{cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}button:disabled{cursor:wait;opacity:.5}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #ca7897;outline-offset:3px}input,select{font-size:16px;min-width:0}.backdrop{position:fixed;inset:0;z-index:-2;background:radial-gradient(ellipse at 50% 0%,#ffe4ed 0%,transparent 65%),#fff5f8}.backdrop img{width:100%;height:100%;object-fit:cover;object-position:center}.backdrop:after{content:"";position:absolute;inset:0;background:#fff5f8;opacity:0;transition:opacity .2s}body.has-photo .backdrop:after{opacity:.56}.gear{position:absolute;top:max(20px,env(safe-area-inset-top));right:max(20px,env(safe-area-inset-right));width:46px;height:46px;border:1px solid #eedce3;border-radius:50%;display:grid;place-items:center;color:#92536a;background:#fffafdde;box-shadow:0 3px 18px #71314a08}.gear svg{width:25px;height:25px}main{width:min(100%,940px);padding:88px 24px 48px;text-align:center}.heart{color:#bc6783;font-size:34px;line-height:1;margin-bottom:34px}.headings{display:grid;gap:24px}main h1,main h2{font-size:clamp(1.2rem,2.5vw,1.7rem);line-height:1.8;font-weight:500;letter-spacing:.025em;margin:0;overflow-wrap:anywhere}.names{display:inline;margin-right:.3em}.event-line{display:inline}.number{font-family:Georgia,"Times New Roman",serif;font-size:clamp(3rem,7vw,4rem);font-weight:400;color:#ae4165;line-height:1.2;letter-spacing:-.03em;margin:0 .12em;vertical-align:-.06em}main h1 small,main h2 small{display:block;font-size:14px;letter-spacing:0;color:#896571}.rule{width:36px;height:1px;background:#dca8b8;margin:34px auto}.clocks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;width:min(100%,490px);margin:auto}.clock{background:#ffffffdf;border:1px solid #f1dce4;border-radius:20px;padding:23px 10px 19px;box-shadow:0 8px 26px #99446106}.clock h3{font-size:1rem;margin:0 0 10px;font-weight:400;color:#79515f;overflow-wrap:anywhere}.clock time{font-variant-numeric:tabular-nums;font-size:clamp(1.4rem,5.3vw,2rem);letter-spacing:.025em;font-weight:500;color:#693b4d;white-space:nowrap}.clock p{font-size:14px;margin:10px 0 0;color:#896571;line-height:1.5;overflow-wrap:anywhere}.bottom-heart{font-size:14px;color:#d597ad;margin-top:30px}#connection{font-size:14px;color:#896571;margin:16px auto 0;max-width:400px}#connection:empty{display:none}[hidden]{display:none!important}
dialog{border:1px solid #f1dce4;padding:0;color:#593943;background:#fffbfd;border-radius:28px;width:min(640px,calc(100% - 32px));max-height:calc(100dvh - 48px);box-shadow:0 24px 90px #5022362a}dialog::backdrop{background:#40242e65;backdrop-filter:blur(4px)}body.modal-open{overflow:hidden}#settings-form{display:flex;flex-direction:column;max-height:calc(100dvh - 50px)}.sheet-header{display:flex;align-items:center;justify-content:space-between;padding:22px 28px;gap:16px;border-bottom:1px solid var(--line);flex-shrink:0;background:#fffbfd}.sheet-header h2{font-size:24px;line-height:1.4;font-weight:550;margin:0;letter-spacing:.03em}.close{background:#f8eaf0;border:0;border-radius:50%;color:#8e5369;width:40px;height:40px;font-size:27px;line-height:1;flex-shrink:0}.sheet-body{overflow-y:auto;overscroll-behavior:contain;padding:25px 28px 18px;-webkit-overflow-scrolling:touch}.setting-group{border:0;padding:0;margin:0 0 30px;min-width:0}.setting-group legend{font-size:18px;font-weight:600;line-height:1.5;margin-bottom:15px;padding:0}.rule-choices{display:grid;grid-template-columns:1fr 1fr;gap:10px}.rule-choices label{display:flex;gap:10px;align-items:center;padding:14px 11px;border:1px solid var(--line);border-radius:14px;background:#fff;cursor:pointer}.rule-choices label:has(input:checked){border-color:#c97f99;background:#fff0f6;box-shadow:0 0 0 1px #c97f9940}.rule-choices input{accent-color:var(--pink);width:17px;height:17px;margin:0;flex-shrink:0}.rule-choices b{font-size:16px;font-weight:500}.rule-choices small{display:block;font-size:14px;color:var(--muted);margin-top:5px;line-height:1.4}.hint{font-size:14px;color:var(--muted);line-height:1.65;margin:10px 0 14px}.field{display:flex;flex-direction:column;gap:8px;font-size:14px;color:#7a5664;margin-bottom:15px;text-align:left}.field input,.field select,.zone-select,#zone-search{width:100%;border:1px solid var(--line);background:#fff;border-radius:12px;padding:12px;color:#593943;min-height:47px}.field input[type=date],.field input[type=time]{display:block;-webkit-appearance:none}.field input::-webkit-date-and-time-value{text-align:left}.field select{padding-right:24px}.photo-preview{height:145px;border:1px solid #efdae3;border-radius:16px;position:relative;overflow:hidden;display:grid;place-items:center;background:radial-gradient(ellipse at 50% 0%,#ffe4ed,transparent),#fff5f8}.photo-preview img{position:absolute;width:100%;height:100%;object-fit:cover}.photo-preview span{text-align:center;color:#c8839e;font-size:30px}.photo-preview small{display:block;color:#ac7589;font-size:14px;margin-top:5px}.photo-button{display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;width:100%;background:#f7e8ef;color:#914361;border:1px solid #e8c9d5;border-radius:12px;padding:13px;min-height:47px;margin-top:12px;cursor:pointer;font-size:16px}.photo-button input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer}.photo-button:focus-within{outline:3px solid #ca7897;outline-offset:2px}.photo-actions{display:flex;gap:18px;flex-wrap:wrap}.text-button{background:transparent;border:0;color:#a44367;text-decoration:underline;text-underline-offset:4px;padding:8px 0;font-size:14px;min-height:36px}.person{display:grid;grid-template-columns:30px minmax(0,1fr);gap:10px;border-top:1px solid #f1e2e8;padding-top:18px;margin-top:12px}.item-number{font-family:Georgia,serif;font-size:18px;color:#c38ba1;padding-top:27px}.zone-select{display:flex;justify-content:space-between;text-align:left;align-items:center;gap:10px;font-size:16px}.zone-select span{font-size:14px;color:#a7778a;flex-shrink:0}.event-fields+.event-fields{border-top:1px solid #f1e2e8;padding-top:18px;margin-top:18px}.date-fields{display:grid;grid-template-columns:1.3fr 1fr;gap:12px}.shared-note{font-size:14px;line-height:1.5;color:#9a6d7e;background:#f9ecf2;border-radius:12px;padding:13px 15px;margin:0}.sheet-footer{background:#fffbfd;border-top:1px solid var(--line);padding:16px 28px max(20px,env(safe-area-inset-bottom));flex-shrink:0}.footer-actions{display:flex;gap:12px}.primary,.secondary{border-radius:13px;padding:12px 22px;min-height:48px;font-size:16px}.primary{border:1px solid var(--pink);background:var(--pink);color:#fff;flex:1}.secondary{background:white;border:1px solid var(--line);color:#896571;min-width:100px}#form-error{font-size:14px;color:#a1284b;line-height:1.5;margin:0 0 12px}#toast{position:fixed;bottom:max(24px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);background:#66394cea;color:white;border-radius:30px;padding:12px 22px;z-index:10;font-size:14px;max-width:90%;text-align:center}#zone-dialog{width:min(520px,calc(100% - 32px));height:min(680px,calc(100dvh - 48px));overflow:hidden}#zone-dialog[open]{display:flex;flex-direction:column}.zone-search{padding:18px 22px 14px;flex-shrink:0}.zone-search label{display:block;font-size:14px;color:var(--muted);margin-bottom:9px}#zone-list{overflow-y:auto;padding:0 12px 18px;overscroll-behavior:contain;flex:1}.zone-heading{font-size:14px;color:#a47588;padding:12px 10px 6px;margin:0}.zone-option{display:flex;text-align:left;width:100%;align-items:center;justify-content:space-between;gap:12px;border:0;border-bottom:1px solid #f4e8ed;background:transparent;color:#674452;padding:13px 10px;font-size:16px;border-radius:9px}.zone-option[aria-pressed=true]{background:#f8e7ef;color:#ac4367}.zone-option small{display:block;font-size:13px;line-height:1.5;color:#a0808c;word-break:break-word;margin-top:3px}.zone-option em{font-size:13px;font-style:normal;color:#92667a;white-space:nowrap}.zone-empty{font-size:15px;color:#896571;padding:24px;text-align:center}
@media(max-width:520px){main{padding:88px 20px 38px}.heart{margin-bottom:26px}.headings{gap:25px}.names{display:block;margin:0}.event-line{display:block}main h1,main h2{font-size:1.2rem;line-height:1.9}.number{font-size:3.5rem}.rule{margin:28px auto}.clocks{gap:12px}.clock{padding:20px 7px 16px;border-radius:18px}.clock p{font-size:14px}.sheet-header{padding:20px}.sheet-body{padding:23px 20px 18px}.sheet-footer{padding:14px 20px max(18px,env(safe-area-inset-bottom))}dialog{width:100%;max-width:100%;max-height:94dvh;margin:auto 0 0;border-radius:25px 25px 0 0;border-bottom:0}#settings-form{max-height:94dvh}.rule-choices{gap:8px}.rule-choices label{padding:12px 9px;gap:7px}.rule-choices b{font-size:15px}.rule-choices small{font-size:13px}.date-fields{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:10px}#zone-dialog{width:100%;height:90dvh;max-height:90dvh}.photo-actions{gap:12px}.field input,.field select{padding:11px 9px}}@media(max-width:340px){main{padding-inline:12px}.sheet-body{padding-inline:14px}.clock time{font-size:1.32rem}.rule-choices{grid-template-columns:1fr}.number{font-size:3rem}}@media(prefers-reduced-motion:no-preference){main{animation:appear .5s ease-out}@keyframes appear{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}}
