/* Welon – aplikacja. Bordowe menu boczne, jasny obszar pracy, każdy moduł ma swój kolor (--mod). */
body{background:var(--bg)}
[hidden]{display:none!important}
.muted{color:var(--ink-2)}

/* ---------- start ---------- */
.boot{position:fixed;inset:0;display:grid;place-content:center;justify-items:center;gap:14px;background:var(--wine-900);color:oklch(0.9 0.03 10);z-index:var(--z-overlay)}
.boot-mark{width:72px;height:72px;animation:breathe 1.6s var(--ease) infinite alternate}
@keyframes breathe{from{transform:scale(.94);opacity:.75}to{transform:scale(1);opacity:1}}

/* ---------- szkielet ---------- */
.shell{display:grid;grid-template-columns:252px minmax(0,1fr);min-height:100vh}
.side{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:22px;padding:22px 16px 18px;background:var(--wine-900);color:oklch(0.92 0.02 10);z-index:var(--z-nav)}
.side-brand{display:flex;align-items:center;gap:11px;text-decoration:none;padding:0 6px}
.side-brand b{font:30px/1 var(--display);font-weight:400;display:block;color:#fff}
.side-brand small{font-size:12px;color:oklch(0.78 0.04 10)}
.side-brand .mark{width:40px;height:40px}
.side-nav{display:grid;gap:3px}
.side-nav button,.side-settings{display:flex;align-items:center;gap:12px;border:0;background:none;color:oklch(0.86 0.03 10);padding:11px 12px;border-radius:11px;font-weight:600;font-size:15px;cursor:pointer;text-align:left;transition:background-color .18s var(--ease),color .18s}
.side-nav svg,.side-settings svg,.bottom-nav svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}
.side-nav button:hover,.side-settings:hover{background:oklch(1 0 0 / .07);color:#fff}
.side-nav button.on{background:oklch(1 0 0 / .11);color:#fff}
.side-nav button.on svg{stroke:var(--peony)}
.side-foot{margin-top:auto;display:grid;gap:10px}
.side-couple{padding:16px;border-radius:16px;background:oklch(1 0 0 / .06)}
.side-couple b{font:22px/1.15 var(--display);font-weight:400;color:#fff;display:block}
.side-couple .cd{display:flex;align-items:baseline;gap:6px;margin-top:10px;color:oklch(0.82 0.04 10);font-size:13px}
.side-couple .cd strong{font:34px/1 var(--display);font-weight:400;color:var(--peony)}
.sync{display:flex;align-items:center;gap:8px;font-size:12.5px;color:oklch(0.82 0.03 10);padding:0 12px}
.sync i{width:8px;height:8px;border-radius:50%;background:var(--ok);flex:none}
.sync.saving i{background:var(--champagne);animation:breathe .8s infinite alternate}
.sync.offline i{background:var(--bad)}

.main{min-width:0;padding:28px clamp(16px,3vw,40px) 60px}
.demo-bar,.local-bar{margin:-8px 0 20px;padding:10px 14px;border-radius:12px;font-size:14px;font-weight:600}
.demo-bar{background:var(--wine);color:#fff}
.demo-bar a{color:var(--peony);font-weight:800;margin-left:6px}
.local-bar{background:var(--warn-bg);color:oklch(0.42 0.1 60)}

.tab{display:none;--mod:var(--wine)}
.tab.on{display:block;animation:tabIn .28s var(--ease)}
@keyframes tabIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.tab[data-mod="tables"]{--mod:var(--c-tables)}
.tab[data-mod="costs"]{--mod:var(--c-budget)}
.tab[data-mod="tasks"]{--mod:var(--c-tasks)}
.tab[data-mod="invites"]{--mod:var(--c-invites)}

.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:20px}
.page-head h1{font:clamp(30px,3.2vw,40px)/1.05 var(--display);font-weight:400;margin:0;letter-spacing:-.01em}
.page-head h1::after{content:"";display:block;width:44px;height:3px;border-radius:3px;background:var(--mod);margin-top:12px}
.page-sub{margin:10px 0 0;color:var(--ink-2);max-width:62ch}
.head-acts{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.tab .btn:not(.ghost){background:var(--mod)}
.tab .btn:not(.ghost):hover{filter:brightness(.92)}

.panel{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:18px}
.panel-h{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px;flex-wrap:wrap}
.panel-h h2{font-size:16px;margin:0;font-weight:800}
.count{color:var(--ink-2);font-weight:600}
.links{display:flex;gap:14px}
.link{border:0;background:none;color:var(--mod,var(--wine));font-weight:700;font-size:13.5px;cursor:pointer;padding:2px 0}
.link:hover{text-decoration:underline}
.input.sm-select{width:auto;padding:8px 12px;font-size:14px}
.input{padding:9px 12px;font-size:14.5px}

/* ---------- PULPIT ---------- */
.hello{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(220px,.8fr);gap:0;border-radius:26px;overflow:hidden;background:var(--wine-900);color:#fff;margin-bottom:18px;position:relative;isolation:isolate}
.hello::before{content:"";position:absolute;inset:auto -80px -140px auto;width:420px;height:420px;border-radius:50%;background:radial-gradient(circle,oklch(0.69 0.155 14 / .35),transparent 65%);z-index:-1}
.hello-l{padding:clamp(24px,4vw,44px)}
.hello-l .greet{color:oklch(0.85 0.04 10);font-weight:600;margin:0 0 6px}
.hello-l h1{font:clamp(34px,4.6vw,58px)/1.02 var(--display);font-weight:400;margin:0}
.hello-l h1 span{color:var(--peony)}
.hello-l .when{margin:14px 0 0;color:oklch(0.86 0.03 10);font-size:15px}
.hello-acts{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}
.tab .hello-acts .btn:not(.ghost){background:var(--peony);color:var(--wine-900)}
.tab .hello-acts .btn:not(.ghost):hover{filter:none;background:oklch(0.75 0.15 14)}
.hello-acts .btn.ghost{background:transparent;color:#fff;border-color:oklch(1 0 0 / .3)}
.hello-acts .btn.ghost:hover{background:oklch(1 0 0 / .08)}
.hello-r{display:grid;place-content:center;justify-items:center;padding:28px;border-left:1px solid oklch(1 0 0 / .1);text-align:center}
.hello-r strong{font:clamp(64px,8vw,104px)/.9 var(--display);font-weight:400;color:var(--peony)}
.hello-r span{color:oklch(0.86 0.03 10);margin-top:8px}
.ready{width:100%;max-width:220px;margin-top:22px;text-align:left;font-size:13px;color:oklch(0.84 0.03 10)}
.ready .bar{height:6px;border-radius:6px;background:oklch(1 0 0 / .12);margin-top:6px;overflow:hidden}
.ready .bar i{display:block;height:100%;background:var(--peony);border-radius:6px}

.dash{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:18px}
.d-seat{grid-column:span 7}
.d-tasks{grid-column:span 5;grid-row:span 2}
.d-money{grid-column:span 4}
.d-guests{grid-column:span 3}
.dcard{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:20px;display:flex;flex-direction:column;gap:12px;min-width:0}
.dcard h3{margin:0;font-size:15px;font-weight:800;display:flex;align-items:center;gap:9px}
.dcard h3 i{width:10px;height:10px;border-radius:3px;background:var(--c)}
.dcard .go{margin-top:auto;align-self:flex-start;border:0;background:none;color:var(--c);font-weight:800;font-size:14px;cursor:pointer;padding:4px 0}
.dcard .go:hover{text-decoration:underline}
.d-seat{--c:var(--c-tables)} .d-money{--c:var(--c-budget)} .d-tasks{--c:var(--c-tasks)} .d-guests{--c:var(--c-invites)}
.mini-room{border-radius:14px;overflow:hidden;border:1px solid var(--line);background:#fffdfc}
.mini-room svg{display:block;width:100%;height:auto;pointer-events:none}
.big-stat{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.big-stat b{font:40px/1 var(--display);font-weight:400}
.big-stat span{color:var(--ink-2);font-size:14px}
.meter{height:9px;border-radius:9px;background:var(--line);overflow:hidden;display:flex}
.meter i{display:block;height:100%;background:var(--c,var(--mod))}
.meter i.rest{background:oklch(0.88 0.05 12)}
.kv{display:grid;grid-template-columns:1fr auto;gap:6px 12px;font-size:14px}
.kv span{color:var(--ink-2)} .kv b{text-align:right;font-variant-numeric:tabular-nums}
.d-list{list-style:none;margin:0;padding:0;display:grid}
.d-list li{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line);font-size:14.5px}
.d-list li:last-child{border-bottom:0}
.d-list .when{margin-left:auto;font-size:12.5px;font-weight:700;color:var(--ink-2);white-space:nowrap}
.d-list .when.late{color:var(--bad)}
.empty-note{color:var(--ink-2);font-size:14px;margin:0}

/* ---------- PLANER ---------- */
.toolbar{display:flex;flex-wrap:wrap;gap:10px 18px;margin-bottom:14px;align-items:center}
.tb-group{display:flex;gap:6px;flex-wrap:wrap}
.tb-group.zoom{margin-left:auto}
.tool{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line-2);background:var(--surface);padding:7px 12px;border-radius:10px;cursor:pointer;font-weight:600;font-size:13.5px;white-space:nowrap;transition:border-color .15s,background-color .15s}
.tool svg{width:17px;height:17px;fill:none;stroke:var(--mod);stroke-width:1.8}
.tool:hover{border-color:var(--mod);background:var(--blush)}
.tool.sq{width:36px;justify-content:center;padding:7px 0;font-size:16px}
.planner{display:grid;grid-template-columns:310px minmax(0,1fr) 280px;gap:16px;align-items:start}
.add-guest{display:grid;grid-template-columns:1fr;gap:6px}
.paste-link{margin:8px 0 12px;font-size:13px}
.g-filters{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:8px}
.g-filters .input{min-width:0;padding:9px 10px;font-size:13.5px}
.assign-hint{background:var(--blush);color:var(--wine-800);border-radius:10px;padding:9px 11px;font-size:13.5px;margin:0 0 8px}
.g-list{list-style:none;margin:0 -6px;padding:0;max-height:calc(100vh - 400px);min-height:160px;overflow:auto}
.g-list li{display:flex;align-items:center;gap:9px;padding:8px 8px;border-radius:10px;cursor:grab;user-select:none}
.g-list li:hover{background:var(--bg)}
.g-list li.sel{background:var(--blush);box-shadow:inset 0 0 0 1.5px var(--wine-600)}
.g-dot{width:10px;height:10px;border-radius:50%;flex:none}
.g-name{flex:1;min-width:0;font-size:14.5px;font-weight:600}
.g-name span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.g-name small{display:block;color:var(--ink-2);font-size:12px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rs{font-size:11px;font-weight:800;padding:2px 7px;border-radius:999px;flex:none}
.rs.yes{background:var(--ok-bg);color:var(--ok)} .rs.no{background:var(--bad-bg);color:var(--bad)} .rs.wait{background:var(--bg);color:var(--ink-2)}
.g-tbl{font-size:11.5px;font-weight:800;padding:3px 8px;border-radius:999px;background:var(--blush);color:var(--wine-600);flex:none}
.g-tbl.none{background:var(--warn-bg);color:oklch(0.48 0.11 60)}
.g-edit{border:0;background:none;color:var(--ink-2);cursor:pointer;padding:4px;font-size:15px;border-radius:6px;opacity:.6}
li:hover .g-edit,.g-edit:focus-visible{opacity:1}
.empty{color:var(--ink-2);text-align:center;padding:26px 10px;font-size:14px;cursor:default!important}

.stage{background:var(--surface);border:1px solid var(--line);border-radius:18px;overflow:hidden}
.stage-scroll{overflow:auto;max-height:calc(100vh - 230px)}
#room{display:block;user-select:none;-webkit-user-select:none}
.legend{display:flex;flex-wrap:wrap;gap:6px 14px;padding:10px 14px;border-top:1px solid var(--line);font-size:12.5px;color:var(--ink-2)}
.legend i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:5px;vertical-align:-1px}

.tbl{cursor:grab}
.tbl:active{cursor:grabbing}
.tbl .top-shape{fill:#fff;stroke:oklch(0.8 0.03 10);stroke-width:2}
.tbl.head .top-shape{fill:oklch(0.95 0.03 10);stroke:var(--wine-600);stroke-width:3}
.tbl.sel .top-shape{stroke:var(--wine-600);stroke-width:5}
.tbl.target .top-shape{stroke:var(--champagne);stroke-width:5;stroke-dasharray:12 7}
.tbl .t-name{font:800 30px var(--sans);fill:var(--ink);text-anchor:middle;dominant-baseline:central;pointer-events:none}
.tbl .t-sub{font:600 24px var(--sans);fill:var(--ink-2);text-anchor:middle;dominant-baseline:central;pointer-events:none}
.tbl.head .t-name{font:400 36px var(--display);fill:var(--wine-800)}
.seat circle{fill:#fff;stroke:oklch(0.8 0.03 10);stroke-width:1.5}
.seat text{font:800 14px var(--sans);fill:#fff;text-anchor:middle;dominant-baseline:central;pointer-events:none}
.seat:hover circle{stroke:var(--wine-600);stroke-width:3}
.seat.picked circle{stroke:var(--ink);stroke-width:4}
.seat.hit circle{stroke:var(--champagne);stroke-width:6}
.seat.declined circle{opacity:.45}
.decor rect{stroke-width:2}
.decor.floor rect{stroke:oklch(0.82 0.06 78)}
.decor.dj rect{fill:var(--wine-900);stroke:var(--wine-900)}
.decor text{font:800 34px var(--sans);text-anchor:middle;dominant-baseline:central;pointer-events:none;letter-spacing:.14em}
.decor.floor text{fill:oklch(0.55 0.07 78)}
.decor.dj text{fill:#fff;font-size:30px}
.decor.sel rect{stroke:var(--peony);stroke-width:5}

.inspector h3{font:24px/1.1 var(--display);font-weight:400;margin:0 0 12px}
.ins-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0;align-items:end}
.ins .acts{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0}
.ins ul{list-style:none;padding:0;margin:6px 0 0}
.ins ul li{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid var(--line);font-size:14px}
.ins ul li span:not(.g-dot){flex:1}
.ins ul li button{border:0;background:none;color:var(--ink-2);cursor:pointer;padding:2px 6px;border-radius:6px}
.ins ul li button:hover{background:var(--bad-bg);color:var(--bad)}
.ins .kv{margin:12px 0}
.tip{background:var(--blush);border-radius:12px;padding:11px 13px;font-size:13.5px;margin-top:14px;color:var(--wine-800)}
.danger{color:var(--bad)!important}

/* ---------- BUDŻET ---------- */
.budget-top{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:18px;margin-bottom:18px}
.bt-main{background:var(--c-budget);color:#fff;border-radius:22px;padding:24px 26px;display:grid;gap:16px}
.bt-main .lbl{font-weight:600;color:oklch(0.92 0.04 162);font-size:14px}
.bt-main .num{font:clamp(40px,5vw,60px)/1 var(--display);font-weight:400}
.bt-main .meter{background:oklch(1 0 0 / .2);height:12px}
.bt-main .meter i{background:#fff}
.bt-main .split{display:flex;gap:28px;flex-wrap:wrap;font-size:14px;color:oklch(0.93 0.03 162)}
.bt-main .split b{display:block;font-size:20px;color:#fff;font-variant-numeric:tabular-nums}
.bt-side{display:grid;gap:12px;align-content:start}
.bt-res{border-radius:18px;padding:18px 20px;border:1px solid var(--line);background:var(--surface)}
.bt-res small{color:var(--ink-2);font-weight:700;font-size:13px}
.bt-res b{display:block;font:34px/1.1 var(--display);font-weight:400;margin-top:4px}
.bt-res.pos b{color:var(--ok)} .bt-res.neg b{color:var(--bad)}
.bt-res p{margin:4px 0 0;font-size:13.5px;color:var(--ink-2)}
.costs-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:18px;align-items:start}
.side-col{display:grid;gap:18px}
.cg{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:13.5px;font-weight:600;color:var(--ink-2)}
.cg label{display:flex;align-items:center;gap:6px}
.cg input{width:72px;text-align:right;padding:6px 8px}
.cg small{flex-basis:100%;font-weight:500;font-size:12px;text-align:right}
.c-row{display:grid;grid-template-columns:minmax(160px,1.5fr) 112px minmax(90px,1fr) minmax(90px,1fr) 104px 140px 128px 30px;gap:8px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line)}
.c-row.h{font-size:12px;color:var(--ink-2);font-weight:800;border-bottom:1.5px solid var(--line-2);padding-top:0}
.c-row .input{padding:7px 9px;font-size:14px}
.c-row .num{text-align:right;font-variant-numeric:tabular-nums}
.c-left{font-weight:800;text-align:right;font-variant-numeric:tabular-nums;font-size:14.5px}
.c-cat{display:flex;gap:6px;align-items:center}
.c-cat .input{font-weight:700}
.tip-btn{border:0;background:var(--blush);color:var(--wine-600);width:26px;height:26px;border-radius:50%;cursor:pointer;flex:none;font-weight:800;font-size:13px}
.tip-btn[aria-expanded="true"]{background:var(--wine-600);color:#fff}
.c-tip{grid-column:1/-1;background:var(--blush);color:var(--wine-800);font-size:13.5px;border-radius:10px;padding:9px 13px}
.c-pp{font-size:11.5px;color:var(--ink-2);display:block;text-align:right;margin-top:3px}
.pill{font-size:12px;font-weight:800;padding:4px 9px;border-radius:999px;text-align:center;white-space:nowrap;display:inline-block}
.pill.paid{background:var(--ok-bg);color:var(--ok)}
.pill.part{background:var(--warn-bg);color:oklch(0.47 0.11 60)}
.pill.todo{background:var(--bg);color:var(--ink-2)}
.pill.late{background:var(--bad-bg);color:var(--bad)}
.del{border:0;background:none;color:var(--ink-2);cursor:pointer;border-radius:6px;padding:6px;display:grid;place-items:center}
.del:hover{color:var(--bad);background:var(--bad-bg)}
.add-row{margin-top:12px}
.f-row{display:grid;grid-template-columns:1fr 120px 28px;gap:8px;align-items:center;padding:6px 0;border-bottom:1px solid var(--line)}
.f-row .input{padding:7px 9px;font-size:14px}
.due-list{list-style:none;margin:0;padding:0}
.due-list li{display:grid;grid-template-columns:64px 1fr auto;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line);font-size:14px}
.due-date{font-size:12.5px;font-weight:800;color:var(--ink-2)}
.due-date.late{color:var(--bad)}
.bar{margin:10px 0;font-size:13.5px}
.bar div:first-child{display:flex;justify-content:space-between;gap:8px}
.bar .track{height:9px;border-radius:9px;background:var(--line);overflow:hidden;display:flex;margin-top:5px}
.bar .track i{display:block;height:100%}
.bar .track .p{background:var(--c-budget)} .bar .track .r{background:oklch(0.86 0.06 162)}

/* ---------- ZADANIA ---------- */
.task-add{display:grid;grid-template-columns:1fr 170px auto;gap:8px;margin-bottom:22px;padding:12px}
.t-group{margin-bottom:26px}
.t-group-h{display:flex;align-items:baseline;gap:12px;margin:0 0 10px;flex-wrap:wrap}
.t-group-h h2{font:24px/1.1 var(--display);font-weight:400;margin:0}
.t-group-h span{color:var(--ink-2);font-size:14px;font-weight:600}
.t-group-h .t-count{margin-left:auto;font-size:13px}
.t-list{list-style:none;margin:0;padding:0;background:var(--surface);border:1px solid var(--line);border-radius:16px;overflow:hidden}
.t-item{display:flex;align-items:center;gap:14px;padding:13px 16px;border-bottom:1px solid var(--line);transition:background-color .15s}
.t-item:last-child{border-bottom:0}
.t-item:hover{background:var(--bg)}
.t-check{appearance:none;width:22px;height:22px;border:2px solid var(--line-2);border-radius:7px;cursor:pointer;flex:none;display:grid;place-items:center;transition:background-color .15s,border-color .15s;margin:0}
.t-check:hover{border-color:var(--c-tasks)}
.t-check:checked{background:var(--c-tasks);border-color:var(--c-tasks)}
.t-check:checked::after{content:"";width:10px;height:6px;border:2.5px solid #fff;border-top:0;border-right:0;transform:rotate(-45deg) translate(1px,-1px)}
.t-title{flex:1;min-width:0;font-size:15px;font-weight:600}
.t-item.done .t-title{color:var(--ink-2);text-decoration:line-through;text-decoration-color:var(--line-2)}
.t-due{font-size:12.5px;font-weight:800;padding:4px 9px;border-radius:999px;background:var(--bg);color:var(--ink-2);white-space:nowrap}
.t-due.late{background:var(--bad-bg);color:var(--bad)}
.t-due.soon{background:var(--warn-bg);color:oklch(0.47 0.11 60)}
.t-progress{display:flex;align-items:center;gap:14px;max-width:420px;margin-top:10px}
.t-progress .meter{flex:1;--c:var(--c-tasks)}

/* ---------- ZAPROSZENIA ---------- */
.inv-hero{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(240px,.85fr);gap:clamp(24px,5vw,60px);align-items:center;background:oklch(0.97 0.015 305);border-radius:26px;padding:clamp(24px,4vw,48px);margin-bottom:22px}
.inv-hero h1{font:clamp(32px,4vw,48px)/1.05 var(--display);font-weight:400;margin:0}
.inv-hero h1 em{font-style:normal;color:var(--c-invites)}
.inv-hero p{color:var(--ink-2);max-width:56ch}
.inv-feat{list-style:none;padding:0;margin:20px 0 26px;display:grid;gap:12px}
.inv-feat li{display:flex;gap:12px;align-items:flex-start}
.inv-feat li::before{content:"";flex:none;width:20px;height:20px;border-radius:50%;margin-top:2px;background:var(--c-invites) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='m6 10 3 3 5-6' fill='none' stroke='white' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/100% no-repeat}
.inv-price{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.inv-price b{font:44px/1 var(--display);font-weight:400;color:var(--c-invites)}
.inv-price s{color:var(--ink-2)}
.phone{justify-self:center;width:min(270px,100%);aspect-ratio:9/18.5;border-radius:42px;background:var(--ink);padding:11px;box-shadow:var(--shadow-2);transform:rotate(3deg)}
.phone-in{height:100%;border-radius:32px;background:linear-gradient(170deg,#fff,oklch(0.95 0.03 305));display:grid;place-items:center;padding:20px;text-align:center}
.phone small{color:var(--ink-2);font-size:12px}
.phone .nm{font:38px/1.05 var(--display);margin:14px 0 8px}
.phone .nm span{display:block;color:var(--c-invites);font-size:28px}
.phone .dt{letter-spacing:.25em;font-size:12.5px;font-weight:800;color:var(--c-invites)}
.phone .rule{width:46px;height:1px;background:var(--champagne);margin:16px auto}
.phone p{font-size:12px;color:var(--ink-2);margin:0 0 16px}
.phone .b{display:block;background:var(--c-invites);color:#fff;border-radius:999px;padding:8px;font-size:12.5px;font-weight:800;margin-top:7px}
.phone .b.o{background:transparent;color:var(--c-invites);box-shadow:inset 0 0 0 1.5px var(--c-invites)}
.brief{max-width:760px;display:grid;gap:14px}
.brief .f2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.brief-done{background:var(--ok-bg);color:oklch(0.38 0.08 155);border-radius:14px;padding:14px 16px;font-weight:600}

/* ---------- WIZARD ---------- */
.wizard{position:fixed;inset:0;z-index:var(--z-modal);background:var(--wine-900);color:#fff;overflow:auto;display:flex;align-items:flex-start;justify-content:center;padding:6vh 20px 40px}
.wizard::before{content:"";position:fixed;right:-160px;top:-160px;width:560px;height:560px;border-radius:50%;background:radial-gradient(circle,oklch(0.69 0.155 14 / .28),transparent 65%);pointer-events:none}
.wz{width:100%;max-width:660px;position:relative}
.wz-progress{display:flex;gap:6px;margin-bottom:34px}
.wz-progress i{flex:1;height:4px;border-radius:9px;background:oklch(1 0 0 / .15)}
.wz-progress i.on{background:var(--peony)}
.wz h1{font:clamp(38px,6.5vw,62px)/1.02 var(--display);font-weight:400;margin:0}
.wz h1 em{font-style:normal;color:var(--peony)}
.wz .lead{font-size:17px;margin:16px 0 30px;color:oklch(0.88 0.03 10);max-width:56ch}
.wz-q{font:clamp(28px,4vw,38px)/1.1 var(--display)}
.wz-card{background:#fff;color:var(--ink);border-radius:22px;padding:24px;display:grid;gap:16px}
.wz-card .field input{padding:13px 14px;font-size:16px}
.big-num{display:flex;align-items:center;gap:18px}
.big-num output{font:72px/1 var(--display);color:var(--wine);min-width:130px}
.big-num input[type=range]{flex:1;accent-color:var(--wine)}
.chips{display:flex;gap:8px;flex-wrap:wrap}
.chip{border:1.5px solid var(--line-2);background:#fff;border-radius:999px;padding:7px 14px;cursor:pointer;font-weight:700;font-size:14px}
.chip.on{border-color:var(--wine);background:var(--blush);color:var(--wine)}
.opts{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.opts.three{grid-template-columns:repeat(3,1fr)}
.opt{border:1.5px solid oklch(1 0 0 / .14);background:oklch(1 0 0 / .05);color:#fff;border-radius:18px;padding:16px;text-align:left;cursor:pointer;display:grid;gap:6px;align-content:start;transition:background-color .2s var(--ease),border-color .2s}
.opt:hover{background:oklch(1 0 0 / .09)}
.opt svg{width:58px;height:42px}
.opt b{font-size:16px}
.opt small{color:oklch(0.86 0.03 10);font-size:13px;line-height:1.4}
.opt.on{border-color:var(--peony);background:oklch(0.69 0.155 14 / .16)}
.wz-nav{display:flex;justify-content:space-between;align-items:center;margin-top:26px;gap:10px}
.wz-nav .btn{background:var(--peony);color:var(--wine-900)}
.wz-nav .btn.ghost{background:transparent;color:#fff;border-color:oklch(1 0 0 / .3)}
.wz-skip{border:0;background:none;color:oklch(0.86 0.03 10);cursor:pointer;font-size:14px;text-decoration:underline}
.plan-sum{display:grid;gap:10px}
.plan-line{display:flex;align-items:center;gap:14px;padding:12px 14px;border-radius:14px;background:var(--bg);border:1px solid var(--line)}
.plan-line b{font:34px/1 var(--display);color:var(--wine);min-width:46px;text-align:center}
.plan-line select{width:auto;margin-left:auto}
.wz-card .kv{font-size:15px}
.why{background:var(--blush);color:var(--wine-800);border-radius:14px;padding:12px 14px;font-size:14.5px}

/* ---------- DIALOGI / TOAST ---------- */
.dlg{border:0;border-radius:22px;padding:26px;width:min(460px,calc(100vw - 32px));box-shadow:var(--shadow-2);background:var(--surface);color:var(--ink)}
.dlg.wide{width:min(600px,calc(100vw - 32px))}
.dlg::backdrop{background:oklch(0.2 0.05 8 / .45)}
.dlg form{display:grid;gap:14px}
.dlg h2{font:28px/1.1 var(--display);font-weight:400;margin:0}
.dlg-act{display:flex;gap:8px;align-items:center;margin-top:4px}
.dlg-act span{flex:1}
.rsvp-pick{border:0;padding:0;margin:0;display:flex;gap:8px;flex-wrap:wrap}
.rsvp-pick legend{font-size:13.5px;font-weight:700;color:var(--ink-2);margin-bottom:6px;padding:0}
.rsvp-pick label{display:flex;align-items:center;gap:6px;border:1.5px solid var(--line-2);border-radius:999px;padding:6px 12px;font-size:14px;font-weight:600;cursor:pointer}
.rsvp-pick label:has(input:checked){border-color:var(--wine);background:var(--blush);color:var(--wine)}
.rsvp-pick input{accent-color:var(--wine);margin:0}
.settings{display:grid;gap:6px}
.set-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.x{border:0;background:var(--bg);width:36px;height:36px;border-radius:50%;cursor:pointer;display:grid;place-items:center;color:var(--ink-2)}
.set-sec{padding:16px 0;border-top:1px solid var(--line);display:grid;gap:10px}
.set-sec h3{margin:0;font-size:15px;font-weight:800}
.set-sec p{margin:0;font-size:14px;color:var(--ink-2)}
.set-row{display:flex;gap:8px;flex-wrap:wrap}
.set-row .input{flex:1;min-width:160px}
.members{list-style:none;padding:0;margin:0;display:grid;gap:6px}
.members li{display:flex;justify-content:space-between;gap:10px;font-size:14px;padding:8px 12px;background:var(--bg);border-radius:10px}
#toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,20px);background:var(--ink);color:#fff;padding:11px 18px;border-radius:12px;font-size:14.5px;opacity:0;pointer-events:none;transition:opacity .25s var(--ease),transform .25s var(--ease);z-index:var(--z-toast);max-width:calc(100vw - 32px);text-align:center}
#toast.on{opacity:1;transform:translate(-50%,0)}

.bottom-nav{display:none}
.print-area{display:none}

/* ---------- RESPONSYWNOŚĆ ---------- */
@media (max-width:1500px){
  .planner{grid-template-columns:290px minmax(0,1fr)}
  .guests{grid-column:1;grid-row:1}
  .inspector{grid-column:1;grid-row:2}
  .stage{grid-column:2;grid-row:1/3}
}
@media (max-width:1320px){
  .d-seat{grid-column:span 12}.d-tasks{grid-column:span 6;grid-row:auto}.d-money{grid-column:span 6}.d-guests{grid-column:span 6}
}
@media (max-width:1640px){
  .costs-grid{grid-template-columns:1fr}
  .side-col{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
}
@media (max-width:1300px){
  .c-row.h{display:none}
  .c-row{grid-template-columns:repeat(2,minmax(0,1fr));padding:14px 0;gap:10px}
  .c-row .c-cat{grid-column:1/-1}
  .c-row>*{min-width:0}
  .c-row [data-lbl]::before{content:attr(data-lbl);display:block;font-size:11.5px;color:var(--ink-2);font-weight:700;margin-bottom:3px}
  .c-row .del{justify-self:end}
  .c-left{text-align:left}
}
@media (max-width:900px){
  .shell{grid-template-columns:1fr}
  .side{position:static;height:auto;flex-direction:row;align-items:center;padding:12px 16px;gap:10px}
  .side-nav,.side-couple,.sync span,.side-brand small{display:none}
  .side-foot{margin:0 0 0 auto;display:flex;align-items:center;gap:6px}
  .side-settings{padding:9px;font-size:0;gap:0}
  .sync{padding:0}
  .main{padding:20px 16px calc(96px + env(safe-area-inset-bottom))}
  .hello{grid-template-columns:1fr}
  .hello-r{border-left:0;border-top:1px solid oklch(1 0 0 / .1);grid-template-columns:auto 1fr;justify-items:start;align-items:center;gap:4px 16px;place-content:stretch}
  .hello-r .ready{grid-column:1/-1;max-width:none;margin-top:10px}
  .dash{grid-template-columns:1fr}
  .d-seat,.d-tasks,.d-money,.d-guests{grid-column:1}
  .budget-top{grid-template-columns:1fr}
  .toolbar{flex-wrap:nowrap;overflow-x:auto;margin:0 -16px 12px;padding:2px 16px 6px;scrollbar-width:none}
  .tb-group{flex-wrap:nowrap}
  .tb-group.zoom{margin-left:0}
  .planner{grid-template-columns:minmax(0,1fr)}
  .stage,.guests,.inspector{grid-column:1;grid-row:auto}
  .stage{order:1}.inspector{order:2}.guests{order:3}
  .stage-scroll{max-height:62vh}
  .g-list{max-height:none}
  .task-add{grid-template-columns:1fr auto}
  .task-add .input[type=date]{grid-column:1}
  .inv-hero{grid-template-columns:1fr}
  .phone{width:220px}
  .brief .f2{grid-template-columns:1fr}
  .opts.three{grid-template-columns:1fr}
  .bottom-nav{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:var(--z-nav);background:oklch(1 0 0 / .96);backdrop-filter:blur(10px);border-top:1px solid var(--line);padding:6px 4px calc(6px + env(safe-area-inset-bottom))}
  .bottom-nav button{flex:1;border:0;background:none;display:grid;gap:3px;justify-items:center;font-size:11px;font-weight:700;color:var(--ink-2);padding:6px 2px;cursor:pointer;min-width:0}
  .bottom-nav button.on{color:var(--wine)}
  #toast{bottom:calc(86px + env(safe-area-inset-bottom))}
}
@media (max-width:560px){
  .opts{grid-template-columns:1fr}
  .page-head{align-items:flex-start}
  .big-num output{font-size:56px;min-width:100px}
  .hello-acts .btn{flex:1}
}

/* ---------- DRUK (plan sali dla obsługi) ---------- */
@media print{
  @page{size:A4 landscape;margin:12mm}
  body{background:#fff}
  .shell,.bottom-nav,#toast,.wizard,.boot,dialog{display:none!important}
  .print-area{display:block!important;font:11pt/1.4 var(--sans);color:#000}
  .print-area h1{font:22pt var(--display);margin:0 0 4mm}
  .print-area .room svg{width:100%;height:auto;max-height:170mm}
  .print-area .tables{columns:3;column-gap:8mm;margin-top:6mm;break-before:page}
  .print-area .ptable{break-inside:avoid;margin:0 0 5mm}
  .print-area .ptable h2{font-size:12pt;margin:0 0 1.5mm;border-bottom:1px solid #999}
  .print-area .ptable ol{margin:0;padding-left:6mm}
  .print-area .ptable small{color:#444}
}
.buy{display:grid;gap:10px;max-width:520px}
.buy .check a{color:var(--mod)}
.buy .btn{justify-self:start;margin-top:4px}

/* ---------- ASYSTENT ---------- */
.assist{background:var(--surface);border:1px solid var(--line);border-radius:22px;padding:20px 22px;margin-bottom:18px}
.assist-h{display:flex;gap:14px;align-items:center;margin-bottom:6px}
.assist-h h2{margin:0;font:24px/1.1 var(--display);font-weight:400}
.assist-h p{margin:3px 0 0;color:var(--ink-2);font-size:14px}
.tb-av{width:40px;height:40px;border-radius:50%;flex:none;display:grid;place-items:center;background:var(--wine-900)}
.tb-av svg{width:20px;height:20px;fill:var(--peony)}
.tip-list{list-style:none;margin:0;padding:0;display:grid;flex:1;min-width:0}
.tip-item{display:flex;align-items:center;gap:12px;padding:11px 0;border-top:1px solid var(--line)}
.assist .tip-item:first-child{margin-top:8px}
.tip-item i{width:9px;height:9px;border-radius:50%;flex:none;background:var(--c-tasks)}
.tip-item.warn i{background:var(--bad)}
.tip-item.idea i{background:var(--c-invites)}
.tip-item p{margin:0;flex:1;min-width:0;font-size:14.5px;line-height:1.45}
.tip-item .btn{flex:none}
.tipbar{display:flex;gap:12px;align-items:flex-start;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:10px 14px;margin:-6px 0 16px}
.tipbar .tb-av{width:32px;height:32px;margin-top:6px}
.tipbar .tb-av svg{width:16px;height:16px}
.tb-face{width:48px;height:48px;background:none}
.tb-face svg{width:100%;height:100%;fill:unset;border-radius:50%;overflow:hidden}
.tipbar .tip-item:first-child{border-top:0}
.tipbar .tip-item{padding:7px 0}
.badge{margin-left:auto;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--peony);color:var(--wine-900);font-size:11.5px;font-weight:800;display:inline-grid;place-items:center}
.bottom-nav .badge{position:absolute;margin:0;transform:translate(14px,-4px)}
.bottom-nav button{position:relative}

/* ---------- komunikat z akcją ---------- */
#toast{display:flex;align-items:center;gap:14px}
#toast.has-act{pointer-events:auto;text-align:left}
.toast-act{flex:none;border:0;border-radius:9px;background:var(--peony);color:var(--wine-900);font-weight:800;padding:7px 12px;cursor:pointer}

/* ---------- plan: uchwyty i szybkie rozmiary ---------- */
.hall-handle{cursor:nwse-resize}
.hall-handle circle{fill:var(--wine-600);opacity:.9}
.hall-handle path{stroke:#fff;stroke-width:4;stroke-linecap:round;fill:none}
.hall-handle:hover circle{opacity:1}
.rs-handle{fill:#fff;stroke:var(--peony);stroke-width:5;cursor:nwse-resize}
.presets{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:4px 0 2px;font-size:13px;color:var(--ink-2);font-weight:600}
.chip-s{border:1.5px solid var(--line-2);background:#fff;border-radius:999px;padding:3px 10px;font-size:12.5px;font-weight:700;cursor:pointer}
.chip-s:hover{border-color:var(--wine-600)}
.chip-s.on{border-color:var(--wine);background:var(--blush);color:var(--wine)}
.opts .opt[data-shape="auto"]{grid-column:1/-1}
@media (max-width:560px){.tip-item{flex-wrap:wrap}.tip-item p{flex-basis:calc(100% - 60px)}.tip-item .btn{margin-left:21px}}
