:root{--bg:#faf6f4;--surface:#fff;--surface-2:#fbf8f7;--fg:#2a1d1c;--muted:#7d6763;--line:#ecdfdb;--accent:#a8231f;--accent-fg:#fff;--accent-soft:#f6e3e0;--gold:#b0843a;--done:#a3928f;--ok:#2f7a4f;--warn:#b5651d;--font-display:"Noto Serif TC", "Songti TC", serif;--font-body:"Be Vietnam Pro", "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", system-ui, sans-serif;--radius:10px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#1b1413;--surface:#251c1b;--surface-2:#2c2221;--fg:#f3e9e6;--muted:#b39f9a;--line:#3a2d2b;--accent:#e0574f;--accent-fg:#1b1413;--accent-soft:#3d2120;--gold:#d6aa5e;--done:#8a7874;--ok:#6cc391;--warn:#e3a35c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--fg);font:15px/1.5 var(--font-body);-webkit-font-smoothing:antialiased}a{color:var(--accent)}h1,h2,h3{font-family:var(--font-display);text-wrap:balance;margin:0;line-height:1.25}h1{font-size:26px}h2{font-size:20px}h3{font-size:16px}p{margin:0}.muted{color:var(--muted)}.small{font-size:13px}.num{font-variant-numeric:tabular-nums}.囍{font-family:var(--font-display);color:var(--accent)}.page{flex-direction:column;gap:20px;max-width:1080px;margin:0 auto;padding:24px 16px 64px;display:flex}.narrow{max-width:460px}.stack{flex-direction:column;gap:12px;display:flex}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.spread{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.grid-cards{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;display:grid}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.card.pad{padding:16px}.card-head{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:12px;padding:12px 16px;display:flex}.card-head>:first-child{flex:1;min-width:0}.topbar{background:var(--surface);border-bottom:1px solid var(--line);z-index:10;position:sticky;top:0}.topbar-inner{align-items:center;gap:12px;max-width:1080px;margin:0 auto;padding:10px 16px;display:flex}.brand{font-family:var(--font-display);color:var(--fg);white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:18px;font-weight:700;text-decoration:none;overflow:hidden}.tabs{scrollbar-width:none;gap:2px;max-width:1080px;margin:0 auto;padding:0 8px;display:flex;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tabs a{color:var(--muted);white-space:nowrap;border-bottom:2px solid #0000;padding:10px 12px;font-weight:500;text-decoration:none}.tabs a[aria-current=page]{color:var(--accent);border-bottom-color:var(--accent)}.btn{font:inherit;color:var(--fg);background:var(--surface);border:1px solid var(--line);cursor:pointer;white-space:nowrap;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:8px 14px;font-size:14px;font-weight:500;text-decoration:none;display:inline-flex}.btn:hover{border-color:var(--muted)}.btn:disabled{opacity:.5;cursor:default}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}.btn.danger{color:var(--accent)}.btn.ghost{background:0 0}.btn.small{padding:4px 10px;font-size:13px}.btn.icon{color:var(--muted);background:0 0;border-color:#0000;padding:4px 8px}.btn.icon:hover{color:var(--accent)}:focus-visible{outline:2px solid var(--gold);outline-offset:2px}label.field{color:var(--muted);flex-direction:column;gap:4px;font-size:13px;font-weight:500;display:flex}.input,select.input,textarea.input{font:inherit;color:var(--fg);background:var(--surface);border:1px solid var(--line);border-radius:8px;width:100%;min-width:0;padding:8px 10px;font-size:15px}.input:focus{border-color:var(--gold);outline:none}.input:disabled{color:var(--fg);opacity:1;background:0 0;border-color:#0000}textarea.input{resize:vertical;min-height:60px}.table-wrap{overflow-x:auto}table.data{border-collapse:collapse;width:100%;font-size:14px}table.data th{text-align:left;color:var(--muted);border-bottom:1px solid var(--line);white-space:nowrap;padding:8px 6px;font-size:12px;font-weight:600}table.data td{border-bottom:1px solid var(--line);vertical-align:middle;padding:2px}table.data tr:last-child td{border-bottom:0}table.data .cell{font:inherit;color:var(--fg);background:0 0;border:1px solid #0000;border-radius:6px;width:100%;min-width:0;padding:6px}table.data .cell:hover:not(:disabled){border-color:var(--line)}table.data .cell:focus{border-color:var(--gold);background:var(--surface);outline:none}table.data .cell.num{text-align:right}table.data tfoot td{border-top:1px solid var(--line);border-bottom:0;padding:8px 6px;font-weight:600}table.data .right{text-align:right}.pill{background:var(--accent-soft);color:var(--accent);white-space:nowrap;border-radius:99px;padding:2px 8px;font-size:12px;font-weight:600;display:inline-block}.pill.ok{background:color-mix(in srgb, var(--ok) 15%, transparent);color:var(--ok)}.pill.muted{background:var(--surface-2);color:var(--muted)}.notice{background:var(--accent-soft);color:var(--fg);border-radius:8px;padding:10px 14px;font-size:14px}.error{color:var(--accent);font-size:14px}.bar{background:var(--line);border-radius:99px;height:6px;overflow:hidden}.bar>i{background:var(--accent);border-radius:99px;height:100%;transition:width .3s;display:block}.stat{flex-direction:column;gap:6px;display:flex}.stat .big{font-family:var(--font-display);color:var(--accent);font-variant-numeric:tabular-nums;font-size:30px;font-weight:700;line-height:1.1}.eyebrow{letter-spacing:.1em;text-transform:uppercase;color:var(--gold);font-size:12px;font-weight:600}.divider{color:var(--muted);align-items:center;gap:12px;font-size:13px;display:flex}.divider:before,.divider:after{content:"";background:var(--line);flex:1;height:1px}ul.tasks{margin:0;padding:0;list-style:none}ul.tasks>li+li{border-top:1px solid var(--line)}.task{align-items:flex-start;gap:12px;padding:10px 16px;display:flex}.task:hover{background:var(--surface-2)}.check{border:1.5px solid var(--muted);cursor:pointer;width:22px;height:22px;color:var(--accent-fg);background:0 0;border-radius:6px;flex:none;place-content:center;margin-top:2px;padding:0;display:grid}.check[aria-checked=true]{background:var(--accent);border-color:var(--accent)}.check svg{stroke:currentColor;stroke-width:3px;fill:none;opacity:0;width:14px;height:14px}.check[aria-checked=true] svg{opacity:1}.check:disabled{cursor:default}.task-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.task-title{font-weight:500}.task-sub{color:var(--muted);font-size:13px}.task.done .task-title,.task.done .task-sub{color:var(--done);text-decoration:line-through;-webkit-text-decoration-color:var(--line);text-decoration-color:var(--line)}.task-meta{color:var(--muted);flex-wrap:wrap;gap:8px;font-size:12px;display:flex}.task-meta .late{color:var(--accent);font-weight:600}.task-edit{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px;padding:0 16px 14px 50px;display:grid}@media (max-width:520px){.task-edit{padding-left:16px}}.seating{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;display:grid}.seat-table{min-height:120px}.seat-table.over{outline:2px dashed var(--gold);outline-offset:-2px}.seat-table ul{flex-direction:column;gap:4px;margin:0;padding:6px 8px 10px;list-style:none;display:flex}.chip{background:var(--surface-2);border:1px solid var(--line);cursor:grab;border-radius:6px;justify-content:space-between;align-items:center;gap:8px;padding:4px 8px;font-size:14px;display:flex}.chip[draggable=false]{cursor:default}.chip .side-groom{color:#2f5f9a}.chip .side-bride{color:var(--accent)}.print-only{display:none}@media print{.topbar,.tabs,.no-print,.btn{display:none!important}.print-only{display:block}body{color:#000;background:#fff}.card{border-color:#ccc}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}
