:root{font-family:PingFang SC,Noto Sans SC,Microsoft YaHei,Arial,sans-serif;color:#f3ede4;background:#09090b;font-synthesis:none;text-rendering:optimizeLegibility;--bg: #09090b;--panel: #131316;--panel-alt: #1a1818;--border: #3f3525;--border-bright: #9b793d;--gold: #e8b94b;--gold-bright: #ffe08a;--gold-strong: #ffc844;--gold-soft: rgba(255, 200, 68, .18);--pink: #dc788d;--pink-soft: #f0b0bd;--text: #f3ede4;--muted: #a69c91;--success: #6fbb93;--danger: #db8078;--nav-height: 64px}*{box-sizing:border-box;letter-spacing:0}html,body,#app{margin:0;min-height:100%;background:var(--bg)}body{min-width:320px}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}p,h1,h2{margin:0}input,select,textarea{width:100%;border:1px solid var(--border);border-radius:6px;background:linear-gradient(180deg,#111012,#0d0d10);outline:none;color:var(--text)}input:focus,select:focus,textarea:focus{border-color:var(--gold-strong);box-shadow:0 0 0 2px var(--gold-soft)}textarea{resize:vertical}select{-webkit-appearance:none;-moz-appearance:none;appearance:none}.gate{min-height:100dvh;display:grid;place-items:center;padding:24px;background:linear-gradient(180deg,#1d1710 0,#0b0a0a 44%,#09090b)}.gate__panel{width:min(360px,100%);text-align:center;padding:34px 22px 22px;border:1px solid var(--gold);border-radius:8px;background:linear-gradient(180deg,#231c11f5,#131316f5);box-shadow:0 14px 38px #e8b94b24}.brand-seal{width:55px;height:55px;margin:0 auto 16px;display:grid;place-items:center;color:var(--gold-bright);border:1px solid var(--gold-strong);border-radius:50%;background:linear-gradient(145deg,#3a2a12,#19130d);box-shadow:0 0 0 4px var(--gold-soft),inset 0 0 18px #ffe08a24}.eyebrow{color:var(--gold-strong);font-size:11px;font-weight:700}.gate h1{margin:7px 0 8px;font-family:Georgia,Songti SC,serif;font-size:31px;font-weight:500;color:var(--text)}.gate__hint{margin-bottom:25px;color:var(--muted);font-size:13px}.gate__form{display:grid;gap:13px;text-align:left}.field{display:grid;gap:6px;color:var(--muted);font-size:12px}.field input,.field select,.field textarea{padding:10px 11px;font-size:14px}.primary-button{min-height:42px;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:0 15px;border:1px solid #ffd77a;border-radius:6px;background:linear-gradient(180deg,#ffe28d,#e8b94b);color:#15110d;font-weight:600;box-shadow:0 8px 18px #e8b94b38}.form-error{padding:8px 10px;color:var(--pink-soft);background:#281a20;border-radius:6px;font-size:12px}.boot-screen{min-height:100dvh;display:grid;place-items:center}.app-shell{min-height:100dvh;background:var(--bg)}.topbar{position:sticky;top:0;z-index:10;height:calc(50px + env(safe-area-inset-top));padding:env(safe-area-inset-top) 14px 0;display:flex;align-items:center;justify-content:space-between;background:linear-gradient(180deg,#110e0af7,#09090bf5);border-bottom:1px solid #6f562c;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.compact-brand{display:flex;align-items:center;gap:7px;font-family:Georgia,Songti SC,serif;font-size:17px;color:var(--gold-bright);text-shadow:0 0 12px rgba(255,200,68,.2)}.user-pill{max-width:48%;height:30px;padding:0 5px 0 10px;display:flex;align-items:center;gap:6px;border:1px solid #7a5e32;border-radius:16px;color:var(--muted);font-size:12px}.user-pill button{width:23px;height:23px;border:0;border-radius:50%;color:var(--gold-bright);background:#2c2110;display:grid;place-items:center}.page-stage{width:min(1120px,100%);margin:0 auto;padding:13px 12px calc(var(--nav-height) + 72px + env(safe-area-inset-bottom))}.view-header{margin-bottom:12px;display:flex;justify-content:space-between;align-items:end}.view-header h1{margin-top:3px;font-size:22px;font-weight:600}.ghost-icon,.icon-button{width:32px;height:32px;display:inline-grid;place-items:center;border:1px solid #7b6133;border-radius:6px;color:var(--gold-bright);background:linear-gradient(180deg,#211a10,var(--panel))}.primary-mini{height:34px;padding:0 12px;display:flex;align-items:center;gap:4px;border:1px solid #ffd77a;border-radius:6px;color:#14110e;background:linear-gradient(180deg,#ffe08a,#e8b94b);font-size:13px;font-weight:600}.wedding-summary{position:relative;padding:14px 13px 12px 58px;border:1px solid var(--gold);border-radius:8px;background:linear-gradient(115deg,#2b2112 0,#181512 54%,#121316);box-shadow:inset 0 1px #ffe08a2e,0 10px 28px #e8b94b1a}.summary-mark{position:absolute;top:15px;left:14px;width:33px;height:33px;display:grid;place-items:center;color:var(--gold-bright)}.summary-names{font-family:Georgia,Songti SC,serif;font-size:23px;color:var(--gold-bright);text-shadow:0 0 14px rgba(255,200,68,.18)}.summary-names span{padding:0 4px;font-size:16px;color:var(--pink)}.summary-grid{margin-top:9px;display:flex;flex-wrap:wrap;gap:6px 14px;color:var(--muted);font-size:12px}.summary-grid span{display:inline-flex;align-items:center;gap:4px;min-width:102px}.summary-grid .summary-wide{flex-basis:100%}.countdown{margin-top:10px;padding:9px 12px;display:flex;align-items:center;justify-content:space-between;border:1px solid #8a6c37;border-radius:8px;background:linear-gradient(180deg,#20180f,#151313)}.countdown p{color:var(--muted);font-size:12px}.countdown-values{display:flex;align-items:baseline;gap:4px}.countdown-values b{min-width:24px;text-align:center;color:var(--gold-bright);font-size:19px;text-shadow:0 0 12px rgba(255,200,68,.22)}.countdown-values small{color:var(--muted);font-size:11px}.section-bar{margin:15px 2px 8px;display:flex;align-items:center;justify-content:space-between}.section-bar h2{font-size:15px;font-weight:600}.section-bar span{color:var(--muted);font-size:12px}.timeline{display:grid;gap:8px}.timeline-group{position:relative}.swipe-shell{position:relative;overflow:hidden;border-radius:8px}.swipe-action{position:absolute;top:0;right:0;bottom:0;width:82px;border:0;background:linear-gradient(180deg,#ffc844,#df9f25);color:#17110b;font-size:12px}.timeline-card{position:relative;min-height:67px;padding:10px 10px 10px 32px;display:flex;align-items:center;gap:7px;border:1px solid #6d552f;border-radius:8px;background:linear-gradient(180deg,#171511,var(--panel));box-shadow:inset 0 1px #ffe08a0f;transition:transform .18s ease;touch-action:pan-y}.timeline-card.revealed{transform:translate(-82px)}.timeline-card.root{cursor:pointer;border-color:#8d6f3a}.timeline-dot{position:absolute;left:15px;top:15px;width:8px;height:8px;border-radius:50%;background:var(--gold-strong);box-shadow:0 0 0 4px var(--gold-soft),0 0 12px #ffc84452}.timeline-copy{min-width:0;flex:1}.timeline-title{margin-bottom:5px;display:flex;align-items:center;gap:7px}.timeline-title strong{font-size:14px;font-weight:600;color:#fff4d0}.timeline-title span{padding:2px 5px;border-radius:4px;color:var(--pink-soft);background:#291c21;font-size:10px}.timeline-copy p{display:inline-flex;align-items:center;margin-right:12px;color:var(--muted);font-size:11px;gap:3px}.rotated{transform:rotate(180deg)}.timeline-children{margin:6px 0 0 17px;padding-left:10px;border-left:1px solid var(--gold);display:grid;gap:6px}.timeline-card.child{min-height:57px;padding-left:10px;background:linear-gradient(180deg,#14120e,#101013)}.filter-panel,.item-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-bottom:10px}.filter-panel select,.item-filters select{height:36px;padding:0 9px;color:var(--muted);font-size:12px}.mine-filter{height:36px;padding:0 10px;display:flex;align-items:center;gap:8px;border:1px solid #6f562e;border-radius:6px;background:linear-gradient(180deg,#18140e,var(--panel));color:var(--muted);font-size:12px}.mine-filter input{width:15px;accent-color:var(--gold)}.filter-tag{grid-column:1 / -1;width:max-content;display:flex;align-items:center;gap:5px;padding:5px 8px;border:1px solid #663740;border-radius:6px;background:#22161b;color:var(--pink-soft);font-size:11px}.task-tally{margin-bottom:9px;display:flex;gap:8px}.task-tally span{padding:5px 9px;background:linear-gradient(180deg,#1d170f,var(--panel));border:1px solid #7b6032;border-radius:6px;color:var(--muted);font-size:12px}.task-tally b{color:var(--gold-bright);font-size:15px}.task-grid,.items-grid{display:grid;gap:7px}.task-card{position:relative;padding:10px 39px 9px 43px;min-height:76px;border:1px solid #6e562f;border-radius:8px;background:linear-gradient(180deg,#171511,var(--panel))}.task-card.completed{background:#111411;border-color:#273a30}.check-control{position:absolute;left:11px;top:12px;width:22px;height:22px}.check-control input{position:absolute;opacity:0}.check-control span{display:block;width:21px;height:21px;border:1px solid #a98443;border-radius:5px;background:#0b0b0d}.check-control input:checked+span{border-color:var(--success);background:var(--success)}.check-control input:checked+span:after{content:"";display:block;width:9px;height:5px;margin:6px 0 0 5px;border-left:2px solid #07110c;border-bottom:2px solid #07110c;transform:rotate(-45deg)}.task-title{display:flex;align-items:center;gap:7px;margin-bottom:3px}.task-title strong{font-size:14px}.priority{padding:2px 5px;border-radius:4px;font-size:10px}.priority.low{color:var(--muted);background:#222124}.priority.medium{color:var(--gold-bright);background:#342711;border:1px solid #7a5a28}.priority.high{color:var(--pink-soft);background:#291920}.task-main>p{margin:4px 0;color:var(--muted);font-size:12px;line-height:1.45}.task-card.completed .task-title strong{text-decoration:line-through;color:var(--muted)}.task-meta{display:flex;flex-wrap:wrap;gap:5px 10px;color:var(--muted);font-size:11px}.task-meta span{display:inline-flex;align-items:center;gap:3px}.completed-by{color:var(--success)!important}.task-edit{position:absolute;top:9px;right:8px}.item-filters{grid-template-columns:1fr 1fr}.search-box{grid-column:1 / -1;height:36px;display:flex;align-items:center;padding-left:10px;gap:5px;border:1px solid #6f562f;border-radius:6px;background:linear-gradient(180deg,#15110c,#0d0d10);color:var(--muted)}.search-box input{border:0;height:100%;padding:0 8px 0 3px;font-size:13px}.item-card{position:relative;padding:10px 40px 9px 11px;min-height:78px;border:1px solid #6e562f;border-radius:8px;background:linear-gradient(180deg,#171511,var(--panel))}.item-top{display:flex;align-items:center;gap:9px;margin-bottom:6px}.item-top strong{font-size:14px;color:#fff4d0}.quantity{min-width:30px;padding:2px 7px;border-radius:4px;color:#16100a;background:linear-gradient(180deg,#ffe08a,#e8b94b);text-align:center}.item-card p{display:inline-flex;align-items:center;gap:3px;margin-right:12px;color:var(--muted);font-size:11px}.item-card .remark{display:block;margin:6px 0 0;color:#c9bbb0}.edit-item{position:absolute;right:8px;top:9px}.bottom-nav{position:fixed;z-index:25;left:0;right:0;bottom:0;height:calc(var(--nav-height) + env(safe-area-inset-bottom));padding:5px max(12px,env(safe-area-inset-left)) env(safe-area-inset-bottom);display:flex;justify-content:space-around;background:linear-gradient(180deg,#15110bfa,#0c0c0efa);border-top:1px solid #7d6132}.bottom-nav button{width:min(112px,31%);border:0;border-radius:7px;color:var(--muted);background:transparent;display:grid;place-items:center;align-content:center;gap:3px;font-size:11px}.bottom-nav button.active{color:#17110b;background:linear-gradient(180deg,#ffe08a,#e5b244);box-shadow:0 5px 14px #e8b94b38}.ai-fab{position:fixed;z-index:28;right:14px;bottom:calc(var(--nav-height) + 16px + env(safe-area-inset-bottom));height:47px;min-width:58px;padding:0 13px;display:flex;align-items:center;gap:5px;border:1px solid #ffe3a0;border-radius:24px;color:#1a1013;background:linear-gradient(135deg,#ffe08a 0,#ffc844 62%,#f0a9b7);box-shadow:0 8px 24px #e8b94b5c;font-weight:700}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;padding:18px 12px calc(12px + env(safe-area-inset-bottom));display:flex;align-items:flex-end;justify-content:center;background:#000000b3}.edit-modal,.ai-drawer{width:min(520px,100%);padding:13px;border:1px solid var(--gold);border-radius:8px;background:linear-gradient(180deg,#18140e,#121215)}.edit-modal{display:grid;gap:10px}.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:2px}.modal-head h2{font-size:17px;font-weight:600}.two-fields{display:grid;grid-template-columns:1fr 1fr;gap:8px}.ai-drawer{height:min(590px,calc(100dvh - 75px));display:grid;grid-template-rows:auto 1fr auto;gap:10px}.ai-drawer .modal-head h2{margin-top:3px}.ai-messages{min-height:0;padding:8px 2px;overflow-y:auto;display:flex;flex-direction:column;gap:8px}.ai-empty{margin:auto;color:var(--muted);font-size:12px}.chat-bubble{max-width:89%;padding:9px 10px;border-radius:8px;white-space:pre-wrap;font-size:13px;line-height:1.5}.chat-bubble.user{align-self:flex-end;color:#15110e;background:linear-gradient(180deg,#ffe08a,#e8b94b)}.chat-bubble.assistant{align-self:flex-start;color:var(--text);background:#201d1a;border:1px solid #7a6035}.ai-input{display:grid;grid-template-columns:1fr 42px;gap:7px}.ai-input input{height:42px;padding:0 11px;font-size:14px}.primary-icon{border:1px solid #ffd77a;border-radius:6px;display:grid;place-items:center;color:#16110b;background:linear-gradient(180deg,#ffe08a,#e8b94b)}.empty-state{padding:34px 10px;text-align:center;color:var(--muted);font-size:13px}.skeleton-stack{display:grid;gap:8px}.skeleton{height:74px;border-radius:8px;background:linear-gradient(100deg,#131316 20%,#2b2214,#131316 60%);background-size:200% 100%;animation:shimmer 1.2s infinite}.skeleton.large{height:105px}.toast{position:fixed;top:calc(58px + env(safe-area-inset-top));left:50%;z-index:50;transform:translate(-50%);max-width:calc(100% - 30px);padding:8px 14px;border:1px solid var(--gold);border-radius:6px;background:linear-gradient(180deg,#2a2113,#211b15);color:var(--gold-bright);font-size:12px}.toast-enter-active,.toast-leave-active{transition:opacity .18s,transform .18s}.toast-enter-from,.toast-leave-to{opacity:0;transform:translate(-50%,-8px)}@keyframes shimmer{to{background-position:-200% 0}}@media(min-width:760px){.page-stage{padding:20px 22px 90px}.topbar{padding-left:max(22px,calc((100% - 1076px)/2));padding-right:max(22px,calc((100% - 1076px)/2))}.progress-view{display:grid;grid-template-columns:350px 1fr;gap:14px 18px}.progress-view .view-header{grid-column:1 / -1}.progress-view .wedding-summary,.progress-view .countdown{grid-column:1}.progress-view .section-bar,.progress-view .timeline{grid-column:2}.progress-view .section-bar{grid-row:2;margin-top:0}.progress-view .timeline{grid-row:3 / span 3}.task-grid,.items-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.filter-panel{grid-template-columns:repeat(4,minmax(0,1fr))}.filter-tag{grid-column:1 / -1}.item-filters{grid-template-columns:2fr 1fr 1fr}.search-box{grid-column:auto}.bottom-nav{left:50%;right:auto;bottom:14px;width:340px;height:58px;padding:5px;transform:translate(-50%);border:1px solid #8a6c37;border-radius:8px}.ai-fab{right:max(25px,calc((100% - 1080px)/2));bottom:22px}.overlay{align-items:center}}
