.plan-page{--p-both: #b9894f;--p-both-tint: #f6ecdf;--p-late: #c0392b;--st-todo: #b3aaa4;--st-doing: #e0953a;--st-done: #5c9b6c;--p-future: #2f6fb3}.plan-saved .plan:not(.is-live){position:relative;min-height:320px}.plan-saved .plan:not(.is-live)>*{visibility:hidden}.plan-saved .plan:not(.is-live):before{content:"Đang mở kế hoạch đã lưu…";position:absolute;top:48px;left:0;right:0;text-align:center;color:var(--b-muted)}.plan{display:grid;grid-template-columns:minmax(0,1fr);gap:18px}.plan-print-title{display:none}.plan-hint{margin:0;color:var(--b-muted);font-size:13px;line-height:1.5}.plan-link-button{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid var(--b-line);border-radius:999px;background:var(--b-card);color:var(--b-muted);font-size:13px;white-space:nowrap}.plan-link-button.danger{color:var(--p-late)}.plan-icon-button{display:inline-grid;place-items:center;width:32px;height:32px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--b-muted)}.plan-icon-button:hover{background:var(--b-accent-tint);color:var(--b-ink)}.plan-add{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border:1px dashed #d8c3bd;border-radius:999px;background:var(--b-card);color:var(--b-accent);font-size:14px;font-weight:500}.plan-add:hover{background:var(--b-accent-tint)}.plan-dot{flex:none;display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--p-both)}.plan-dot.side-groom{background:var(--b-groom)}.plan-dot.side-bride{background:var(--b-bride)}.plan-setup{display:grid;gap:18px;padding:clamp(16px,2.4vw,24px);border:1px solid var(--b-line);border-radius:18px;background:#fbf6f2d1}.plan-setup-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.plan-setup h2{margin:0;font:400 21px / 1.3 var(--serif)}.plan-setup-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:14px 20px}.plan-field{display:grid;align-content:start;gap:6px;min-width:0;margin:0;padding:0;border:0}.plan-field>span,.plan-field>label,.plan-field>legend{padding:0;font-size:13px;font-weight:600;color:var(--b-ink)}.plan-field legend{margin-bottom:6px}.plan-field small{color:var(--b-muted);font-size:12.5px;line-height:1.45}.plan input[type=text],.plan input[type=date],.plan select,.plan textarea{width:100%;min-width:0;min-height:40px;padding:8px 10px;border:1px solid var(--b-line);border-radius:10px;background:var(--b-card);color:var(--b-ink);font:inherit;font-size:15px}.plan textarea{resize:vertical;line-height:1.5}.plan input:focus-visible,.plan select:focus-visible,.plan textarea:focus-visible{outline:2px solid var(--b-accent);outline-offset:1px}.plan-field-date input{font-weight:600}.plan-more{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:12px}.plan-ceremonies,.plan-people{min-width:0;border:1px solid var(--b-line);border-radius:14px;background:var(--b-card)}.plan-ceremonies[open],.plan-people[open]{grid-column:1 / -1;padding-bottom:14px}.plan-more summary{display:flex;align-items:center;gap:12px;padding:12px 14px;cursor:pointer;list-style:none}.plan-more summary::-webkit-details-marker{display:none}.plan-more summary>span{display:grid;flex:1;gap:2px;min-width:0}.plan-more summary strong{font-size:15px;font-weight:600}.plan-more summary small{color:var(--b-muted);font-size:12.5px}.plan-more summary svg{flex:none;color:var(--b-faint);transition:transform .2s}.plan-more details:not([open]) summary svg{transform:rotate(-90deg)}.plan-more details>:not(summary){margin-inline:14px}.plan-more .plan-hint{margin-top:0}.plan-ceremonies ul{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px;margin:0;padding:0;list-style:none}.plan-ceremonies li{display:grid;gap:8px;padding:10px 12px;border:1px solid var(--b-line);border-radius:12px;background:var(--b-card)}.plan-ceremonies li.off{background:transparent;opacity:.7}.plan-ceremonies li input[type=date]{min-height:34px;padding:4px 8px;font-size:14px}.plan-check{display:flex;align-items:flex-start;gap:10px;cursor:pointer}.plan-check input{flex:none;width:18px;height:18px;margin:2px 0 0;accent-color:var(--b-accent)}.plan-check>span{display:grid;gap:2px;font-size:14px}.plan-check small{color:var(--b-muted);font-size:12.5px}.plan-people ul{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0;padding:0;list-style:none}.plan-person{display:flex;align-items:center;gap:8px;padding:4px 6px 4px 12px;border:1px solid var(--b-line);border-radius:999px;background:var(--b-card);font-size:14px}.plan-person.owner{padding-right:14px}.plan-person.owner small{color:var(--b-muted);font-size:11.5px}.plan .plan-person input[type=text]{width:150px;min-height:32px;padding:4px 8px;border-color:transparent;font-size:14px}.plan .plan-person select{width:auto;min-height:32px;padding:4px 6px;font-size:13px}.plan-overview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.plan-stat{display:grid;align-content:start;gap:4px;padding:14px 16px;border:1px solid var(--b-line);border-radius:16px;background:var(--b-card);box-shadow:var(--b-shadow)}.plan-stat>span:first-child{color:var(--b-muted);font-size:13px}.plan-stat strong{font:400 26px / 1.2 var(--serif);color:var(--b-ink)}.plan-stat small{color:var(--b-muted);font-size:12.5px;line-height:1.45}.plan-stat.countdown strong{color:var(--b-accent)}.plan-stat a{margin-top:4px;color:var(--b-accent);font-size:13px;font-weight:500;text-decoration:underline;text-underline-offset:3px}.plan-split{display:flex;flex-wrap:wrap;gap:2px 10px}.plan-split .family-groom{color:var(--b-groom)}.plan-split .family-bride{color:var(--b-bride)}.plan-bar{display:block;height:6px;border-radius:999px;background:var(--b-line);overflow:hidden}.plan-bar i{display:block;height:100%;border-radius:inherit;background:var(--b-accent)}.plan-toolbar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px}.plan-tabs{display:inline-flex;gap:4px;padding:4px;border:1px solid var(--b-line);border-radius:14px;background:var(--b-card)}.plan-tabs button{display:inline-flex;align-items:center;gap:8px;padding:9px 16px;border:0;border-radius:10px;background:transparent;color:var(--b-muted);font-size:15px;font-weight:500}.plan-tabs button[aria-selected=true]{background:var(--b-accent);color:#fff}.plan-filters{display:flex;flex-wrap:wrap;gap:10px}.plan-filters label{display:grid;gap:4px;font-size:12px;color:var(--b-muted)}.plan .plan-filters select{width:auto;min-width:130px;min-height:36px;padding:4px 8px;font-size:14px}.plan-groups{display:grid;gap:12px}.plan-group{border:1px solid var(--b-line);border-radius:16px;background:var(--b-card);box-shadow:var(--b-shadow);overflow:hidden}.plan-group h3{margin:0}.plan-group h3 button{display:flex;align-items:center;gap:12px;width:100%;padding:14px 16px;border:0;background:transparent;color:var(--b-ink);text-align:left}.plan-group-title{display:grid;gap:2px;flex:1;min-width:0;font:700 17px / 1.3 "Noto Serif",var(--serif)}.plan-group-title small{font:400 13px / 1.4 var(--sans, inherit);color:var(--b-muted)}.plan-group-count{padding:2px 10px;border-radius:999px;background:var(--b-accent-tint);color:var(--b-accent);font-size:13px;font-weight:600}.plan-group h3 svg{color:var(--b-faint);transition:transform .2s}.plan-group:not(.open) h3 svg{transform:rotate(-90deg)}.plan-group ul{margin:0;padding:0 8px 8px;list-style:none}.plan-none{padding:8px 12px 12px;color:var(--b-faint);font-size:14px}.plan-task{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:8px;border-top:1px solid var(--b-line)}.plan-status{display:grid;place-items:center;width:26px;height:26px;padding:0;border:2px solid var(--st-todo);border-radius:50%;background:var(--b-card);color:#fff}.plan-status.status-doing{border-color:var(--st-doing);background:linear-gradient(90deg,var(--st-doing) 50%,var(--b-card) 50%)}.plan-status.status-done{border-color:var(--st-done);background:var(--st-done)}.plan-task-main{display:grid;gap:3px;min-width:0;padding:4px 0;border:0;background:transparent;color:var(--b-ink);text-align:left}.plan-task-title{font-size:15px;line-height:1.4}.plan-task.status-done .plan-task-title{color:var(--b-faint);text-decoration:line-through}.plan-task-meta{display:flex;flex-wrap:wrap;gap:2px 12px;color:var(--b-muted);font-size:12.5px}.plan-due.past{color:var(--b-faint)}.plan-due.future{color:var(--p-future);font-weight:500}.plan-checked{color:#4f7f4f}.plan-owner{max-width:120px;overflow:hidden;padding:3px 10px;border-radius:999px;background:var(--p-both-tint);color:#7a5a30;font-size:12.5px;font-weight:500;white-space:nowrap;text-overflow:ellipsis}.plan-owner.side-groom{background:var(--b-groom-tint);color:var(--b-groom)}.plan-owner.side-bride{background:var(--b-bride-tint);color:#a9463f}.plan-list-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:12px}.plan-empty{display:grid;justify-items:center;gap:12px;padding:40px 16px;border:1px dashed var(--b-line);border-radius:16px;background:var(--b-card);color:var(--b-muted);text-align:center}.plan-gantt{--name-w: 260px;--row-h: 34px;border:1px solid var(--b-line);border-radius:16px;background:var(--b-card);box-shadow:var(--b-shadow);overflow:hidden}.plan-gantt-scroll{max-height:72vh;overflow:auto;overscroll-behavior-x:contain}.plan-gantt-inner{position:relative;width:calc(var(--name-w) + var(--gantt-w))}.plan-gantt-row{display:flex;min-height:var(--row-h);border-bottom:1px solid #f4eeea}.plan-gantt-name{position:sticky;left:0;z-index:4;display:flex;align-items:center;gap:8px;flex:none;width:var(--name-w);padding:4px 12px;border:0;border-right:1px solid var(--b-line);background:var(--b-card);color:var(--b-ink);font-size:13.5px;text-align:left}.plan-gantt-name span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}button.plan-gantt-name:hover{background:var(--b-cream)}.plan-gantt-track{position:relative;flex:none;width:var(--gantt-w)}.plan-gantt-head,.plan-gantt-marks{position:sticky;z-index:5;background:var(--b-cream)}.plan-gantt-head{top:0;min-height:30px}.plan-gantt-marks{top:30px;min-height:46px}.plan-gantt-head .plan-gantt-name,.plan-gantt-marks .plan-gantt-name{z-index:6;background:var(--b-cream);color:var(--b-muted);font-size:12.5px;font-weight:600}.plan-gantt-month{position:absolute;top:0;height:30px;padding:6px;border-left:1px solid var(--b-line);color:var(--b-muted);font-size:12px;font-weight:600;white-space:nowrap}.plan-gantt-week{position:absolute;bottom:2px;padding-left:3px;border-left:1px dotted #e3d8d2;color:var(--b-faint);font-size:10.5px}.scale-week .plan-gantt-head{min-height:46px}.scale-week .plan-gantt-marks{top:46px}.scale-week .plan-gantt-month{height:22px}.plan-gantt-diamond{position:absolute;top:6px;display:grid;justify-items:center;gap:3px;transform:translate(-50%);white-space:nowrap}.plan-gantt-diamond i{width:12px;height:12px;background:var(--b-accent);transform:rotate(45deg)}.plan-gantt-diamond small{padding:0 4px;border-radius:4px;background:#fbf6f2e5;color:var(--b-accent);font-size:11px;font-weight:600}.plan-gantt-diamond.lower small{transform:translateY(13px)}.plan-gantt-body{position:relative}.plan-gantt-lines{position:absolute;inset:0 0 0 var(--name-w);z-index:1;pointer-events:none}.plan-gantt-vline{position:absolute;top:0;bottom:0;border-left:1.5px dashed rgb(180 83 76 / 45%)}.plan-gantt-today{position:absolute;top:0;bottom:0;border-left:2px solid var(--p-late)}.plan-gantt-today small{position:sticky;top:80px;display:inline-block;margin-left:4px;padding:1px 6px;border-radius:4px;background:var(--p-late);color:#fff;font-size:10.5px;font-weight:600}.plan-gantt-group-title{background:#fdf8f5}.plan-gantt-group-title .plan-gantt-name{background:#fdf8f5;color:var(--b-accent);font:700 13.5px / 1.3 "Noto Serif",var(--serif)}.plan-gantt-bar{position:absolute;top:7px;z-index:2;height:20px;min-width:6px;overflow:hidden;padding:0 6px;border:0;border-radius:6px;background:var(--st-todo);color:#fff;font-size:11px;line-height:20px;text-align:left;white-space:nowrap}.plan-gantt-bar.status-doing{background:var(--st-doing)}.plan-gantt-bar.status-done{background:var(--st-done)}.plan-gantt-bar:hover,.plan-gantt-bar:focus-visible{filter:brightness(1.08);outline:2px solid var(--b-ink)}.plan-gantt-off{position:absolute;top:7px;z-index:3;height:20px;padding:0 8px;border:1px dashed var(--st-todo);border-radius:999px;background:var(--b-card);color:var(--b-muted);font-size:11.5px;line-height:18px;white-space:nowrap}.plan-gantt-off.after{transform:translate(-100%)}.plan-gantt-off.status-doing{border:1px solid var(--st-doing);color:#a8641a}.plan-gantt-off.status-done{border:1px solid var(--st-done);color:#3f7a4f}.plan-gantt-off:hover,.plan-gantt-off:focus-visible{background:var(--b-accent-tint);color:var(--b-ink)}.scale-month .plan-gantt-bar span{display:none}.plan-gantt-legend{display:flex;flex-wrap:wrap;gap:6px 16px;margin:0;padding:10px 14px;border-top:1px solid var(--b-line);color:var(--b-muted);font-size:12.5px;list-style:none}.plan-gantt-legend li{display:inline-flex;align-items:center;gap:6px}.plan-swatch{display:inline-block;width:22px;height:10px;border-radius:3px;background:var(--st-todo)}.plan-swatch.status-doing{background:var(--st-doing)}.plan-swatch.status-done{background:var(--st-done)}.plan-legend-people{margin-left:auto}.plan-notice{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;margin-bottom:12px;padding:12px 16px;border:1px solid #f0d9b5;border-radius:14px;background:#fdf6ea}.plan-notice p{margin:0;flex:1 1 320px;color:var(--b-ink);font-size:14px;line-height:1.5}.plan-editor .budget-segmented button.status-todo[aria-pressed=true]{background:var(--st-todo)}.plan-editor .budget-segmented button.status-doing[aria-pressed=true]{background:var(--st-doing)}.plan-editor .budget-segmented button.status-done[aria-pressed=true]{background:var(--st-done)}.plan-editor-backdrop{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:16px;background:#26232261}.plan-editor{display:grid;gap:14px;width:min(560px,100%);max-height:calc(100dvh - 32px);overflow-y:auto;padding:20px;border-radius:18px;background:var(--b-card);box-shadow:0 24px 60px -20px #28140f73}.plan-editor-head{display:flex;justify-content:space-between;align-items:center}.plan-editor h3{margin:0;font:400 21px / 1.3 var(--serif)}.plan-editor-note{margin:-6px 0 0;color:var(--b-muted);font-size:13.5px;line-height:1.55}.plan-editor-link{display:inline-flex;align-items:center;gap:6px;justify-self:start;color:var(--b-accent);font-size:14px;font-weight:600;text-decoration:underline;text-underline-offset:3px}.plan-editor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.plan-page .button.primary{border-color:var(--b-accent);background:var(--b-accent);color:#fff}.plan-editor .budget-money{min-height:40px}.plan-editor-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-top:4px}.plan-keep{padding:18px 20px;border:1px solid var(--b-line);border-radius:16px;background:#fbf6f2d1}.plan-keep h3{margin:0 0 6px;font:400 19px / 1.3 var(--serif)}.plan-keep p{margin:0 0 12px;color:var(--b-muted);font-size:14px;line-height:1.6}.plan-downloads{display:flex;flex-wrap:wrap;gap:10px}.plan-downloads .button{gap:8px}.plan-page .budget-article a,.budget-page .budget-article a{color:var(--b-accent);text-decoration:underline;text-underline-offset:3px}.plan-ceremony-list{display:grid;grid-template-columns:max-content 1fr;gap:8px 18px;margin:0}.plan-ceremony-list dt{font-weight:600}.plan-ceremony-list dd{margin:0;color:var(--b-muted);line-height:1.6}.plan-cta-links{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:14px}.plan-cta .budget-callout{max-width:360px;text-align:left}@media(max-width:900px){.plan-overview{grid-template-columns:repeat(2,minmax(0,1fr))}.plan-setup-grid{grid-template-columns:1fr 1fr}.plan-field-date{grid-column:1 / -1}}@media(max-width:600px){.plan-more{grid-template-columns:1fr}.plan-legend-people{margin-left:0}.plan-gantt{--name-w: 132px}.plan-gantt-name{padding:4px 8px;font-size:12.5px}.plan-gantt-name .plan-dot{display:none}.plan-overview{gap:8px}.plan-stat{padding:12px}.plan-stat strong{font-size:22px}.plan-toolbar,.plan-tabs{width:100%}.plan-tabs button{flex:1;justify-content:center}.plan-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%}.plan .plan-filters select{min-width:0;width:100%}.plan-task{gap:8px;padding:8px 4px}.plan-owner{max-width:92px;padding:3px 8px;font-size:12px}.plan .plan-person input[type=text]{width:120px}.plan-ceremony-list{grid-template-columns:1fr;gap:2px}.plan-ceremony-list dd{margin-bottom:8px}.plan-editor-backdrop{align-items:end;padding:0}.plan-editor{max-height:92dvh;border-radius:18px 18px 0 0}}@media print{.plan-setup,.plan-overview,.plan-toolbar,.plan-keep,.plan-list-actions,.plan-group h3 svg,.plan-status{display:none!important}.plan-print-title{display:grid;gap:2px;margin-bottom:4px;font-size:13px}.plan-print-title strong{font:400 22px / 1.3 var(--serif)}.plan-group{box-shadow:none;break-inside:auto}.plan-task{break-inside:avoid;padding:4px 8px}}body:has(.plan-editor-backdrop) .zalo-bubble{display:none}
