:root{color:#2d2522;font-synthesis:none;background:#fbf6ee;font-family:Microsoft YaHei,PingFang SC,system-ui,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(circle at top,#fffdf9 0%,#fbf6ee 56%,#f5eadf 100%);min-width:320px;min-height:100vh;margin:0}body.task-editor-modal-open{overflow:hidden}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:3px;outline:3px solid #b33b35}.app-shell{isolation:isolate;min-height:100vh;position:relative;overflow:hidden}.romance-background{z-index:0;opacity:.04;pointer-events:none;background-image:url(/assets/romance-background-7QID6gt5.svg);background-position:50%;background-repeat:repeat;background-size:720px 720px;position:fixed;inset:0}.romantic-moon-background{z-index:0;pointer-events:none;background-image:url(/assets/romantic-moon-couple-D9PsUB7q.webp);background-position:50%;background-repeat:no-repeat;background-size:cover;position:fixed;inset:0}.romantic-moon-background:after{content:"";background:radial-gradient(#fffdf8d1 0%,#fff8f3b3 48%,#fae0da94 100%),linear-gradient(120deg,#fffaf459,#f7d2ce52);position:absolute;inset:0}.task-side-decorations{z-index:0;pointer-events:none;display:none;position:fixed;inset:0;overflow:hidden}.romance-particle-lane{width:calc(50vw - 608px);position:absolute;top:0;bottom:0;overflow:hidden}.romance-particle-lane--left{left:0}.romance-particle-lane--right{right:0}.romance-particle{opacity:.24;will-change:transform, opacity;place-items:center;width:30px;height:30px;display:grid;position:absolute}.romance-particle-shape{display:block;position:relative}.romance-particle--heart .romance-particle-shape{background:#bf485bc2;border-radius:3px;width:15px;height:15px;transform:rotate(-45deg)}.romance-particle--heart .romance-particle-shape:before,.romance-particle--heart .romance-particle-shape:after{background:inherit;content:"";border-radius:50%;width:15px;height:15px;position:absolute}.romance-particle--heart .romance-particle-shape:before{top:-8px;left:0}.romance-particle--heart .romance-particle-shape:after{top:0;left:8px}.romance-particle--petal .romance-particle-shape{background:linear-gradient(145deg,#ffeff2f2,#e08397b8);border:1px solid #ba596c2e;border-radius:80% 12%;width:12px;height:22px;transform:rotate(28deg)}.romance-particle--1{top:11%;left:22%}.romance-particle--2{top:29%;left:68%}.romance-particle--3{top:49%;left:34%}.romance-particle--4{top:67%;left:72%}.romance-particle--5{top:84%;left:18%}.romance-particle--6{top:16%;right:20%}.romance-particle--7{top:34%;right:66%}.romance-particle--8{top:53%;right:28%}.romance-particle--9{top:72%;right:70%}.romance-particle--10{top:88%;right:16%}.app-content{z-index:1;place-items:center;min-height:100vh;padding:40px 20px;display:grid;position:relative}.entry-card{background:#fffdf9f5;border:1px solid #eadbcf;border-radius:28px;width:min(100%,620px);padding:clamp(28px,5vw,52px);box-shadow:0 22px 54px #492d1e1f}.form-card{width:min(100%,520px)}.private-card{width:min(100%,760px)}.eyebrow{color:#b33b35;letter-spacing:.04em;margin:0 0 12px;font-weight:800}h1{color:#2d2522;margin:0;font-size:clamp(2rem,7vw,3.8rem);line-height:1.15}.entry-copy{color:#66564e;margin:18px 0 0;font-size:1rem;line-height:1.75}.entry-actions{flex-wrap:wrap;gap:12px;margin-top:28px;display:flex}.primary-button,.secondary-button,.quiet-button{cursor:pointer;border-radius:13px;min-height:46px;padding:11px 18px;font-weight:750}.primary-button{color:#fff;background:#b33b35;border:1px solid #a72f2a}.primary-button:hover:not(:disabled){background:#922a26}.secondary-button{color:#8b332e;background:#fff9f4;border:1px solid #d7b9aa}.secondary-button:hover:not(:disabled){background:#ffefe5}.quiet-button{color:#695750;background:0 0;border:1px solid #0000}.quiet-button:hover:not(:disabled){background:#fff9f4;border-color:#eadbcf}button:disabled{cursor:wait;opacity:.62}.quiet-link{color:#7c3a34;text-underline-offset:3px;min-height:44px;margin-top:14px;padding:12px 0;text-decoration-thickness:1px;display:inline-block}.form-field{gap:8px;margin:20px 0 0;display:grid}.form-field label{color:#4f403a;font-weight:750}.form-field input,.form-field select,.form-field textarea{color:#2d2522;background:#fff;border:1px solid #d6c5b9;border-radius:12px;width:100%;min-height:46px;padding:11px 13px}.form-field textarea{resize:vertical;min-height:100px}.form-field input::placeholder{color:#9d9088}.form-error{color:#8e2520;background:#fff0ee;border:1px solid #e4a29d;border-radius:12px;margin:18px 0 0;padding:12px 14px;line-height:1.5}.form-card .primary-button{width:100%;margin-top:24px}.dashboard,.admin-dashboard{background:#fffdf9f5;border:1px solid #eadbcf;border-radius:28px;width:min(1180px,100%);padding:clamp(22px,4vw,46px);box-shadow:0 22px 54px #492d1e1f}.dashboard-header,.section-heading,.task-footer,.task-heading,.dashboard-controls,.form-actions,.admin-backup-actions{justify-content:space-between;align-items:center;gap:12px;display:flex}.dashboard-header{border-bottom:1px solid #eee0d6;align-items:flex-start;padding-bottom:22px}.dashboard-header h1,.admin-dashboard h1{font-size:clamp(2rem,5vw,3.2rem)}.dashboard-controls,.form-actions,.admin-backup-actions{flex-wrap:wrap;justify-content:flex-end}.sync-status{color:#5f7161;margin:18px 0 0;font-size:.92rem}.sync-status.unsynced{color:#a25518;font-weight:750}.form-notice{color:#75500d;background:#fff8df;border:1px solid #e2be77;border-radius:12px;margin:18px 0 0;padding:12px 14px;line-height:1.5}.overview-card,.tasks-section,.task-form,.conflict-card,.editor-section,.compact-form,.admin-section,.admin-action,.audit-summary{background:#fffffff5;border:1px solid #eaded4;border-radius:18px;margin-top:22px;padding:22px}.overview-card h2,.tasks-section h2,.task-form h2,.conflict-card h2,.editor-section h2,.compact-form h2,.admin-section h2,.audit-summary h2{margin:0;font-size:1.35rem}.wedding-overview-grid{grid-template-columns:minmax(0,1.16fr) minmax(260px,.84fr);gap:14px;margin-top:16px;display:grid}.countdown-panel,.readiness-panel{background:linear-gradient(135deg,#fff7f3f7,#fffdf8f2);border:1px solid #eedbd1;border-radius:16px;min-width:0;padding:clamp(16px,2.2vw,24px)}.overview-kicker{color:#a44741;letter-spacing:.03em;margin:0;font-size:.86rem;font-weight:800}.countdown-panel h3,.readiness-panel h3{color:#3f2d2a;margin:8px 0 0;font-size:1.28rem}.countdown-message,.readiness-note{color:#735850;margin:9px 0 0;font-size:.92rem;line-height:1.55}.countdown-units{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:17px 0 0;display:grid}.countdown-unit{text-align:center;background:#fffffff5;border:1px solid #f0dcd5;border-radius:12px;min-width:0;padding:10px 4px 8px}.countdown-unit dd,.countdown-unit dt{margin:0}.countdown-unit dd{color:#9e3e39;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.35rem,3vw,2rem);font-weight:700;line-height:1}.countdown-unit dt{color:#80665d;margin-top:5px;font-size:.82rem}.readiness-summary{color:#735850;flex-wrap:wrap;align-items:baseline;gap:8px;margin:12px 0 0;display:flex}.readiness-summary strong{color:#a53e39;font-family:Georgia,Times New Roman,serif;font-size:2rem;line-height:1}.readiness-hearts{color:#d4a8a1;letter-spacing:.02em;flex-wrap:wrap;gap:3px;margin-top:13px;font-size:clamp(1.3rem,2.5vw,1.75rem);line-height:1;display:flex}.readiness-heart.is-filled{color:#bb443d}.readiness-note{margin-top:12px}.overview-stats p{color:#69433b;text-align:center;background:#fff6f0;border-radius:12px;margin:0;padding:11px;font-weight:700}.section-copy{color:#715f57;margin:8px 0 0;line-height:1.55}.section-heading{align-items:flex-start}.filter-bar{grid-template-columns:minmax(190px,1.6fr) repeat(3,minmax(150px,1fr));gap:12px;margin-top:16px;display:grid}.filter-bar .form-field{margin:0}.task-list{gap:12px;margin-top:18px;display:grid}.task-card{background:#fffdfb;border:1px solid #eaded4;border-left:4px solid #d0a56f;border-radius:14px;padding:17px}.task-card.task-done{border-left-color:#5c9368}.task-card.task-not_needed{opacity:.76;border-left-color:#9b9b9b}.task-heading{justify-content:flex-start}.task-heading h3{margin:0;font-size:1.05rem;line-height:1.45}.task-checkbox{accent-color:#b33b35;width:20px;height:20px;margin:0}.task-meta{flex-wrap:wrap;gap:7px;margin-top:12px;display:flex}.task-meta span{color:#72574b;background:#faf1ea;border-radius:999px;padding:4px 8px;font-size:.82rem}.task-meta .status-done{color:#27633a;background:#eaf7ed}.task-meta .status-not_needed{color:#666;background:#efefef}.task-note{color:#5e4d45;white-space:pre-wrap;margin:12px 0 0;line-height:1.55}.task-footer{color:#85736a;margin-top:14px}.task-actions{flex-wrap:wrap;gap:8px;display:flex}.task-actions .secondary-button,.task-footer .secondary-button{border-radius:10px;min-height:36px;padding:7px 11px;font-size:.9rem}.empty-state{color:#725f57;text-align:center;border:1px dashed #d6c5b9;border-radius:12px;margin:0;padding:26px}.task-form{background:#fff8f5;border-color:#dca59e}.task-editor-modal{z-index:10;overscroll-behavior:contain;background:#2d252280;place-items:center;padding:clamp(18px,5vw,48px);display:grid;position:fixed;inset:0;overflow-y:auto}.task-editor-panel{border-radius:18px;width:min(100%,680px);max-height:100%;overflow-y:auto;box-shadow:0 24px 64px #2d25224d}.task-editor-panel .task-form{margin:0}.task-form .form-field,.editor-section .form-field,.compact-form .form-field,.admin-action .form-field{margin-top:14px}.task-form .form-actions,.editor-section .primary-button,.compact-form .primary-button,.admin-action .primary-button{margin-top:18px}.conflict-card{background:#fff9e8;border-color:#e3b171}.conflict-card>p{color:#6f572a;line-height:1.55}.conflict-columns{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.conflict-columns>div{background:#ffffffb3;border-radius:12px;padding:12px}.conflict-columns h3,.conflict-columns p{margin:0}.conflict-columns p{overflow-wrap:anywhere;margin-top:7px}.editor-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:18px;display:grid}.compact-form{grid-column:span 2}.info-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 12px;display:grid}.schedule-rows{gap:9px;margin-top:16px;display:grid}.schedule-row{grid-template-columns:minmax(90px,.45fr) minmax(130px,1fr) auto;gap:8px;display:grid}.schedule-row input{border:1px solid #d6c5b9;border-radius:10px;min-width:0;min-height:42px;padding:9px 11px}.schedule-row .secondary-button{min-height:42px;padding:8px 10px}.editor-section>.secondary-button{margin-top:12px}.invite-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:16px;display:grid}.invite-slot{background:#fffdfb;border:1px solid #eaded4;border-radius:14px;align-content:start;gap:9px;padding:16px;display:grid}.invite-slot h3,.invite-slot p{margin:0}.invite-status{color:#6b584e;font-weight:750}.invite-claimed{color:#27633a}.invite-revoked,.invite-expired{color:#8d5630}.invite-warning{color:#7b461d;font-size:.9rem;line-height:1.45}.invite-secret{gap:5px;min-width:0;display:grid}.invite-secret code{overflow-wrap:anywhere;color:#63312d;font-size:.8rem;display:block}.admin-action,.audit-summary{margin-top:16px}.admin-action h3{margin:0}.audit-summary ul{color:#65524a;gap:8px;padding-left:20px;display:grid}@media (prefers-reduced-motion:no-preference){.romance-background{animation:34s ease-in-out infinite alternate romance-drift}}@media (width>=1360px) and (prefers-reduced-motion:no-preference){.task-side-decorations{display:block}.romance-particle--heart{animation-name:side-heart-float;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate}.romance-particle--petal{animation-name:side-petal-drift;animation-timing-function:linear;animation-iteration-count:infinite}.romance-particle--1{animation-duration:24s;animation-delay:-9s}.romance-particle--2{animation-duration:20s;animation-delay:-14s}.romance-particle--3{animation-duration:27s;animation-delay:-4s}.romance-particle--4{animation-duration:29s;animation-delay:-19s}.romance-particle--5{animation-duration:22s;animation-delay:-7s}.romance-particle--6{animation-duration:25s;animation-delay:-17s}.romance-particle--7{animation-duration:28s;animation-delay:-5s}.romance-particle--8{animation-duration:21s;animation-delay:-12s}.romance-particle--9{animation-duration:26s;animation-delay:-21s}.romance-particle--10{animation-duration:30s;animation-delay:-8s}}@keyframes romance-drift{0%{transform:translate(-1%,-.5%)rotate(-.15deg)}to{transform:translate(1%,.5%)rotate(.15deg)}}@keyframes side-heart-float{0%{opacity:.1;transform:translate(-7px,24px)scale(.92)}50%{opacity:.28;transform:translate(8px,-12px)scale(1.04)}to{opacity:.14;transform:translate(-3px,-38px)scale(.97)}}@keyframes side-petal-drift{0%{opacity:.08;transform:translate(-10px,-44px)rotate(0)}45%{opacity:.3;transform:translate(12px,34px)rotate(130deg)}to{opacity:.1;transform:translate(-4px,112px)rotate(280deg)}}@media (width<=639px){.app-content{padding:18px 14px}.entry-card{border-radius:20px}.task-editor-modal{padding:14px}.task-editor-panel{width:100%}.romance-background{opacity:.035;background-size:520px 520px;animation:none}.romantic-moon-background{background-position:25%}.entry-actions{grid-template-columns:1fr;display:grid}.entry-actions button{width:100%}.dashboard,.admin-dashboard{border-radius:20px;padding:20px 14px}.dashboard-header,.section-heading,.task-footer{flex-direction:column;align-items:stretch}.dashboard-controls,.form-actions,.admin-backup-actions{justify-content:stretch}.dashboard-controls .secondary-button,.form-actions .secondary-button,.form-actions .primary-button,.admin-backup-actions .secondary-button{flex:130px}.overview-stats,.wedding-overview-grid,.filter-bar,.editor-grid,.info-fields,.invite-grid,.conflict-columns{grid-template-columns:1fr}.compact-form{grid-column:auto}.schedule-row{grid-template-columns:1fr}.task-footer{gap:10px}}
