@import url('fonts.css');
:root{--ink:#30483e;--green:#31574b;--cream:#faf6ec;--paper:#fffcf4;--muted:#788072;--gold:#b38750;--line:#e6dfcd;--serif:'Cormorant Garamond','EB Garamond',Georgia,serif;--sans:'DM Sans',Manrope,system-ui,sans-serif;--script:'Great Vibes','Cormorant Garamond','EB Garamond',cursive}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:32px}body{margin:0;color:var(--ink);font-family:var(--sans);font-size:15px;background:var(--cream)}a{color:inherit}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.65}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #b88947;outline-offset:4px}input,textarea,select{max-width:100%}input:not([type=checkbox]):not([type=radio]),textarea,select{border:1px solid #d8ddcf;border-radius:8px;padding:12px;background:#fffdf8;color:var(--ink)}input.mud-input-slot.mud-input-root,textarea.mud-input-slot.mud-input-root{border:0;background:transparent}textarea{resize:vertical}fieldset{border:0;padding:0;margin:0;min-width:0}fieldset:disabled{opacity:.6}h1,h2,h3,p{margin:0}h1:focus{outline:none}h1,h2,h3{font-weight:400}p{line-height:1.7}.eyebrow{font-size:10px;letter-spacing:2.6px;font-weight:600;color:var(--gold)}.primary-button{display:inline-flex;align-items:center;justify-content:center;gap:28px;min-height:50px;padding:14px 24px;border:1px solid var(--green);border-radius:4px;background:var(--green);color:#fffdf4;text-decoration:none;letter-spacing:.3px;font-size:13px;transition:background .2s,transform .2s}.primary-button:hover{background:#234437;transform:translateY(-1px)}.primary-button span{font-size:20px}.text-link{color:var(--green);text-underline-offset:5px}.tiny-note{font-size:11px;color:#868373}.mini-monogram{font-family:var(--serif);font-size:27px;letter-spacing:3px;text-decoration:none}.monogram{font-family:var(--serif);font-size:65px;letter-spacing:3px;color:var(--green)}.monogram span{font-size:32px;font-style:italic;color:var(--gold);margin:0 8px}
.preview-banner{background:#e7eddf;color:#3c5943;text-align:center;padding:9px 12px;font-size:10px;letter-spacing:1px}.invite-nav{max-width:1120px;margin:auto;padding:24px 36px;display:flex;justify-content:space-between;align-items:center}.invite-nav>div{display:flex;gap:30px;font-size:12px}.invite-nav>div a{text-decoration:none}.invite-nav>div a:last-child{border-bottom:1px solid var(--gold);padding-bottom:6px}.invite-nav span{margin-left:12px;color:var(--gold)}.invitation-hero{padding:4px 24px 74px}.hero-frame{max-width:890px;margin:0 auto;position:relative;border:1px solid #d6bd91;padding:17px;background:var(--paper);box-shadow:0 20px 65px #7d6f3d0b}.hero-frame:before{content:'';position:absolute;inset:9px;border:1px solid #e2d2b3;pointer-events:none}.hero-content{position:relative;text-align:center;z-index:1;padding:72px 75px 76px}.floral{position:absolute;left:0;width:100%;pointer-events:none}.floral-top{top:0}.floral-bottom{bottom:0}.personal-greeting{font-family:var(--serif);font-size:29px;margin-top:36px;color:#826d48}.invite-line{font-size:12px;color:#827c6c;margin-top:4px}.hero-content h1{font-family:var(--serif);font-size:clamp(57px,7.5vw,94px);line-height:1.12;margin:26px 0 16px;letter-spacing:-3px;font-style:italic}.ornament{color:var(--gold);font-size:26px;display:flex;justify-content:center;align-items:center;gap:15px}.ornament:before,.ornament:after{content:'';width:43px;height:1px;background:#d6bd91}.hero-story{font-family:var(--serif);font-size:22px;max-width:440px;margin:20px auto 10px;line-height:1.5}.family-text{font-size:11px;color:#807d6f;max-width:450px;margin:auto;white-space:pre-line}.event-date{display:flex;flex-direction:column;margin:31px 0 27px;gap:5px}.event-date span{font-size:10px;text-transform:uppercase;letter-spacing:3px}.event-date strong{font-family:var(--serif);font-size:34px;font-weight:500}.hero-cta{min-width:215px}.hero-content .tiny-note{margin-top:10px}.section-wrap{max-width:1040px;margin:auto;padding:0 36px}.schedule-section{text-align:center;padding-top:10px;padding-bottom:85px}h2{font-family:var(--serif);font-size:48px;line-height:1.15;margin-top:14px}.section-intro{color:#7c8074;margin-top:12px;font-size:13px}.venue-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:22px;margin-top:40px;text-align:left}.venue-card{position:relative;display:flex;flex-direction:column;background:#fff;border-radius:30px 0 30px 0;overflow:hidden;text-align:left;box-shadow:0 12px 34px #4d4a3214}.venue-photo{display:block;width:100%;aspect-ratio:16/10;object-fit:cover;background:#ece7da}.venue-photo-empty{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#eef2e8,#f6eee0)}.venue-photo-empty span{font-family:var(--serif);font-size:56px;font-style:italic;color:#c2a374}.venue-body{display:flex;flex-direction:column;flex:1;padding:26px 30px 28px}.venue-card h3{font-family:var(--script);font-size:40px;line-height:1.15;color:#3b3f38;margin-bottom:10px}.venue-name{font-size:15px;font-weight:600;line-height:1.45;color:#33372f}.venue-address{font-size:13px;line-height:1.55;color:#6b7065;margin-top:8px}.venue-time{font-size:13px;color:#4f564c;margin-top:12px}.map-links{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:auto;padding-top:22px}.map-links a{display:flex;align-items:center;justify-content:center;min-height:40px;padding:0 6px;border:1px solid #dce1d4;border-radius:6px;background:#fff;color:var(--green);font-size:12px;font-weight:600;white-space:nowrap;text-decoration:none;transition:background .2s,border-color .2s}.map-links a:hover{background:#e8eee3;border-color:var(--green)}.map-links a:focus-visible{outline:3px solid var(--gold);outline-offset:3px}.personal-note{text-align:center;border-top:1px solid var(--line);padding-top:45px;padding-bottom:55px}.personal-note p{max-width:650px;margin:18px auto;font-family:var(--serif);font-size:29px;line-height:1.4;font-style:italic}.personal-note>span:last-child{font-size:12px;color:#8a7e67}.rsvp-section{background:#eaf0e6;padding:76px 36px}.rsvp-inner{max-width:965px;margin:auto;display:grid;grid-template-columns:.85fr 1.15fr;gap:65px;align-items:start}.rsvp-heading{padding-top:24px}.rsvp-heading h2{font-size:63px;margin:24px 0}.rsvp-heading h2 em{font-weight:400}.rsvp-heading>p:not(.eyebrow){font-size:13px;color:#667563}.rsvp-heading .deadline{margin-top:32px}.rsvp-heading .deadline strong{font-weight:600;color:var(--green)}.rsvp-heading .rsvp-privacy{margin-top:35px;font-size:11px}.rsvp-card{background:#fffef9;border:1px solid #dce1d4;border-radius:12px;padding:30px;box-shadow:0 12px 35px #1b472508}.rsvp-card h3{font-family:var(--serif);font-size:27px}.rsvp-title{font-family:var(--serif);font-size:29px;margin-bottom:6px;padding:0}.form-hint{font-size:12px;color:var(--muted,#6b6862);line-height:1.6}.guest-answer{padding:21px 0;border-bottom:1px solid #ebeadd}.guest-name{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.guest-name>span{font-weight:600;font-size:14px}.guest-name small{font-size:9px;letter-spacing:1.5px;color:#8a8b7c}.reply-options{display:grid;grid-template-columns:1fr 1fr;gap:9px}.reply-options label{position:relative;cursor:pointer}.reply-options input{position:absolute;opacity:0;width:1px;height:1px}.reply-options span{display:block;text-align:center;border:1px solid #dce1d4;border-radius:6px;padding:11px 8px;font-size:12px}.reply-options input:checked+span{background:#e8eee3;border-color:var(--green);color:var(--green);font-weight:600}.reply-options input:focus-visible+span{outline:3px solid var(--gold);outline-offset:3px}.additional-guests{margin-top:23px}.additional-guests h4{font-weight:600;font-size:13px;margin:0}.additional-guests p{font-size:11px;color:#82877a;margin:5px 0 12px}.count-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.count-grid label{font-size:12px;display:grid;gap:7px}.count-grid input{width:100%}.notes-label{display:block;margin-top:23px;font-size:12px}.notes-label span{color:#8a8b7f}.notes-label textarea,.notes-label input{display:block;width:100%;margin-top:9px;font-size:12px;line-height:1.6}.attendance-total{font-size:12px;color:#68765e;margin-top:18px}.submit-rsvp{width:100%;margin-top:14px;justify-content:space-between}#rsvp-result{font-size:12px;margin-top:14px;line-height:1.65}#rsvp-result:empty{display:none}.form-success{color:#315d3b;background:#edf5e9;padding:12px;border-radius:5px}.form-error{color:#a83e33;background:#fff1ed;padding:12px;border-radius:5px}.made-by{text-align:center;border-top:1px solid var(--line);padding:46px 24px 30px}.made-by>p:not(.eyebrow){max-width:430px;margin:14px auto 22px;font-size:13px;color:#7c8075;line-height:1.7}.made-by .primary-button{text-decoration:none}.made-by small{display:block;margin-top:16px;font-size:11px;letter-spacing:.5px;color:#8c8879}.invite-footer{text-align:center;padding:30px 24px 38px}.invite-footer p{font-family:var(--serif);font-size:23px;margin:13px 0 6px}.invite-footer small{font-size:10px;letter-spacing:1px;color:#8c8879}
/* Pe cardurile înguste (trei pe rând pe laptop, telefoane sub 375 px) butoanele de hartă se strâng ca să încapă pe un rând. Sub ~245 px „Google Maps” se lățește puțin, așa că Waze se poate muta cu 2–3 px; textul nu se taie niciodată. */
.venue-body{container-type:inline-size}
@container (max-width:284px){.map-links{gap:6px}.map-links a{padding:0 3px;font-size:11px}}
.entry-page{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:35px 24px;background:radial-gradient(ellipse at 20% 0%,#e4eadb,transparent 65%),var(--cream)}.entry-page h1{font-family:var(--serif);font-size:52px;margin:20px 0}.entry-page>p:not(.eyebrow){max-width:420px;color:#78806e}.entry-page>.text-link{margin-top:30px;font-size:12px}.login-form{width:100%;max-width:350px;text-align:left;display:grid;gap:20px;margin-top:16px}.login-form label{font-size:12px;display:grid;gap:8px}.login-form .cf-turnstile{min-height:65px}.center-message{padding:80px 24px;text-align:center}.admin-app{display:flex;min-height:100vh;min-height:100dvh;background:var(--cream,#f5f1ea);font-size:14px;color:var(--ink,#33444c)}.admin-sidebar{width:244px;background:#fff;position:fixed;inset:0 auto 0 0;border-right:1px solid var(--line,#e5ddd0);display:flex;flex-direction:column;padding:37px 23px}.admin-brand{text-align:center;display:block;font-family:var(--serif);font-size:48px;letter-spacing:2px;text-decoration:none;line-height:1}.admin-brand>span{font-size:30px;color:var(--gold);font-style:italic;margin:0 3px}.admin-brand small{display:block;font-family:var(--sans);font-size:8px;letter-spacing:3px;margin-top:13px}.nav-caption{font-size:9px;letter-spacing:1.6px;color:#8e998c;margin:55px 12px 13px}.admin-sidebar>a:not(.admin-brand){font-size:12px;padding:13px 12px;border-radius:7px;margin:4px 0;text-decoration:none;color:var(--muted,#6b6862)}.admin-sidebar>a.active{background:var(--tint,var(--accent-tint,var(--mist,#e8eef0)));color:var(--accent,#4a6676);font-weight:600}.sidebar-bottom{margin-top:auto;padding:24px 12px 0;color:#8b9786;font-size:11px}.sidebar-bottom p{font-family:var(--serif);font-size:20px;font-style:italic;line-height:1.5}.logout{border:0;background:transparent;color:#687763;font-size:11px;padding:25px 0 0}.admin-main{width:calc(100% - 244px);margin-left:244px;padding:45px 44px 70px;max-width:1800px}.admin-heading{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:32px}.admin-heading h1{font-family:var(--serif);font-size:40px;margin:9px 0 4px;line-height:1.2}.admin-heading p:not(.eyebrow){color:var(--muted,#6b6862);font-size:12px}.admin-heading .eyebrow{font-size:9px;letter-spacing:1.8px}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.stat-grid article{border:1px solid var(--line,#e5ddd0);background:#fff;border-radius:12px;padding:22px}.stat-grid article:nth-child(2){background:var(--accent,#4a6676);color:#fff}.stat-grid article>span{display:block;font-size:9px;letter-spacing:1.3px;opacity:.7}.stat-grid strong{font-family:var(--serif);font-size:49px;font-weight:500;display:block;margin:8px 0 0;line-height:1.2}.stat-grid small{font-size:10px;opacity:.7}.side-summary{display:flex;gap:24px;flex-wrap:wrap;margin:21px 0 27px;color:var(--muted,#6b6862);font-size:11px}.side-summary b{font-weight:600;color:var(--ink,#33444c)}.admin-table-panel{border:1px solid var(--line,#e5ddd0);border-radius:12px;background:#fff;overflow:hidden}.table-toolbar{display:flex;align-items:center;padding:17px 20px 8px;gap:12px}.table-toolbar>.mud-input-control{flex:1;min-width:150px}.table-toolbar select{font-size:11px;background:#fff;padding:12px 10px}.archive-filter{display:flex;align-items:center;justify-content:space-between;padding:6px 23px 16px;font-size:10px;color:var(--muted,#6b6862)}.archive-filter input{accent-color:var(--green);vertical-align:middle}.mud-table-cell{font-family:var(--sans)!important;font-size:12px!important}.mud-table-head .mud-table-cell{background:var(--cream,#f5f1ea)!important;font-size:10px!important;color:var(--muted,#6b6862)!important}.table-subtitle{font-size:10px;color:var(--muted,#6b6862);margin-top:4px}.status-pill,.side-pill{display:inline-block;padding:5px 9px;border-radius:20px;font-size:10px;white-space:nowrap;background:var(--tint,var(--accent-tint,var(--mist,#e8eef0)));color:var(--muted,#6b6862)}.status-pill.accepted{background:#eaf3e5;color:#466c3b}.status-pill.pending{background:#fbf2df;color:#a18039}.status-pill.declined{background:#f7ebe8;color:#a66759}.status-pill.partial{background:#edf1fb;color:#557ba0}.row-actions{display:flex;gap:3px}.empty-state{padding:50px 20px;color:var(--muted,#6b6862);font-family:var(--serif);font-size:27px}.empty-state small{font-family:var(--sans);font-size:12px}.editor-backdrop{position:fixed;inset:0;background:#1d262b50;backdrop-filter:blur(3px);display:flex;justify-content:flex-end;z-index:1300}.editor-panel{background:var(--paper,#fdfbf7);width:min(560px,100%);padding:30px;overflow:auto;box-shadow:-12px 0 50px #1d262b23}.editor-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px;gap:15px}.editor-header h2{font-size:31px;margin:0}.icon-button{background:transparent;border:0;font-size:30px;color:#66725e;padding:3px 8px}.editor-section{font-family:var(--serif);font-size:25px;margin:23px 0 9px}.guest-editor{display:flex;align-items:center;gap:4px}.guest-editor .mud-input-control{flex:1;min-width:0}.guest-editor .mud-checkbox{flex:none}.editor-footer{display:flex;justify-content:flex-end;gap:15px;margin-top:30px;padding-top:20px;border-top:1px solid var(--line,#e5ddd0)}.response-line{display:flex;justify-content:space-between;font-size:12px;margin-top:8px}.saved-notes{background:#f1f4ec;padding:15px;margin-top:12px;font-size:12px;white-space:pre-wrap}.link-panel{align-self:center;margin:auto;border-radius:16px;max-height:90vh;max-height:90dvh}.link-panel>p{font-size:12px;color:var(--muted,#6b6862)}.share-link{width:100%;margin-top:20px;font-size:12px!important}.share-actions{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0}.link-panel hr{border:0;border-top:1px solid var(--line,#e5ddd0);margin:23px 0}.settings-card{max-width:850px;background:white;border:1px solid var(--line,#e5ddd0);border-radius:12px;padding:28px;margin-bottom:22px}.settings-card h2{font-size:30px;margin:0 0 19px}.settings-card .count-grid{margin-top:17px}.venue-editor{border-top:1px solid var(--line,#e5ddd0);margin-top:20px;padding:18px 0}.venue-editor-title{display:flex;justify-content:space-between;align-items:center}.venue-editor-title h3{font-family:var(--serif);font-size:25px}.venue-photo-editor{display:flex;flex-wrap:wrap;gap:12px 16px;align-items:center;margin:4px 0 14px}.venue-photo-editor>img,.venue-photo-editor>.venue-photo-empty{width:176px;flex:none;aspect-ratio:16/10;object-fit:cover;border-radius:16px 0 16px 0;font-size:11px;color:var(--muted,#6b6862)}.venue-photo-editor>div{flex:1;min-width:200px}.photo-pick{display:inline-block;border:1px solid var(--green);border-radius:8px;padding:6px 14px;margin-right:6px;font-size:12px;font-weight:500;letter-spacing:.4px;text-transform:uppercase;color:var(--green);cursor:pointer}.photo-pick input{display:none}.stock-photos{margin:0 0 16px}.stock-photos>.form-hint{margin:0 0 8px}.stock-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:6px}.stock-photo{display:block;padding:0;border:1px solid var(--line,#e5ddd0);border-radius:10px;overflow:hidden;background:var(--cream,#f5f1ea);aspect-ratio:16/10;cursor:pointer;transition:transform .15s,box-shadow .15s}.stock-photo img{display:block;width:100%;height:100%;object-fit:cover}.stock-photo:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 16px #1d262b1f}.stock-photo:focus-visible{outline:2px solid var(--green);outline-offset:2px}.stock-photo.on{border-color:var(--green);box-shadow:0 0 0 2px var(--green)}.stock-photo:disabled{opacity:.6;cursor:wait}.settings-save{max-width:850px;display:flex;justify-content:flex-end}#blazor-error-ui{display:none;background:#fff3cd;position:fixed;bottom:0;left:0;width:100%;padding:15px;text-align:center;z-index:2000}
@media(min-width:1400px){.admin-main{padding-left:60px;padding-right:60px}}
@media(max-width:1100px){.admin-sidebar{width:210px;padding:30px 15px}.admin-main{margin-left:210px;width:calc(100% - 210px);padding:32px 23px}.stat-grid{grid-template-columns:repeat(2,1fr)}.table-toolbar{flex-wrap:wrap}.table-toolbar>.mud-input-control{flex-basis:100%}.rsvp-inner{gap:35px}}
@media(max-width:700px){.invite-nav{padding:18px 20px}.invite-nav>div{gap:15px;font-size:10px}.invite-nav>div>a:first-child{display:none}.invitation-hero{padding:0 12px 45px}.hero-frame{padding:8px}.hero-frame:before{inset:6px}.hero-content{padding:78px 18px 80px}.hero-content .eyebrow{font-size:8px;letter-spacing:1.8px}.personal-greeting{font-size:26px;margin-top:18px}.invite-line{font-size:10px;max-width:220px;margin:6px auto}.hero-content h1{font-size:59px;letter-spacing:-2.5px;margin-top:23px}.hero-story{font-size:21px;max-width:300px}.family-text{font-size:10px;max-width:230px}.hero-frame{overflow:hidden}.event-date{margin:24px 0}.event-date strong{font-size:31px}.hero-cta{font-size:12px}.section-wrap{padding-left:23px;padding-right:23px}h2{font-size:38px}.schedule-section{padding-bottom:45px}.venue-grid{grid-template-columns:1fr;margin-top:27px;gap:19px}.venue-card{border-radius:26px 0 26px 0}.venue-body{padding:22px 22px 24px}.venue-card h3{font-size:36px}.personal-note{padding-top:30px;padding-bottom:35px}.personal-note p{font-size:25px}.rsvp-section{padding:38px 18px}.rsvp-inner{grid-template-columns:1fr;gap:27px}.rsvp-heading{padding:0;text-align:center}.rsvp-heading h2{font-size:49px;margin:15px 0}.rsvp-heading h2 br{display:none}.rsvp-heading .eyebrow{font-size:8px;letter-spacing:1.8px}.rsvp-heading .deadline{margin-top:15px}.rsvp-heading .rsvp-privacy{margin-top:14px}.rsvp-card{padding:23px 20px}.invite-footer p{font-size:21px}.admin-heading{align-items:flex-start;flex-direction:column;gap:17px;margin-bottom:23px}.admin-heading h1{font-size:clamp(30px,9vw,35px)}.stat-grid{gap:10px}.stat-grid article{padding:15px}.stat-grid article>span{font-size:8px;letter-spacing:.8px}.stat-grid strong{font-size:42px}.side-summary{gap:10px;font-size:10px}.table-toolbar{padding:12px}.table-toolbar select{max-width:45%}.archive-filter{padding:8px 14px;gap:10px}.editor-panel{padding:23px 18px}.editor-header h2{font-size:28px}.settings-card{padding:20px 16px}.link-panel{margin:12px;width:calc(100% - 24px)}.editor-footer{gap:5px}.guest-editor .mud-checkbox .mud-typography{font-size:11px}.stat-grid small{font-size:9px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}

/* Primele amintiri — galerie foto tip colaj */
.story-section{text-align:center;padding-top:6px;padding-bottom:70px}
.story-gallery{columns:2;column-gap:20px;max-width:620px;margin:36px auto 0}
.story-item{display:block;width:100%;margin:0 0 20px;padding:10px 10px 14px;background:#fff;border:1px solid #efe9db;border-radius:3px;box-shadow:0 12px 30px #4d3c2818;break-inside:avoid;cursor:pointer;transition:transform .25s,box-shadow .25s}
.story-item:nth-child(odd){transform:rotate(-1.5deg)}
.story-item:nth-child(even){transform:rotate(1.5deg)}
.story-item:nth-child(3n){transform:rotate(.8deg)}
.story-item:hover,.story-item:focus-visible{transform:rotate(0) scale(1.03);box-shadow:0 18px 40px #4d3c2824;z-index:2;position:relative}
.story-item img{display:block;width:100%;height:auto;border-radius:2px}
/* Vizualizator foto (lightbox), folosit și în admin */
.lightbox{position:fixed;inset:0;z-index:4000;display:flex;align-items:center;justify-content:center;background:#1c241fe8;backdrop-filter:blur(4px);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s,visibility .2s;touch-action:pan-y}
.lightbox.open{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .2s}
.lightbox img{max-width:92vw;max-height:86vh;max-height:86dvh;object-fit:contain;border-radius:4px;box-shadow:0 20px 60px #0007;user-select:none;-webkit-user-drag:none}
.lightbox button{position:absolute;background:#fffffff2;border:0;color:#30483e;width:48px;height:48px;border-radius:50%;font-size:22px;line-height:1;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 14px #0004}
.lightbox .lb-close{top:max(18px,env(safe-area-inset-top));right:max(18px,env(safe-area-inset-right));font-size:26px}
.lightbox .lb-prev{left:max(16px,env(safe-area-inset-left));top:50%;transform:translateY(-50%)}
.lightbox .lb-next{right:max(16px,env(safe-area-inset-right));top:50%;transform:translateY(-50%)}
.lightbox .lb-count{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);background:#0000006b;color:#fff;font-size:12px;letter-spacing:1px;padding:6px 14px;border-radius:20px}
.lightbox button:disabled{opacity:.35}
/* Galeria din admin */
.admin-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:16px;margin-top:8px}
.admin-gallery figure{margin:0;position:relative;background:#fff;border:1px solid var(--line,#e5ddd0);border-radius:10px;overflow:hidden}
.admin-gallery img{display:block;width:100%;aspect-ratio:1;object-fit:cover;cursor:zoom-in;background:#f1f0ea}
.admin-gallery figcaption{display:flex;justify-content:space-between;align-items:center;padding:6px 8px;gap:4px}
.admin-gallery .ord{display:flex;gap:2px}
.admin-gallery figcaption button{border:0;background:var(--tint,var(--accent-tint,var(--mist,#e8eef0)));color:var(--ink,#33444c);width:28px;height:28px;border-radius:6px;font-size:14px;cursor:pointer}
.admin-gallery figcaption button:disabled{opacity:.3;cursor:default}
.admin-gallery .del{color:#a66759;background:#f7ebe8}

@media(max-width:700px){.album-grid{grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:8px}.album-page{padding:30px 16px 46px}.countdown{gap:11px}.countdown-title{margin-bottom:16px}.cd-unit span{letter-spacing:1.4px}.story-gallery{columns:1;max-width:340px;margin-top:26px}.story-section{padding-bottom:40px}.lightbox button{width:44px;height:44px}.lightbox .lb-prev{left:max(8px,env(safe-area-inset-left))}.lightbox .lb-next{right:max(8px,env(safe-area-inset-right))}}

/* Numărătoare inversă până la botez */
.countdown-section{text-align:center;padding:14px 24px 26px}
.countdown-title{font-family:var(--serif);font-style:italic;font-size:clamp(30px,4.4vw,46px);color:#8a6d4e;margin-bottom:24px}
.countdown{display:flex;justify-content:center;align-items:flex-start;gap:clamp(16px,4.5vw,50px);flex-wrap:wrap}
.cd-unit{display:flex;flex-direction:column;align-items:center}
.cd-unit strong{font-family:var(--serif);font-weight:500;font-size:clamp(40px,6.2vw,64px);line-height:1;color:#a86b52;font-variant-numeric:tabular-nums}
.cd-unit span{margin-top:9px;font-size:10px;letter-spacing:2.6px;text-transform:uppercase;color:#9a8f7c}
.cd-done{font-family:var(--serif);font-style:italic;font-size:27px;color:#8a6d4e;margin:6px 0}

/* Album invitați (/album) */
.album-page{max-width:1080px;margin:auto;padding:46px 22px 70px}
.album-head{text-align:center;margin-bottom:34px}
.album-head h1{font-family:var(--serif);font-size:clamp(40px,6vw,60px);margin:8px 0 6px}
.album-sub{color:#7c8075;font-size:14px}
.album-gate{max-width:440px;margin:30px auto;text-align:center;background:#fffdf8;border:1px solid #e9e2d2;border-radius:14px;padding:34px 26px;box-shadow:0 14px 34px #4d3c2810}
.album-gate p{color:#6f7468;font-size:14px;line-height:1.7}
.album-code-form{display:flex;gap:10px;margin-top:20px;flex-wrap:wrap;justify-content:center}
.album-code-form input{flex:1;min-width:160px;text-align:center;letter-spacing:3px;text-transform:uppercase;font-size:16px}
.album-upload{max-width:560px;margin:0 auto 40px;text-align:center;background:#fffdf8;border:1px solid #e9e2d2;border-radius:14px;padding:26px 24px}
.album-upload .upload-name{display:block;text-align:left;font-size:12px;color:#5c6358;margin-bottom:14px}
.album-upload .upload-name input{display:block;width:100%;margin-top:6px}
.album-upload .upload-name span{color:#9a9384}
.album-pick{display:inline-block;font-size:13px;font-weight:600;letter-spacing:.4px;padding:12px 26px;border-radius:9px}
.album-count{text-align:center;color:var(--muted,#6b6862);font-size:12px;margin-bottom:16px}
.album-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}
.album-item{position:relative;display:block;border-radius:10px;overflow:hidden;background:#ece7da;aspect-ratio:1;cursor:zoom-in}
.album-item img{width:100%;height:100%;object-fit:cover;display:block}
.album-by{position:absolute;left:0;right:0;bottom:0;padding:16px 10px 7px;font-size:11px;color:#fff;background:linear-gradient(transparent,#0000008c);text-align:left}
.album-empty{text-align:center;color:var(--muted,#6b6862);font-family:var(--serif);font-size:24px;padding:30px}
.album-meta{font-size:11px;color:var(--muted,#6b6862);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.admin-gallery .thumb{display:block;width:100%;padding:0;border:0;background:none;cursor:zoom-in}
.admin-gallery .thumb:focus-visible{outline-offset:-3px}
/* Pozele raportate de invitați (admin): sus, cu motivul, de șters sau de păstrat; în galerie, cu eticheta lor */
.album-reported{margin:22px 0 26px;padding:18px 18px 20px;border:1px solid #e8c9c1;border-radius:14px;background:#fdf5f2}
.album-reported h2{display:flex;align-items:center;gap:8px;margin:0 0 4px;font-size:18px;color:#8a3f30}
.reported-count{display:inline-grid;place-items:center;min-width:24px;height:24px;padding:0 7px;border-radius:12px;background:#a24a37;color:#fff;font-size:12px;font-weight:600}
.reported-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,270px),1fr));gap:14px;margin-top:12px}
.reported-list figure{margin:0;background:#fff;border:1px solid #ecd6cf;border-radius:10px;overflow:hidden}
.reported-list .thumb{display:block;width:100%;padding:0;border:0;background:none;cursor:zoom-in}
.reported-list img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;background:#f1f0ea}
.reported-list figcaption{display:grid;gap:6px;padding:10px 12px 12px}
.reported-list .album-meta{white-space:normal}
.report-reason{margin:0;font-size:13px;line-height:1.5;color:var(--ink,#33444c);overflow-wrap:anywhere;white-space:pre-line}
.report-actions{display:flex;flex-wrap:wrap;gap:8px}
.admin-gallery figure.reported{border-color:#d9a497;box-shadow:0 0 0 1px #d9a497}
.report-badge{position:absolute;top:8px;left:8px;padding:3px 8px;border-radius:6px;background:#a24a37;color:#fff;font-size:11px;font-weight:600;pointer-events:none}
/* Albumul invitaților: ce se încarcă și cum se raportează */
.album-rule{margin:10px 0 0;font-size:13px;font-weight:600;color:var(--ink,#4d5a52)}
.album-report-hint{text-align:center;color:var(--muted,#6b6862);font-size:12px;margin:18px 0 0}

/* Notificări pe email (admin) */
.sender-line{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:14px;margin-bottom:10px}
.recipient-row{display:flex;align-items:center;gap:6px;max-width:560px}
.recipient-row .mud-input-control{flex:1}
.notify-actions{gap:10px;flex-wrap:wrap}
.invite-footer .copyright{display:block;margin-top:14px;font-size:9px;letter-spacing:.6px;color:#a3a091}
/* „Trimite pe email” în fereastra cu linkul invitației */
.link-subtitle{font-family:var(--serif);font-size:23px;margin:0 0 4px}
.link-panel .link-subtitle+.form-hint{margin-bottom:12px}
.link-panel p[role=status]:empty{display:none}

/* Invitația tipărită (Ctrl+P) și PDF-ul atașat la email: de sus până la semnătura „Cu drag”,
   fără meniu, numărătoare inversă (ar rămâne înghețată), formularul de confirmare și footer. */
@media print{
  @page{size:A4;margin:0}
  .invite-nav,.preview-banner,.countdown-section,.rsvp-section,.made-by,.invite-footer,#blazor-error-ui,.lightbox{display:none!important}
  /* Prima pagină: doar invitația, centrată pe foaie (296mm, ca rotunjirea să nu adauge o pagină goală). */
  .invitation-hero{min-height:296mm;padding:12mm 11mm;display:flex;flex-direction:column;justify-content:center;break-after:page}
  .hero-frame{width:100%;box-shadow:none}
  .section-wrap{max-width:none}
  /* Pagina 2: toate momentele, mai mici, câte două pe rând (până la 4 încap pe foaie); unul rămas singur stă pe mijloc. */
  .schedule-section{padding-top:13mm;padding-bottom:6mm}
  .schedule-section h2{font-size:40px}
  .venue-grid{grid-template-columns:repeat(2,82mm);justify-content:center;gap:6mm 7mm;margin-top:7mm}
  .venue-grid>.venue-card:last-child:nth-child(odd){grid-column:1/-1;justify-self:center;width:82mm}
  .venue-card{box-shadow:none;border:1px solid #ece4d3;border-radius:22px 0 22px 0;break-inside:avoid}
  .venue-photo{aspect-ratio:2/1}
  .venue-body{padding:12px 16px 14px}
  .venue-card h3{font-size:28px;margin-bottom:4px}
  .venue-name{font-size:13px}
  .venue-address{font-size:11px;margin-top:3px}
  .venue-time{font-size:11px;margin-top:5px}
  .map-links{padding-top:9px;gap:6px}
  .map-links a{min-height:26px;font-size:10px}
  .story-section{break-before:page;padding-top:10mm;padding-bottom:4mm}
  /* Each group of four photos starts a page of its own, with room above it. */
  .story-page{break-inside:avoid}
  .story-page+.story-page{break-before:page;padding-top:16mm}
  .story-item{break-inside:avoid;box-shadow:none}
  .personal-note{break-inside:avoid;padding-top:10mm;padding-bottom:14mm}
  h2,.eyebrow,.section-intro{break-after:avoid}
}
/* Galeria din PDF (?pdf=1): câte 4 poze pe pagină, ca polaroid-uri, micșorate proporțional ca să încapă. */
.story-page{display:grid;grid-template-columns:repeat(2,82mm);justify-content:center;align-items:center;justify-items:center;gap:8mm 9mm;padding-top:8mm}
.story-print{margin:0;padding:3mm 3mm 6mm;background:#fff;border:1px solid #efe9db;border-radius:3px;box-shadow:0 2px 8px #4d3c280d;transform:rotate(-1.4deg)}
.story-print:nth-child(even){transform:rotate(1.4deg)}
.story-print:last-child:nth-child(odd){grid-column:1/-1}
.story-print img{display:block;width:auto;height:auto;max-width:76mm;max-height:94mm}

/* Linkul secret și codul QR al albumului (admin) */
.album-link{display:flex;gap:28px;align-items:flex-start;background:#fff;border:1px solid var(--line,#e5ddd0);border-radius:14px;padding:24px;margin-bottom:30px}
.album-qr{flex:none;width:172px;padding:8px;background:#fff;border:1px solid var(--line,#e5ddd0);border-radius:10px}
.album-qr svg{display:block;width:100%;height:auto}
.album-link-text{flex:1;min-width:0}
.album-link-text h2{font-family:var(--serif);font-size:28px;margin:0 0 6px}
.album-link-text>p{font-size:12px;color:var(--muted,#6b6862)}
.album-link .share-link{margin-top:16px}
.album-link .share-actions{margin:16px 0 6px}
.link-danger{display:flex;gap:8px;flex-wrap:wrap;border-top:1px solid var(--line,#e5ddd0);margin-top:14px;padding-top:10px}
@media(max-width:700px){.album-link{flex-direction:column;align-items:stretch;padding:18px}.album-qr{width:200px;align-self:center}}

/* Cod QR de tipărit (/admin/album/qr): un afiș A4 sau 4 cartonașe A6 de tăiat */
.qr-print{min-height:100dvh;background:#ebe8df;padding:22px 16px 48px}
.qr-toolbar{max-width:210mm;margin:0 auto 18px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:13px}
.qr-toolbar>a{color:var(--green)}
.qr-toolbar .primary-button{min-height:42px;padding:10px 22px}
.qr-layouts{display:flex;gap:6px;flex-wrap:wrap}
.qr-layouts a{padding:8px 13px;border:1px solid #c9d2c4;border-radius:8px;background:#fff;text-decoration:none;color:var(--ink)}
.qr-layouts a.on{background:var(--green);border-color:var(--green);color:#fffdf4}
.qr-sheet{width:210mm;height:297mm;margin:0 auto;background:var(--paper);box-shadow:0 18px 50px #2d3a2f26;display:grid;overflow:hidden}
.qr-sheet.cards{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr}
.qr-card{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:16mm 14mm;color:var(--ink);overflow:hidden}
.qr-sheet.poster .qr-card{border:1px solid #d6bd91;margin:9mm;padding-top:30mm}
.qr-sheet.cards .qr-card{padding:16mm 8mm 8mm;border-right:1px dashed #cfc6b2;border-bottom:1px dashed #cfc6b2}
.qr-sheet.cards .qr-card:nth-child(2n){border-right:0}
.qr-sheet.cards .qr-card:nth-child(n+3){border-bottom:0}
.qr-floral{position:absolute;top:0;left:0;width:100%;pointer-events:none}
.qr-card .eyebrow{position:relative;margin-bottom:3mm}
.qr-card h1{position:relative;font-family:var(--serif);font-style:italic;font-size:64px;line-height:1.1;letter-spacing:-2px;margin:0 0 2mm}
.qr-card .ornament{margin-bottom:5mm}
.qr-lead{font-family:var(--serif);font-style:italic;font-size:21px;color:#826d48;max-width:130mm;margin-bottom:9mm}
.qr-code{width:105mm;padding:4mm;background:#fff;border:1px solid var(--line);border-radius:3mm}
.qr-code svg{display:block;width:100%;height:auto}
.qr-how{margin-top:8mm;font-size:15px;line-height:1.6;color:#5f665b}
.qr-sheet.cards .qr-card h1{font-size:30px;letter-spacing:-1px;margin-bottom:1mm}
.qr-sheet.cards .eyebrow{font-size:7px;margin-bottom:1.5mm}
.qr-sheet.cards .ornament{font-size:15px;margin-bottom:2mm}
.qr-sheet.cards .ornament:before,.qr-sheet.cards .ornament:after{width:24px}
.qr-sheet.cards .qr-lead{font-size:11.5px;max-width:80mm;margin-bottom:3.5mm}
.qr-sheet.cards .qr-code{width:56mm;padding:2.5mm}
.qr-sheet.cards .qr-how{margin-top:3mm;font-size:9px;line-height:1.5}
@media screen and (max-width:860px){.qr-sheet{zoom:.44}}
/* Phones under 390px: the sheet's preview smaller still, so it fits between the page's 16px margins (the print is A4). */
@media screen and (max-width:389px){.qr-sheet{zoom:.36}}
@media print{@page{size:A4;margin:0}body:has(.qr-print){background:#fff}.qr-print{padding:0;background:#fff;min-height:0}.qr-toolbar,#blazor-error-ui{display:none!important}.qr-sheet{margin:0;box-shadow:none;background:#fff}}
/* Culorile invitației: alegerea paletei în „Detaliile botezului” */
.theme-picker{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;margin-top:16px}.theme-option{position:relative;display:grid;gap:7px;align-content:start;padding:15px 16px;border:1px solid #dcd8d0;border-radius:10px;background:#fff;cursor:pointer;transition:border-color .2s,box-shadow .2s}.theme-option:hover{border-color:var(--option-accent)}.theme-option.chosen{border-color:var(--option-accent);box-shadow:0 0 0 1px var(--option-accent)}.theme-option:focus-within{outline:3px solid var(--option-accent);outline-offset:2px}.theme-option input{position:absolute;opacity:0;width:1px;height:1px}.theme-swatches{display:flex;gap:6px}.theme-swatches i{width:22px;height:22px;border-radius:50%;border:1px solid #0000001f}.theme-name{font-weight:600;font-size:13px;color:#2f3437}.theme-note{font-size:11px;line-height:1.5;color:#5f6368}.theme-option.chosen .theme-name:after{content:" ✓";color:var(--option-accent)}
/* Limba unei invitații, când nu e limba botezului (lista din admin) */
.lang-pill{display:inline-block;margin-left:7px;padding:2px 6px;border-radius:10px;font-size:9px;font-weight:600;letter-spacing:.8px;vertical-align:2px;background:var(--tint,var(--accent-tint,var(--mist,#e8eef0)));color:var(--accent,#4a6676)}
/* Alegerea limbii la primul login (/admin/start) */
.language-page .language-intro{max-width:520px;margin:0 auto 26px;color:var(--muted,#6b6862);line-height:1.6}
.language-choices{display:grid;gap:12px;width:min(100%,440px);margin:0 auto}
.language-choice{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:16px 20px;border:1px solid var(--line-strong,#d6cec2);border-radius:12px;background:var(--paper,#fdfbf7);color:var(--ink);font:inherit;text-align:left;cursor:pointer;transition:border-color .2s,box-shadow .2s}
.language-choice strong{font-family:var(--serif);font-size:24px;font-weight:500}
.language-choice span{font-size:13px;color:var(--muted,#6b6862)}
.language-choice:hover,.language-choice:focus-visible{border-color:var(--accent,#4a6676);box-shadow:0 6px 18px color-mix(in srgb,var(--ink,#33444c) 12%,transparent)}
/* Letters the main fonts lack (Greek…) come from EB Garamond and Manrope, downloaded only by pages that have them. No script font has Greek letters, so Greek moment titles are the serif in italics. */
:lang(el) .venue-card h3{font-family:var(--serif);font-style:italic}
/* Chinese and Japanese: their letters come from the device's own fonts (every phone and computer has them; served from
   here they would be tens of MB), Noto CJK first, as Android, Linux and the PDF service have it; Latin letters and digits
   keep the site's fonts. */
:lang(zh){--cjk-serif:'Noto Serif SC','Noto Serif CJK SC','Source Han Serif SC','Songti SC',STSong,SimSun;--cjk-sans:'Noto Sans SC','Noto Sans CJK SC','Source Han Sans SC','PingFang SC','Hiragino Sans GB','Microsoft YaHei'}
:lang(ja){--cjk-serif:'Noto Serif JP','Noto Serif CJK JP','Source Han Serif JP','Hiragino Mincho ProN','Yu Mincho',YuMincho;--cjk-sans:'Noto Sans JP','Noto Sans CJK JP','Source Han Sans JP','Hiragino Kaku Gothic ProN','Hiragino Sans','Yu Gothic',YuGothic,Meiryo}
:lang(zh),:lang(ja){--serif:'Cormorant Garamond','EB Garamond',var(--cjk-serif),serif;--sans:'DM Sans',Manrope,var(--cjk-sans),sans-serif;--script:'Great Vibes',var(--cjk-serif),serif}
/* Nothing is italic on their pages: CJK has no italics, and Chrome on Windows slants a device's font whatever
   font-synthesis says (as the emails, which slant nothing in these languages). */
:lang(zh),:lang(ja){font-synthesis-style:none}:lang(zh) *,:lang(ja) *{font-style:normal!important}
/* Japanese lines break between phrases ("結婚式で / お会いできますか？"), not inside a word (Chrome; others break as before),
   and a phrase wider than the screen still breaks. */
:lang(ja) :is(h1,h2,h3,h4,p,label,legend,.eyebrow,.reply-options span,.primary-button){word-break:auto-phrase;overflow-wrap:anywhere}
/* Chinese headings break only after punctuation ("这一天，/ 与您共度。"), never inside a word (Chrome has no phrase
   breaking for Chinese); a line too long for the screen still breaks. Paragraphs keep breaking anywhere, as Chinese does. */
:lang(zh) :is(h1,h2,h3){word-break:keep-all;overflow-wrap:anywhere}
/* The RSVP title's two phrases stay on their own lines on phones too: CJK has no spaces to keep the second together. */
@media(max-width:700px){:lang(zh) .rsvp-heading h2 br,:lang(ja) .rsvp-heading h2 br{display:inline}}
/* Small labels are sized for Latin capitals; Chinese and Japanese characters need a few pixels more to be read. */
:lang(zh) :is(.eyebrow,.event-date span,.cd-unit span,.guest-name small),:lang(ja) :is(.eyebrow,.event-date span,.cd-unit span,.guest-name small){font-size:11px;letter-spacing:2px}
:lang(zh) .qr-sheet.cards .eyebrow,:lang(ja) .qr-sheet.cards .eyebrow{font-size:9px}
:lang(zh) .admin-brand small,:lang(ja) .admin-brand small{font-size:11px;letter-spacing:2px}:lang(zh) .topbar-brand small,:lang(ja) .topbar-brand small{font-size:9px;letter-spacing:1.5px}
@media(max-width:700px){:lang(zh) :is(.hero-content,.rsvp-heading) .eyebrow,:lang(ja) :is(.hero-content,.rsvp-heading) .eyebrow{font-size:10px;letter-spacing:1px}:lang(zh) .invite-line,:lang(ja) .invite-line{font-size:11px}}
/* The two moments that follow each guest's language, to click and copy (Detaliile botezului → Program & locații); their
   text can also be selected by hand where the browser does not let a page copy. */
.standard-moments{margin-top:14px}.moment-chips{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 6px}.moment-chips .mud-chip{user-select:text;font-family:var(--sans)}
/* The event's language in the admin menu (LanguagePicker): a menu line like the links above it, its list opening in the
   menu's flow. The menu scrolls when the window is too short for it, so every line stays reachable. */
.admin-sidebar{overflow-y:auto}
.language-toggle{display:flex;align-items:center;gap:6px;width:100%;margin:4px 0;padding:11px 10px 11px 12px;border:0;border-radius:7px;background:transparent;color:var(--ink-soft,var(--muted,#6b6862));font:inherit;font-size:12px;text-align:left;cursor:pointer}
.language-toggle .mud-icon-root{font-size:16px;flex:none}.language-toggle .language-current{flex:1}
.language-toggle:hover,.language-toggle[aria-expanded=true]{background:var(--tint,var(--accent-tint,var(--mist,#e8eef0)));color:var(--accent,#4a6676)}
.language-toggle:focus-visible,.language-list button:focus-visible{outline:2px solid var(--accent,#4a6676);outline-offset:1px}
.language-list{padding:2px 0 8px 12px}
.language-list>p{font-size:11px;line-height:1.5;color:var(--muted,#6b6862);margin:4px 0 8px}
.language-list button{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;margin:1px 0;padding:7px 10px;border:0;border-radius:6px;background:transparent;color:var(--ink,#33444c);font:inherit;font-size:12px;text-align:left;cursor:pointer}
.language-list button:hover{background:var(--tint,var(--accent-tint,var(--mist,#e8eef0)))}
.language-list button.current{background:var(--tint,var(--accent-tint,var(--mist,#e8eef0)));color:var(--accent,#4a6676);font-weight:600}.language-list button .mud-icon-root{font-size:16px}
.language-list button:disabled{opacity:.6;cursor:default}
.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
/* The admin's questions before an action (ConfirmDialog): the question as a serif title, what will happen, then Cancel
   and the action's own button. On a phone the two buttons take the whole width, the action above. */
.confirm-dialog .mud-dialog-title{padding:24px 24px 6px}.confirm-dialog-title{margin:0;font-family:var(--serif);font-size:26px;font-weight:500;line-height:1.25;color:var(--ink)}
.confirm-dialog-content{padding-top:4px!important}.confirm-dialog-text{margin:0;font-size:14px;line-height:1.6;color:var(--ink-soft,var(--ink,#33444c))}
.confirm-dialog-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px;padding:14px 24px 22px!important}.confirm-dialog-actions>.mud-button-root{margin:0!important}
@media(max-width:480px){.confirm-dialog-actions{flex-direction:column-reverse}.confirm-dialog-actions>.mud-button-root{width:100%}}
/* The admin on tablets and phones (900px and narrower, as in AdminFrame and admin.js): a bar with the monogram and the menu
   button instead of the sidebar, which slides in from the right as a drawer over the dimmed page; the page does not scroll
   behind it. The content starts right under the bar, about 16px from the edges on a phone. On an iPhone the bar, the menu
   and the content keep clear of the notch and the home bar (the admin's pages use viewport-fit=cover, App.razor). */
.admin-topbar,.menu-overlay,.menu-close{display:none}
@media(max-width:900px){
html:has(.admin-topbar){scroll-padding-top:76px}html:has(.admin-app.menu-open){overflow:hidden}
.admin-app{display:block;--gutter:clamp(16px,4vw,28px)}
.admin-topbar{position:sticky;top:0;z-index:1000;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:calc(60px + env(safe-area-inset-top));padding:env(safe-area-inset-top) max(calc(var(--gutter) - 10px),env(safe-area-inset-right)) 0 max(var(--gutter),env(safe-area-inset-left));background:#fff;border-bottom:1px solid var(--line,#e5ddd0)}
.topbar-brand{font-family:var(--serif);font-size:28px;letter-spacing:2px;line-height:1;text-decoration:none}.topbar-brand>span{font-size:20px;color:var(--warm,var(--accent-soft,var(--gold)));font-style:italic;margin:0 3px}.topbar-brand small{display:block;font-family:var(--sans);font-size:7px;letter-spacing:2.4px;margin-top:5px}
.menu-button,.menu-close{display:flex;align-items:center;justify-content:center;flex:none;width:44px;height:44px;padding:0;border:0;border-radius:10px;background:transparent;color:var(--accent,#4a6676)}.menu-button:hover,.menu-close:hover{background:var(--tint,var(--accent-tint,var(--mist,#e8eef0)))}.menu-button .mud-icon-root,.menu-close .mud-icon-root{font-size:26px}
.menu-overlay{display:block;position:fixed;inset:0;z-index:1240;background:color-mix(in srgb,var(--ink,#33444c) 31%,transparent);backdrop-filter:blur(3px);opacity:0;visibility:hidden;transition:opacity .25s,visibility 0s .25s}
.admin-sidebar{inset:0 0 0 auto;z-index:1250;width:min(320px,calc(100% - 48px));padding:max(8px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) 14px;border-right:0;border-left:1px solid var(--line,#e5ddd0);box-shadow:-14px 0 44px color-mix(in srgb,var(--ink,#33444c) 15%,transparent);overscroll-behavior:contain;transform:translateX(100%);visibility:hidden;transition:transform .25s ease,visibility 0s .25s}
.menu-open .menu-overlay{opacity:1;visibility:visible;transition:opacity .25s}.menu-open .admin-sidebar{transform:none;visibility:visible;transition:transform .25s ease}
.menu-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 -8px 8px 0}.admin-sidebar .admin-brand{display:none}.admin-sidebar .nav-caption{margin:0 12px}
.admin-sidebar>a:not(.admin-brand){display:flex;align-items:center;min-height:48px;margin:2px 0;padding:10px 12px;font-size:15px}
.language-toggle{min-height:48px;margin:2px 0;font-size:15px}.language-toggle .mud-icon-root{font-size:20px}.language-list>p{font-size:12px}.language-list button{min-height:44px;font-size:15px}
.sidebar-bottom{padding-top:20px}.sidebar-bottom p{font-size:18px}.logout{display:flex;align-items:center;min-height:44px;padding:4px 0 0;font-size:13px}
.admin-main{width:100%;margin-left:0;padding:22px max(var(--gutter),env(safe-area-inset-right)) max(48px,env(safe-area-inset-bottom)) max(var(--gutter),env(safe-area-inset-left))}
}
/* Touch screens and narrow windows: the photos' buttons are 44px targets, and the gallery keeps two photos side by side
   (with their buttons) down to 356px windows, one under the other below that. */
@media(pointer:coarse),(max-width:900px){.admin-gallery{grid-template-columns:repeat(auto-fill,minmax(156px,1fr));gap:12px}.admin-gallery figcaption{padding:6px}.admin-gallery .ord{gap:4px}.admin-gallery figcaption button{width:44px;height:44px;border-radius:10px;font-size:18px}.photo-pick{display:inline-flex;align-items:center;min-height:44px}}
/* Narrow phones: the event's two dates, a moment's title and time, and its coordinates one under the other. */
@media(max-width:480px){.settings-card .count-grid{grid-template-columns:1fr}}
/* A long word in a page's title wraps instead of widening the page. */
.admin-heading>div{min-width:0}.admin-heading h1{overflow-wrap:break-word}
/* The panels from the right (an invitation, its link), the QR sheet's page and the message at the bottom keep clear of
   the notch and the home bar too. */
.editor-panel{padding-right:max(30px,env(safe-area-inset-right));padding-bottom:max(30px,env(safe-area-inset-bottom))}
@media(max-width:700px){.editor-panel{padding:23px max(18px,env(safe-area-inset-right)) max(23px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left))}}
@media screen{.qr-print{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}}
#blazor-error-ui{padding-bottom:max(15px,env(safe-area-inset-bottom))}

/* The guest agrees that the hosts see their menu notes (Pages/InvitationPage.razor). */
.consent-label{display:flex;gap:9px;align-items:flex-start;font-size:12px;line-height:1.5;color:var(--muted);margin:-4px 0 16px;text-align:left;text-transform:none;letter-spacing:0}.consent-label input{width:auto!important;margin:2px 0 0;flex:none}
/* Reporting an album photo from the viewer (invitation.js). */
/* Raportarea unei poze din album: un buton cu text și un formular, nu cercurile vizualizatorului (.lightbox button) */
.lightbox .lb-report{left:max(16px,env(safe-area-inset-left));bottom:max(16px,env(safe-area-inset-bottom));width:auto;height:auto;min-height:44px;padding:0 16px;gap:7px;border-radius:22px;background:#fffffff2;color:#30483e;font:inherit;font-size:13px;font-weight:600;cursor:pointer}
.lightbox .lb-report::before{content:"\2691";font-size:15px;color:#a24a37}
.lb-report-form{position:absolute;left:max(16px,env(safe-area-inset-left));right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));max-width:420px;background:#fff;color:#333;border-radius:12px;padding:16px;font-size:14px;text-align:left;box-shadow:0 10px 30px #0006}
.lb-report-form label{display:grid;gap:8px}
.lb-report-form textarea{width:100%;font:inherit;padding:10px;border:1px solid #ccc;border-radius:8px;resize:vertical}
.lb-report-form div{margin-top:10px;display:flex;flex-wrap:wrap;gap:8px}
.lightbox .lb-report-form button{position:static;width:auto;height:auto;min-height:44px;padding:0 18px;border-radius:8px;border:1px solid #ccc;background:#fff;color:#333;box-shadow:none;font:inherit;font-size:14px;cursor:pointer}
.lightbox .lb-report-form button[type=submit]{background:var(--accent,#31574b);color:#fff;border-color:transparent}
.lb-report-status{margin:8px 0 0;font-size:13px}
/* The viewer hides what does not apply (the arrows for one photo, Raportează outside the album): display:flex above would show them */
.lightbox button[hidden]{display:none}
/* The platform's own pages: the first sign-in, the account's events, access, payments, DevCraft's console. */
.setup-form{width:min(100%,440px);margin:6px auto 0;display:grid;gap:16px;text-align:left}
.setup-form label:not(.consent-label){display:grid;gap:7px;font-size:12px;color:var(--ink)}
.setup-form label small{color:var(--muted);font-size:11px;line-height:1.5}
.setup-form input:not([type=checkbox]),.zone-select,.super-new input,.super-new select{font:inherit;font-size:14px;padding:10px 12px;border:1px solid var(--line-strong,#d6cec2);border-radius:8px;background:var(--paper,#fdfbf7);color:var(--ink)}
.zone-select{width:100%}
.setup-page>.text-link{margin-top:18px;border:0;background:transparent;font:inherit;cursor:pointer}
.activate-form{display:grid;gap:12px;margin:14px 0 6px;max-width:640px}.activate-form .primary-button{justify-self:start}
.event-list{list-style:none;padding:0;margin:8px 0 18px;display:grid;gap:12px;width:min(100%,440px)}
.event-list form{margin:0}
.event-list button{width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:16px 20px;border:1px solid var(--line-strong,#d6cec2);border-radius:12px;background:var(--paper,#fdfbf7);color:var(--ink);font:inherit;text-align:left;cursor:pointer;transition:border-color .2s,box-shadow .2s}
.event-list strong{font-family:var(--serif);font-size:24px;font-weight:500}
.event-list span{font-size:13px;color:var(--muted)}
.event-list button:hover,.event-list button:focus-visible{border-color:var(--accent,#4a6676);box-shadow:0 6px 18px color-mix(in srgb,var(--ink,#33444c) 12%,transparent)}
.events-page .logout-link,.logout-link{border:0;background:transparent;font:inherit;font-size:12px;cursor:pointer;margin-top:12px}
.host-list,.order-list{list-style:none;padding:0;margin:0}
.host-list li,.order-list li{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px;padding:12px 0;border-bottom:1px solid var(--line)}
.host-list li:last-child,.order-list li:last-child{border-bottom:0}
.host-list li>span{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.host-list small{color:var(--muted);font-size:11px}
.order-list li span:last-child{font-variant-numeric:tabular-nums;white-space:nowrap}
.super-new{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.super-table{width:100%;min-width:760px;border-collapse:collapse}
.super-table th,.super-table td{text-align:left;vertical-align:top;padding:10px 8px;border-bottom:1px solid var(--line)}
.super-table th{font-size:10px;letter-spacing:1px;color:var(--muted);text-transform:uppercase;font-weight:600}
.super-table small{color:var(--muted)}
.super-actions{min-width:200px}.super-actions>*{display:inline-block;margin:0 6px 6px 0;vertical-align:top}
.super-actions form{margin:0}
.super-actions button{font:inherit;font-size:11px;padding:6px 9px;border:1px solid var(--line-strong,#d6cec2);border-radius:6px;background:#fff;color:var(--ink);cursor:pointer}
.super-actions button:hover{border-color:var(--accent,#4a6676)}
.super-actions button.danger{border-color:#d9a69a;color:#a14a38}
@media (max-width:700px){.entry-page h1{font-size:40px}}
.setup-form>.text-link,.activate-form>.text-link{justify-self:start;font-size:12px;color:var(--muted);text-decoration:underline;text-underline-offset:3px}
/* DevCraft's console (SuperFrame): the admin's frame with its own menu, wide tables, filters above them. */
.super-brand,.super-app .topbar-brand{font-family:var(--serif);font-size:34px;letter-spacing:1px;text-decoration:none;color:var(--ink)}
.super-app .topbar-brand{font-size:24px}
.super-me{display:block;font-size:11px;color:var(--muted);word-break:break-all;margin-bottom:6px}
.super-card{max-width:none;overflow-x:auto}
.super-stats{margin-bottom:24px}.super-stats strong.money{font-size:30px;line-height:1.25}.super-stats small a{color:inherit}
.super-stats article.attention{border-color:#d9a69a;background:#fbf1ee}
.super-filters{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:18px}
.super-filters input,.super-filters select{font:inherit;font-size:14px;padding:10px 12px;border:1px solid var(--line-strong,#d6cec2);border-radius:8px;background:#fff;color:var(--ink)}
.super-filters input{flex:1;min-width:220px}.super-filters .primary-button{min-height:42px}
.super-totals{margin:0 0 12px}
.client-events,.client-orders{list-style:none;padding:0;margin:0;display:grid;gap:6px}
.client-events li,.client-orders li{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}
.client-events form{margin:0}
.mini-button{font:inherit;font-size:11px;padding:4px 8px;border:1px solid var(--line-strong,#d6cec2);border-radius:6px;background:#fff;color:var(--ink);cursor:pointer}
.mini-button:hover{border-color:var(--accent,#4a6676)}
.mono{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:10px;color:var(--muted)}
.super-table td{font-size:12.5px}.client-table td:first-child{min-width:220px}
/* The console's dashboard: the period, one series per chart in the validated blue (#3a6ea5: lightness, chroma and 3:1
   contrast on white checked), its tooltip, the meters (a lighter step of the same blue as track; amber, then red). */
.super-range{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 18px}
.super-range a{padding:8px 14px;border:1px solid var(--line-strong,#d6cec2);border-radius:20px;font-size:12px;color:var(--ink);text-decoration:none;background:#fff}
.super-range a.chosen{background:var(--ink);border-color:var(--ink);color:#fff;font-weight:600}
.super-states{font-size:12px;color:var(--muted);margin:-6px 0 22px}.super-states strong{color:var(--ink)}
.chart-grid-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,460px),1fr));gap:0 22px}
.super-columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:0 22px;align-items:start}
.day-chart{margin:0}
.day-chart figcaption{display:grid;gap:4px;margin-bottom:22px}
.day-chart figcaption strong{font-family:var(--serif);font-size:26px;font-weight:500;color:var(--ink)}
.day-chart figcaption span{font-size:12px;color:var(--muted)}
.chart-plot{position:relative;height:150px;margin:0 0 6px 34px}
.chart-grid{position:absolute;left:-34px;right:0;height:0;border-top:1px solid #ece7de}
.chart-grid small{position:absolute;left:0;width:28px;padding-right:4px;text-align:right;transform:translateY(-50%);font-size:10px;line-height:1;color:var(--muted);font-variant-numeric:tabular-nums;background:#fff}
.chart-bars{position:absolute;inset:0;display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));column-gap:2px;align-items:end}
.chart-col{position:relative;height:100%;display:flex;align-items:flex-end;justify-content:center;outline:none}
.chart-col i{display:block;width:min(24px,100%);background:#3a6ea5;border-radius:4px 4px 0 0}
.chart-col:hover i,.chart-col:focus-visible i{background:#5584ba}
.chart-col:focus-visible{box-shadow:inset 0 0 0 2px #3a6ea5;border-radius:4px}
.chart-col b{position:absolute;left:50%;transform:translateX(-50%);font-size:11px;font-weight:600;color:var(--ink);white-space:nowrap}
.chart-x{position:relative;display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));margin-left:34px;height:16px;font-size:10px;color:var(--muted)}
.chart-x span{grid-row:1;justify-self:center;white-space:nowrap}
.chart-table{margin-top:10px;font-size:12px}.chart-table summary{cursor:pointer;color:var(--muted)}
.chart-table table{margin-top:8px;border-collapse:collapse}.chart-table td,.chart-table th{padding:3px 14px 3px 0;text-align:left;font-variant-numeric:tabular-nums}
.chart-tip{position:absolute;z-index:3000;transform:translate(-50%,calc(-100% - 8px));pointer-events:none;display:grid;gap:1px;padding:6px 10px;border:1px solid var(--line,#e5ddd0);border-radius:8px;background:#fff;box-shadow:0 6px 18px rgba(29,38,43,.14);font-size:11px;white-space:nowrap}
.chart-tip strong{color:var(--ink);font-size:13px}.chart-tip span{color:var(--muted)}
.super-table.compact{min-width:0}.super-table .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.super-subtitle{font-family:var(--serif);font-size:22px;font-weight:500;margin:26px 0 8px}
.space-meters{display:grid;gap:16px;max-width:760px}
.meter-row{display:grid;gap:6px}.meter-label{font-size:12px;color:var(--ink)}
.meter{height:8px;border-radius:4px;background:#dce6f2;overflow:hidden}
.meter i{display:block;height:100%;background:#3a6ea5;border-radius:4px}.meter i.warning{background:#a14e00}.meter i.critical{background:#b3261e}
.meter-value{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}
.meter-cell{min-width:220px}
.sum-line{display:block}
/* The cause the platform stands beside (PartnerCard, the invitation's line): quiet, under the page's own content. The SMS
   button only where a finger taps it, a phone; elsewhere the number and the word are enough. */
.partner-card{max-width:440px;margin:44px auto 0;padding:18px 20px;border:1px solid var(--line,#e5ddd0);border-radius:10px;background:var(--paper,#fffcf4);text-align:left}
.partner-card p:not(.eyebrow){margin-top:8px;font-size:13px;line-height:1.6;color:var(--muted,#6b6862)}
.partner-card a:not(.partner-sms),.invite-cause a:not(.partner-sms){color:var(--green);text-decoration:underline;text-underline-offset:3px}
.partner-sms{display:inline-flex;align-items:center;justify-content:center;min-height:44px;margin-top:12px;padding:10px 18px;border:1px solid var(--green);border-radius:6px;color:var(--green);font-size:13px;font-weight:600;text-decoration:none}
.partner-sms:hover{background:#e8eee3}
.invite-footer .invite-cause{max-width:460px;margin:18px auto 4px;font-family:var(--sans);font-size:11px;line-height:1.6;color:#8c8879}
.invite-cause .partner-sms{display:flex;width:max-content;margin:10px auto 0;font-size:12px}
@media (hover:hover) and (pointer:fine){.partner-sms,.invite-cause .partner-sms{display:none}}
/* The console's "Stare și alerte" (SuperHome): the platform's state now and the channels that tell DevCraft. */
.super-health h2{margin-bottom:10px}
.health-ok{display:flex;gap:10px;align-items:baseline;color:#2f6b3f;font-weight:600}
.health-ok:before{content:"\25CF";color:#2f6b3f}
.health-problems{list-style:none;margin:0 0 12px;padding:0;display:grid;gap:10px}
.health-problems li{display:grid;gap:4px;padding:12px 14px;border-left:4px solid #b3261e;border-radius:6px;background:#fcecea}
.health-problems strong{color:#8f1d17}
.health-problems span{font-size:13px;line-height:1.55;color:var(--ink);overflow-wrap:anywhere}
.health-channels{list-style:none;margin:10px 0 14px;padding:0;display:grid;gap:6px;font-size:13px}
.health-channels li{display:flex;gap:12px;flex-wrap:wrap}
.health-channels span{min-width:110px;color:var(--muted)}
/* The platform's front page (Home.razor): a presentation in Romanian or English, in the neutral palette. */
.home{background:var(--cream);color:var(--ink);
  /* The palette's words for these, under the names each palette uses (the neutral one's --warm, --mist, --accent-deep). */
  --home-warm:var(--warm,var(--gilt-ink,#8c5c48));--home-tint:var(--mist,var(--accent-tint,#e8eef0));--home-hover:var(--accent-deep,var(--home-hover))}
.home h1,.home h2,.home h3,.home p{margin:0}
.home em{font-style:italic;color:var(--accent)}
.home-top{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--cream) 92%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.home-top-in{max-width:1180px;margin:0 auto;padding:14px 24px;display:flex;align-items:center;gap:24px}
.home-brand{font-family:var(--serif);font-size:25px;font-weight:500;color:var(--ink);text-decoration:none;white-space:nowrap}
.home-brand span{font-style:italic;color:var(--home-warm)}.home-mark{width:1.3em;height:auto;margin-right:.32em;vertical-align:-.1em;fill:none;stroke:var(--home-warm);stroke-width:4.6}
.home-nav{display:flex;gap:22px;margin-left:auto;font-size:14px}
.home-nav a{color:var(--muted);text-decoration:none}
.home-nav a:hover{color:var(--ink)}
.home-top-actions{display:flex;align-items:center;gap:12px}
.home-lang{display:inline-flex;align-items:center;justify-content:center;min-width:40px;min-height:36px;border:1px solid var(--line-strong,var(--line));border-radius:999px;color:var(--ink);font-size:12px;font-weight:600;letter-spacing:1px;text-decoration:none}
.home-signin{display:inline-flex;align-items:center;min-height:38px;padding:0 16px;border-radius:6px;background:var(--accent);color:var(--paper);font-size:14px;font-weight:600;text-decoration:none;white-space:nowrap}
.home-signin:hover{background:var(--home-hover)}
.home-hero{max-width:1180px;margin:0 auto;padding:72px 24px 96px;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:48px;align-items:center}
.home-hero h1{font-family:var(--serif);font-weight:500;font-size:clamp(42px,5.6vw,72px);line-height:1.04;letter-spacing:-.01em;margin-top:18px;text-wrap:balance}
.home-lead{margin-top:24px!important;max-width:560px;color:var(--muted);font-size:18px;line-height:1.65;text-wrap:pretty}
.home-actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px 24px;margin-top:32px}
.home-actions.center{justify-content:center}
.home-actions .text-link{font-size:15px}
.home-demo{display:inline-flex;align-items:center;gap:12px;min-height:50px;padding:14px 22px;border:1px solid var(--accent);border-radius:4px;color:var(--accent);font-size:13px;letter-spacing:.3px;text-decoration:none;transition:background .2s}.home-demo:hover{background:color-mix(in srgb,var(--accent) 8%,transparent)}.home-seating-demo{display:inline-block;margin-top:14px;color:var(--accent);font-weight:600;text-underline-offset:5px}
.home-proof{list-style:none;margin:30px 0 0;padding:0;display:grid;gap:10px;color:var(--muted);font-size:14px}
.home-proof li{display:flex;gap:10px;align-items:baseline}
.home-proof li:before{content:"\2713";color:var(--home-warm);font-weight:700}
.home-cards{position:relative;min-height:500px}
.home-card{position:absolute;width:min(270px,52%);padding:66px 18px 24px;background:#fffcf4;border:1px solid #d6bd91;text-align:center;box-shadow:0 24px 60px rgba(48,72,62,.14);overflow:hidden}
.home-card:before{content:"";position:absolute;inset:7px;border:1px solid #e9dcc2;pointer-events:none}
.home-card-0{left:2%;top:0;transform:rotate(-6deg)}
.home-card-1{right:2%;top:22px;transform:rotate(5deg)}
.home-card-2{left:50%;top:150px;transform:translateX(-50%) rotate(.5deg);z-index:2;box-shadow:0 30px 70px rgba(48,72,62,.22)}
.home-card-floral{position:absolute;top:0;left:0;width:100%;pointer-events:none}
.home-card-lang{position:relative;display:inline-block;margin-bottom:14px;padding:4px 10px;border-radius:999px;background:#eef2e8;color:#31574b;font-size:10px;font-weight:600;letter-spacing:1.4px;text-transform:uppercase}
.home-card-greeting{position:relative;font-family:var(--serif);font-size:22px;color:#826d48}
.home-card-line{position:relative;margin-top:6px!important;font-size:12px;color:#827c6c;line-height:1.5}
.home-card-names{position:relative;margin:16px 0 18px!important;font-family:var(--serif);font-style:italic;font-size:36px;line-height:1.1;color:#30483e}
.home-card-button{position:relative;display:inline-block;padding:10px 16px;border-radius:4px;background:#31574b;color:#fffcf4;font-size:12px;letter-spacing:.3px}
.home-band{background:var(--paper);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.home-section{max-width:1180px;margin:0 auto;padding:88px 24px;scroll-margin-top:72px}
.home-head{max-width:720px;margin:0 auto 44px;text-align:center}
.home-head .eyebrow{display:block}
.home-head h2{font-family:var(--serif);font-weight:500;font-size:clamp(34px,4.4vw,54px);line-height:1.1;margin-top:14px;text-wrap:balance}
.home-head p:not(.eyebrow){margin-top:18px;color:var(--muted);font-size:17px;line-height:1.65;text-wrap:pretty}
.home-chips{list-style:none;margin:0 auto 40px;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:10px;max-width:860px}
.home-chips li{padding:9px 16px;border:1px solid var(--line);border-radius:999px;background:var(--cream);font-family:var(--serif);font-size:19px}
.home-grid{display:grid;gap:22px}
.home-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.home-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}
.home-grid article{padding:24px;border:1px solid var(--line);border-radius:14px;background:var(--cream)}
#features .home-grid article,#space .home-grid article,#languages .home-grid article,#languages .home-chips li{background:var(--paper)}
/* What the hosts get first: the invitation by email, the replies as they come, the seating from the same data. */
.home-highlights{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.home-highlights article{display:flex;flex-direction:column;padding:32px 28px;border:1px solid var(--line);border-radius:18px;background:var(--cream);box-shadow:0 14px 34px color-mix(in srgb,var(--ink) 5%,transparent)}
.home-highlights .home-icon{width:52px;height:52px}
.home-highlights h3{font-family:var(--serif);font-weight:500;font-size:28px;line-height:1.15}
.home-highlights p{margin:12px 0 22px!important;color:var(--muted);font-size:15px;line-height:1.65}
.home-highlights ul{list-style:none;margin:auto 0 0;padding:18px 0 0;border-top:1px solid var(--line);display:grid;gap:9px;font-size:14px}
.home-highlights li{display:flex;gap:10px;align-items:baseline;line-height:1.5}
.home-highlights li:before{content:"\2713";color:var(--accent);font-weight:700}
.home-grid h3{font-family:var(--sans);font-size:16px;font-weight:600;line-height:1.35}
.home-grid p{margin-top:8px!important;color:var(--muted);font-size:14px;line-height:1.65}
.home-icon{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;margin-bottom:14px;border-radius:50%;background:var(--home-tint);color:var(--accent)}
.home-icon svg{fill:currentColor}
.home-note{max-width:720px;margin:32px auto 0!important;text-align:center;color:var(--muted);font-size:14px;line-height:1.65}
.home-occasions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.home-occasion{display:flex;flex-direction:column;padding:28px 26px;border:1px solid var(--line);border-radius:16px;background:var(--paper);box-shadow:0 14px 34px color-mix(in srgb,var(--ink) 5%,transparent)}
.home-occasion h3{font-family:var(--serif);font-weight:500;font-size:32px;line-height:1.1}
.home-occasion p{margin-top:10px!important;color:var(--muted);font-size:15px;line-height:1.6}
.home-occasion .home-from{margin-top:auto!important;padding-top:18px;color:var(--home-warm);font-size:12px;font-weight:600;letter-spacing:1.2px;text-transform:uppercase}
.home-buy{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}
.home-buy a{display:flex;align-items:center;justify-content:center;min-height:44px;padding:0 10px;border:1px solid var(--accent);border-radius:6px;color:var(--accent);font-size:13px;font-weight:600;text-decoration:none;text-align:center}
.home-buy a.premium{background:var(--accent);color:var(--paper)}
.home-buy a:hover{background:var(--home-tint)}
.home-buy a.premium:hover{background:var(--home-hover)}
/* An offer opened by its code (?cod=…): a band under the menu, and each price struck through beside the offer's. */
.home-offer{background:var(--accent);color:var(--paper)}
.home-offer-in{max-width:1180px;margin:0 auto;padding:16px 24px;display:flex;align-items:center;justify-content:space-between;gap:12px 24px;flex-wrap:wrap}
.home-offer p{line-height:1.55;font-size:15px;max-width:820px}
.home-offer strong{display:block;font-family:var(--serif);font-size:22px;font-weight:500}
.home-offer .primary-button{background:var(--paper);border-color:var(--paper);color:var(--accent);min-height:44px}
.home-offer .primary-button:hover{background:var(--home-tint)}
.home-offered{white-space:nowrap}
.home s{opacity:.6;font-size:.85em;margin-right:5px;text-decoration-thickness:1px}
@media (max-width:600px){.home-offer-in{padding:14px 16px}.home-offer strong{font-size:19px}}
.home-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:22px}
.home-steps li{padding-top:18px;border-top:1px solid var(--gold,var(--line))}
.home-steps span{display:block;font-family:var(--serif);font-size:34px;color:var(--home-warm)}
.home-steps h3{margin-top:6px!important;font-family:var(--sans);font-size:16px;font-weight:600}
.home-steps p{margin-top:6px!important;color:var(--muted);font-size:14px;line-height:1.6}
.home-plans{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;max-width:900px;margin:0 auto}
.home-plan{position:relative;padding:32px 30px;border:1px solid var(--line);border-radius:18px;background:var(--cream)}
.home-plan.premium{border:2px solid var(--accent);background:var(--paper);box-shadow:0 20px 48px color-mix(in srgb,var(--ink) 9%,transparent)}
.home-plan h3{font-family:var(--serif);font-weight:500;font-size:36px}
.home-plan-tag{margin-top:4px!important;color:var(--accent);font-size:13px;font-weight:600}
.home-plan dl{margin:22px 0 0;display:grid;gap:14px}
.home-plan dl div{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.home-plan dt{color:var(--muted);font-size:14px;line-height:1.45}
.home-plan dd{margin:0;font-family:var(--serif);font-size:30px;white-space:nowrap;text-align:right}
.home-plan dd small{display:block;font-family:var(--sans);font-size:12px;color:var(--muted)}
.home-plan ul{list-style:none;margin:22px 0 0;padding:0;display:grid;gap:10px;font-size:14px}
.home-plan li{display:flex;gap:10px;align-items:baseline;line-height:1.5}
.home-plan li:before{content:"\2713";color:var(--accent);font-weight:700}
.home-faq{max-width:820px;margin:0 auto;border-top:1px solid var(--line)}
.home-faq details{border-bottom:1px solid var(--line)}
.home-faq summary{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:20px 4px;font-family:var(--serif);font-size:22px;cursor:pointer;list-style:none}
.home-faq summary::-webkit-details-marker{display:none}
.home-faq summary:after{content:"+";color:var(--home-warm);font-family:var(--sans);font-size:22px;transition:transform .2s}
.home-faq details[open] summary:after{transform:rotate(45deg)}
.home-faq details p{padding:0 40px 22px 4px;color:var(--muted);font-size:15px;line-height:1.7}
.home-foot{border-top:1px solid var(--line)}
.home-foot-in{max-width:1180px;margin:0 auto;padding:36px 24px 44px;display:grid;gap:14px}
.home-foot-line{font-family:var(--serif);font-size:21px}
.home-foot nav{display:flex;flex-wrap:wrap;gap:6px 22px;font-size:14px}
.home-foot nav a{color:var(--ink);text-decoration:none}
.home-foot nav a:hover{text-decoration:underline}
.home-foot-cause{color:var(--muted);font-size:14px;line-height:1.6}
.home-foot-cause a{color:var(--ink);text-underline-offset:3px}
.home-legal{color:var(--muted);font-size:12.5px;line-height:1.6}
.home-legal a{color:inherit}
.home-anpc{display:inline-block;line-height:0;justify-self:start}
.home-anpc img{display:block;width:201px;height:50px}
.home .partner-card{margin-top:48px}
/* Ideas (#ideas): the words beside a chat drawn in the palette (their message, our reply, later the idea in their account). */
.home-ideas{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);overflow:hidden;border:1px solid var(--line);border-radius:18px;background:var(--paper);box-shadow:0 30px 70px color-mix(in srgb,var(--ink) 10%,transparent)}
.home-ideas-text{padding:56px 52px}
.home-ideas h2{margin-top:14px;font-family:var(--serif);font-weight:500;font-size:clamp(34px,4.2vw,52px);line-height:1.08;text-wrap:balance}
.home-ideas .nw{white-space:nowrap}
.home-ideas-lead{margin-top:18px!important;color:var(--muted);font-size:17px;line-height:1.65;text-wrap:pretty}
.home-ideas-points{list-style:none;margin:24px 0 0;padding:0;display:grid;gap:10px;color:var(--muted);font-size:15px;line-height:1.55}
.home-ideas-points li{position:relative;padding-left:24px;text-wrap:pretty}
.home-ideas-points li:before{content:"\2726";position:absolute;left:0;color:var(--home-warm)}
.home-ideas-points strong{color:var(--ink);font-weight:600}
.home-ideas .home-actions{margin-top:28px}
.home-ideas-mail{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:14px 22px;border:1px solid var(--accent);border-radius:4px;color:var(--accent);font-size:13px;letter-spacing:.3px;text-decoration:none;transition:background .2s}
.home-ideas-mail:hover{background:color-mix(in srgb,var(--accent) 8%,transparent)}
.home-ideas-chat{position:relative;display:flex;flex-direction:column;justify-content:center;gap:14px;padding:52px 40px;background:radial-gradient(70% 55% at 90% 0%,color-mix(in srgb,var(--home-warm) 30%,transparent),transparent 70%),var(--accent);color:var(--paper)}
.home-ideas-chat:before{content:"";position:absolute;inset:12px;border:1px solid color-mix(in srgb,var(--paper) 22%,transparent);border-radius:10px;pointer-events:none}
.home-ideas-chat p{position:relative}
.hi-out,.hi-in{max-width:90%;padding:14px 18px 26px;border-radius:16px;box-shadow:0 18px 32px -22px rgba(0,0,0,.55)}
.hi-out{align-self:flex-end;border-bottom-right-radius:4px;background:color-mix(in srgb,var(--home-warm) 16%,var(--paper));color:var(--ink);font-family:var(--serif);font-style:italic;font-size:24px;line-height:1.3}
.hi-out small{position:absolute;right:14px;bottom:7px;color:var(--muted);font-family:var(--sans);font-style:normal;font-size:11.5px;line-height:1}
.hi-out b{color:var(--accent);letter-spacing:-.12em}
.hi-caret{display:inline-block;width:2px;height:.95em;margin-left:4px;vertical-align:-.1em;background:var(--accent);animation:hi-caret 1.1s steps(1) infinite}
@keyframes hi-caret{50%{opacity:0}}
.hi-in{align-self:flex-start;padding-bottom:16px;border-bottom-left-radius:4px;background:var(--paper);color:var(--ink);font-size:15px;line-height:1.5}
.hi-in span{display:block;margin-bottom:4px;color:var(--home-warm);font-size:11px;font-weight:600;letter-spacing:1.6px;text-transform:uppercase}
.hi-later{align-self:center;margin-top:6px!important;padding:4px 12px;border-radius:999px;background:color-mix(in srgb,var(--paper) 14%,transparent);color:color-mix(in srgb,var(--paper) 85%,transparent);font-size:10.5px;font-weight:600;line-height:1.5;letter-spacing:1.7px;text-transform:uppercase}
.hi-new{display:flex;align-items:center;gap:14px;padding:14px 18px;border:1px solid color-mix(in srgb,var(--paper) 35%,transparent);border-radius:12px;background:color-mix(in srgb,var(--paper) 10%,transparent);font-size:15px;line-height:1.4}
.hi-new-icon{flex:none;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--paper);color:var(--accent);font-size:17px}
.hi-new b{display:block;margin-bottom:2px;font-size:11px;font-weight:600;letter-spacing:1.6px;text-transform:uppercase}
@media(max-width:980px){.home-ideas{grid-template-columns:minmax(0,1fr)}}
@media(max-width:600px){.home-ideas{border-radius:14px}.home-ideas-text{padding:36px 22px}.home-ideas-chat{padding:40px 22px}.hi-out{font-size:21px}.home-ideas .home-actions>a{width:100%}}
@media (max-width:1080px){.home-nav{display:none}.home-top-actions{margin-left:auto}.home-grid.four,#features .home-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.home-highlights article{padding:28px 22px}.home-highlights h3{font-size:24px}.home-steps{grid-template-columns:repeat(3,minmax(0,1fr))}.home-occasions{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:860px){.home-hero{grid-template-columns:minmax(0,1fr);padding:44px 20px 64px;gap:28px}.home-cards{min-height:440px;max-width:520px;width:100%;justify-self:center}.home-card{width:min(240px,58%);padding:58px 14px 20px}.home-card-names{font-size:30px}.home-card-2{top:130px}.home-grid.three,.home-highlights{grid-template-columns:minmax(0,1fr)}.home-plans{grid-template-columns:minmax(0,1fr)}.home-section{padding:64px 20px}.home-top-in{padding:12px 16px;gap:12px}}
@media (max-width:600px){.home-grid.four,#features .home-grid,.home-occasions,.home-steps{grid-template-columns:minmax(0,1fr)}.home-brand{font-size:21px}.home-signin{padding:0 12px;font-size:13px}.home-lead{font-size:16px}.home-cards{min-height:400px}.home-card{width:min(210px,60%)}.home-card-2{top:118px}.home-card-greeting{font-size:19px}.home-card-names{font-size:27px;margin:12px 0 14px!important}.home-plan{padding:26px 22px}.home-plan dd{font-size:26px}.home-faq summary{font-size:19px}}
/* The seating plan (Pages/Tables.razor): who has no place yet on the left, the tables on the right, each drawn from above
   (Layout/TableDrawing.razor). The sides' colours are a validated categorical set (blue, orange, aqua: told apart with
   any colour vision); a guest without an answer is a hollow seat, one who no longer comes a dashed red one. Every colour
   comes with its words (the legend, the names), never alone. */
.side-first{--side:#2a78d6}.side-second{--side:#eb6834}.side-common{--side:#1baf7a}
/* Those at a table without an invitation (the couple, the godparents): a dark neutral, apart from the sides by lightness. */
.extra{--side:#5a524a}
.dot{display:inline-block;flex:none;width:10px;height:10px;border-radius:50%;background:var(--side,#c9c3b6);box-sizing:border-box}
.dot.pending{background:#fff;border:2px solid var(--side)}
.dot.seat-free{background:#fff;border:1.5px solid #c9c3b6}
.dot.gone{background:#fff;border:2px dashed #b3261e}
.table-drawing{display:block;width:100%;max-width:190px;height:auto;margin:6px auto 10px;overflow:visible}
.table-drawing .table-top{fill:var(--tint,var(--accent-tint,var(--mist,#eef1ec)));stroke:var(--line-strong,#d6cec2);stroke-width:1.5}
.table-drawing .seat{fill:var(--side);stroke:#fff;stroke-width:2}
.table-drawing .seat.pending{fill:#fff;stroke:var(--side);stroke-width:2.5}
.table-drawing .seat-free{fill:#fff;stroke:#c9c3b6;stroke-width:1.5}
.table-drawing .gone{fill:#fff;stroke:#b3261e;stroke-width:2;stroke-dasharray:3 2}
.table-drawing text{text-anchor:middle;fill:var(--ink,#33444c)}
.table-drawing .table-count{font-family:var(--serif);font-size:24px;font-variant-numeric:lining-nums;font-feature-settings:"lnum" 1}
.table-drawing .table-capacity{font-family:var(--sans);font-size:11px;fill:var(--muted,#6b6862)}
.seating-heading{align-items:flex-end}
.seating-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.seating-stats{margin-bottom:16px}
.seating-meter{height:6px;margin-top:12px;border-radius:3px;background:var(--line,#e5ddd0);overflow:hidden}
.seating-meter i{display:block;height:100%;border-radius:3px;background:var(--accent,#4a6676);transition:width .3s}
.seating-toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px 20px;flex-wrap:wrap;margin:4px 0 16px}
.seating-legend{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px 16px;font-size:11px;color:var(--muted,#6b6862)}
.seating-legend li{display:inline-flex;align-items:center;gap:7px}
.seating-exports{display:flex;gap:4px;flex-wrap:wrap}
.gone-alert{display:flex;align-items:center;justify-content:space-between;gap:10px 16px;flex-wrap:wrap;width:100%}
.gone-alert p{margin:0;font-size:12px;line-height:1.6}
.seating-board{display:grid;grid-template-columns:300px minmax(0,1fr);gap:22px;align-items:start}
.seat-pool{position:sticky;top:20px;max-height:calc(100vh - 40px);max-height:calc(100dvh - 40px);display:flex;flex-direction:column;background:#fff;border:1px solid var(--line,#e5ddd0);border-radius:12px;overflow:hidden;transition:box-shadow .15s}
.pool-head{display:grid;gap:10px;padding:18px 16px 10px;border-bottom:1px solid var(--line,#e5ddd0)}
.pool-head h2{display:flex;align-items:baseline;gap:10px;margin:0;font-size:26px}
.pool-count{padding:2px 9px;border-radius:20px;background:var(--tint,var(--accent-tint,var(--mist,#e8eef0)));color:var(--accent,#4a6676);font-family:var(--sans);font-size:12px;font-weight:600}
.pool-sides{display:flex;flex-wrap:wrap;gap:6px}
.pool-sides button{display:inline-flex;align-items:center;gap:6px;min-height:30px;padding:4px 11px;border:1px solid var(--line,#e5ddd0);border-radius:20px;background:#fff;color:var(--muted,#6b6862);font:inherit;font-size:11px;cursor:pointer}
.pool-sides button.on{border-color:var(--accent,#4a6676);background:var(--tint,var(--accent-tint,var(--mist,#e8eef0)));color:var(--accent,#4a6676);font-weight:600}
.pool-head .mud-checkbox .mud-typography{font-size:11px}
.pool-list{display:grid;align-content:start;gap:8px;padding:10px;overflow:auto;overscroll-behavior:contain}
.pool-family{border:1px solid var(--line,#e5ddd0);border-radius:10px;background:var(--paper,#fdfbf7);cursor:grab}
.pool-family.selected{border-color:var(--accent,#4a6676);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent,#4a6676) 25%,transparent)}
.family-head{display:flex;align-items:center;gap:8px;padding:9px 10px 9px 12px;border-radius:9px;font-size:12px;cursor:pointer}
.family-head strong{flex:1;min-width:0;font-weight:600;overflow-wrap:anywhere}
.pool-family.selected>.family-head{background:var(--tint,var(--accent-tint,var(--mist,#e8eef0)))}
.family-count{min-width:24px;padding:1px 7px;border:1px solid var(--line,#e5ddd0);border-radius:20px;background:#fff;color:var(--muted,#6b6862);font-size:11px;text-align:center}
.menu-mark{display:inline-flex;color:var(--muted,#6b6862)}.menu-mark .mud-icon-root{font-size:16px}
.pool-family ul{list-style:none;display:grid;gap:1px;margin:0;padding:0 10px 8px 28px}
.pool-family li,.table-people li{display:flex;align-items:center;gap:6px;min-height:28px;border-radius:6px;font-size:12px;cursor:grab}
.person-name{padding:3px 5px;border-radius:5px;cursor:pointer;overflow-wrap:anywhere}
.family-head:hover,.person-name:hover{background:var(--tint,var(--accent-tint,var(--mist,#e8eef0)))}
.family-head:focus-visible,.person-name:focus-visible{outline:2px solid var(--accent,#4a6676);outline-offset:1px}
li.selected>.person-name{background:var(--accent,#4a6676);color:#fff}
.seat-badge{padding:2px 6px;border-radius:10px;background:#f1efe9;color:var(--muted,#6b6862);font-size:9px;letter-spacing:.3px;white-space:nowrap}
.seat-badge.pending{background:#fbf2df;color:#8a6a24}
.seat-badge.gone{background:#fbe9e7;color:#a32b20}
.seat-badge.extra{background:#ece8e1;color:#4d463e}
.pool-empty{padding:28px 14px;color:var(--muted,#6b6862);font-family:var(--serif);font-size:20px;text-align:center}
.seat-tables{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px;align-content:start}
.seat-table{display:flex;flex-direction:column;padding:14px 12px 12px 14px;border:1px solid var(--line,#e5ddd0);border-radius:12px;background:#fff;transition:border-color .15s,box-shadow .15s}
.seat-table header{display:flex;align-items:center;gap:8px}
.seat-table h3{flex:1;min-width:0;margin:0;font-family:var(--serif);font-size:22px;line-height:1.2;overflow-wrap:anywhere}
.table-free{color:var(--muted,#6b6862);font-size:10px;white-space:nowrap}
.seat-table.full .table-free{color:var(--accent,#4a6676);font-weight:600;text-transform:uppercase;letter-spacing:.6px}
.table-people{list-style:none;display:grid;gap:1px;margin:0;padding:0}
.table-people li .person-name{flex:1;min-width:0}
.table-people li.gone{cursor:default}.table-people li.gone .person-name{color:var(--muted,#6b6862);text-decoration:line-through;cursor:default}
.unseat{flex:none;width:26px;height:26px;border:0;border-radius:6px;background:transparent;color:var(--muted,#6b6862);font-size:17px;line-height:1;opacity:.55;cursor:pointer}
.table-people li:hover .unseat,.unseat:focus-visible{opacity:1}
.unseat:hover{background:#f6e9e7;color:#a32b20}
.table-empty{margin:0;padding:4px 8px 6px;color:var(--muted,#6b6862);font-size:11px;text-align:center}
.seat-table footer{margin-top:auto;padding-top:9px;border-top:1px solid var(--line,#e5ddd0);color:var(--muted,#6b6862);font-size:10px}
.seat-table>ol+footer,.seat-table>.table-empty+footer{margin-top:10px}
.seat-table footer p{margin:0}.seat-table footer p+p{margin-top:5px}
.table-menu{display:flex;align-items:flex-start;gap:5px;line-height:1.5}.table-menu .mud-icon-root{flex:none;font-size:14px;margin-top:1px}.table-menu b{font-weight:600;color:var(--ink,#33444c)}
.seat-here{width:100%;margin:0 0 10px;padding:9px;border:1px dashed var(--accent,#4a6676);border-radius:8px;background:var(--tint,var(--accent-tint,var(--mist,#e8eef0)));color:var(--accent,#4a6676);font:inherit;font-size:12px;font-weight:600;cursor:pointer}
.seat-here:disabled{border-color:var(--line,#e5ddd0);background:#f6f4ef;color:var(--muted,#6b6862);cursor:not-allowed}
.seating-board.choosing .seat-table.can-take{border-color:var(--accent,#4a6676)}
.seat-table.drop-target,.seat-pool.drop-target{border-color:var(--accent,#4a6676);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent,#4a6676) 22%,transparent)}
.add-table{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:220px;border:1.5px dashed var(--line-strong,#d6cec2);border-radius:12px;background:transparent;color:var(--accent,#4a6676);font:inherit;font-size:13px;font-weight:600;cursor:pointer}
.add-table:hover{border-color:var(--accent,#4a6676);background:#fff}
.selection-bar{position:fixed;left:50%;bottom:max(18px,env(safe-area-inset-bottom));z-index:1200;display:flex;align-items:center;gap:8px 10px;flex-wrap:wrap;width:max-content;max-width:min(680px,calc(100vw - 24px));padding:10px 12px 10px 18px;border-radius:14px;background:var(--ink,#33444c);color:#fff;box-shadow:0 18px 40px #0003;transform:translateX(-50%)}
.selection-bar p{flex:1;min-width:180px;margin:0;font-size:12px;line-height:1.5}
.selection-bar .mud-button-root{color:#fff!important;border-color:#ffffff80!important}
.seat-toast{position:fixed;left:50%;bottom:max(18px,env(safe-area-inset-bottom));z-index:1500;display:flex;align-items:center;gap:12px;width:max-content;max-width:min(560px,calc(100vw - 24px));padding:10px 8px 10px 16px;border:1px solid var(--line,#e5ddd0);border-left:4px solid #3f6b45;border-radius:10px;background:#fff;color:var(--ink,#33444c);box-shadow:0 14px 34px #0002;font-size:12px;transform:translateX(-50%)}
.seat-toast.error{border-left-color:#b3261e}
.seat-toast.raised{bottom:calc(max(18px,env(safe-area-inset-bottom)) + 70px)}
.seat-toast button{border:0;background:transparent;color:var(--muted,#6b6862);font-size:18px;padding:2px 8px;cursor:pointer}
.seat-backdrop{justify-content:center;align-items:center;padding:12px}
.seat-dialog{width:min(520px,100%);max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px);border-radius:16px}
.seat-numbers{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}
.shape-choice{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0 0;padding:0;border:0}
.shape-choice legend{margin-bottom:8px;color:var(--muted,#6b6862);font-size:12px}
.shape-choice label{position:relative;display:grid;justify-items:center;gap:4px;padding:12px;border:1px solid var(--line,#e5ddd0);border-radius:12px;background:#fff;font-size:12px;cursor:pointer}
.shape-choice label.on{border-color:var(--accent,#4a6676);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent,#4a6676) 25%,transparent);font-weight:600}
.shape-choice input{position:absolute;opacity:0;pointer-events:none}
.shape-choice label:has(input:focus-visible){outline:2px solid var(--accent,#4a6676);outline-offset:2px}
.shape-choice .table-drawing{max-width:120px;max-height:96px;margin:0}
.seat-dialog .editor-footer .me-auto{margin-right:auto}
/* „Invitați & confirmări”: the planner's tick, and each invitation's tables. */
.seating-switch{display:flex;align-items:center;gap:4px 14px;flex-wrap:wrap;margin:0 0 18px;padding:6px 14px 6px 6px;border:1px solid var(--line,#e5ddd0);border-radius:12px;background:#fff}
.seating-switch p{flex:1;min-width:220px;margin:0;color:var(--muted,#6b6862);font-size:11px}
.seating-switch.on{border-color:color-mix(in srgb,var(--accent,#4a6676) 40%,var(--line,#e5ddd0))}
.seat-note{color:var(--accent,#4a6676)!important}
@media(max-width:1200px){.seating-board{grid-template-columns:260px minmax(0,1fr)}}
@media(max-width:900px){
.seating-board{grid-template-columns:minmax(0,1fr)}
.seat-pool{position:static;max-height:none}
.pool-list{max-height:46vh;max-height:46dvh}
.seating-actions{width:100%;justify-content:stretch}.seating-actions .mud-button-root{flex:1}
.seat-tables{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}
.pool-family li,.table-people li{min-height:36px}.person-name{padding:6px}.unseat{width:36px;height:36px}
}
@media(max-width:520px){.seat-tables{grid-template-columns:minmax(0,1fr)}.seat-table .table-drawing{max-width:160px}.seating-exports{width:100%}}
/* The plan on paper (Pages/TablesPrint.razor): on screen a sheet on the cream page, printed an A4. Its margins are the
   page's own, for any print dialog and browser: the plan sits in a table whose empty head and foot repeat on every
   printed sheet (the top and bottom margins) and whose cell keeps the sides; on screen that table is plain blocks. */
body:has(.seat-print){background:var(--cream,#faf6ec)}
.print-sheet{display:block;width:100%;border-collapse:collapse}.print-sheet>thead,.print-sheet>tfoot{display:none}
.print-sheet>tbody,.print-sheet>tbody>tr,.print-sheet>tbody>tr>td{display:block;padding:0}
.seat-print{max-width:1060px;margin:28px auto 60px;padding:44px 48px 52px;background:#fff;border:1px solid var(--line,#e6dfcd);border-radius:6px;box-shadow:0 18px 50px #30483e14;color:var(--ink,#30483e);-webkit-print-color-adjust:exact;print-color-adjust:exact}
.print-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;padding-bottom:18px;border-bottom:1px solid var(--gold,#b38750)}
.print-head .eyebrow{margin:0;font-size:10px;letter-spacing:3px;color:var(--gold,#b38750)}
.print-head h1{margin:8px 0 6px;font-family:var(--serif);font-size:46px;font-weight:500;line-height:1.05}
.print-head p:not(.eyebrow){margin:0;color:var(--muted,#788072);font-size:13px}
.print-button{flex:none;padding:11px 18px;border:0;border-radius:8px;background:var(--accent,#4a6676);color:#fff;font:inherit;font-size:13px;font-weight:600;cursor:pointer}
.print-stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));margin:18px 0 0;border:1px solid var(--line,#e6dfcd);border-radius:6px;background:#fbf8f1}
.print-stats>div{padding:10px 14px}.print-stats>div+div{border-left:1px solid var(--line,#e6dfcd)}
.print-stats dt{font-size:9px;letter-spacing:1.4px;text-transform:uppercase;color:var(--muted,#788072)}
.print-stats dd{margin:2px 0 0;font-family:var(--serif);font-size:30px;font-weight:500;line-height:1.1;font-variant-numeric:lining-nums;font-feature-settings:"lnum" 1}
.seat-print .seating-legend{margin:14px 0 0;font-size:11px}
.print-tables{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:16px}
.print-table{display:flex;flex-direction:column;border:1px solid var(--line,#e6dfcd);border-radius:8px;overflow:hidden;break-inside:avoid;background:#fff}
.print-table>header{display:flex;justify-content:space-between;align-items:baseline;gap:8px;padding:9px 14px 8px;background:#f7f3ea;border-bottom:1px solid var(--line,#e6dfcd)}
.print-table h2{margin:0;font-family:var(--serif);font-size:22px;font-weight:600;line-height:1.15}
.print-count{flex:none;padding:2px 8px;border-radius:10px;background:#fff;border:1px solid var(--line,#e6dfcd);color:var(--muted,#788072);font-size:10px;font-variant-numeric:tabular-nums}
.print-count.full{border-color:transparent;background:var(--ink,#30483e);color:#fff}
.print-table .table-drawing{max-width:118px;margin:10px auto 4px}
.print-table ol{display:grid;gap:3px;margin:4px 0 10px;padding:0 14px 0 34px;font-size:12px;line-height:1.35}
.print-table li::marker{color:var(--muted,#788072);font-size:10px;font-variant-numeric:tabular-nums}
.print-table li .dot{margin-right:6px;vertical-align:-1px}
.print-table li small{color:var(--muted,#788072);font-size:10px}
.print-table .seat-badge{margin-left:5px}
.print-kitchen{margin-top:auto;padding:8px 14px 10px;border-top:1px dashed var(--line,#e6dfcd);background:#fcfaf5}
.print-kitchen>p:first-child{margin:0 0 3px;font-size:8.5px;letter-spacing:1.4px;text-transform:uppercase;color:var(--gold,#b38750)}
.print-menu{margin:2px 0 0;color:var(--ink,#30483e);font-size:11px;line-height:1.35}
.print-unseated{margin-top:22px;padding:14px 16px;border:1px solid var(--line,#e6dfcd);border-radius:8px;break-inside:avoid}
.print-unseated h2{margin:0 0 8px;font-family:var(--serif);font-size:22px;font-weight:600}
.print-unseated h2 small{color:var(--muted,#788072);font-family:var(--sans);font-size:12px}
.print-unseated ul{list-style:none;display:flex;flex-wrap:wrap;gap:6px 18px;margin:0;padding:0;font-size:12px}.print-unseated li{display:inline-flex;align-items:center;gap:6px}
@media(max-width:900px){.print-tables{grid-template-columns:repeat(2,minmax(0,1fr))}.print-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.print-stats>div:nth-child(4){border-left:0}.print-stats>div:nth-child(n+4){border-top:1px solid var(--line,#e6dfcd)}}
@media(max-width:600px){.print-tables{grid-template-columns:minmax(0,1fr)}.seat-print{margin:0;padding:24px 16px 40px;border:0;border-radius:0;box-shadow:none}.print-head{flex-direction:column;align-items:flex-start}.print-head h1{font-size:36px}.print-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.print-stats>div{border-left:0!important;border-top:1px solid var(--line,#e6dfcd)}.print-stats>div:nth-child(-n+2){border-top:0}}
/* On paper: sizes in points, three tables to a row, nothing of the screen's frame. */
@media print{
  body:has(.seat-print){background:#fff}
  .print-button{display:none}
  .seat-print{max-width:none;margin:0;padding:0;border:0;border-radius:0;box-shadow:none}
  .print-sheet{display:table}.print-sheet>thead{display:table-header-group}.print-sheet>tfoot{display:table-footer-group}
  .print-sheet>tbody{display:table-row-group}.print-sheet>tbody>tr,.print-sheet>thead>tr,.print-sheet>tfoot>tr{display:table-row}
  .print-sheet>tbody>tr>td,.print-sheet>thead>tr>td,.print-sheet>tfoot>tr>td{display:table-cell;padding:0 13mm}.print-space{height:13mm}.print-space.foot{height:15mm}
  .print-head{padding-bottom:4mm}.print-head .eyebrow{font-size:7pt}.print-head h1{margin:2mm 0 1.5mm;font-size:30pt}.print-head p:not(.eyebrow){font-size:9pt}
  .print-stats{grid-template-columns:repeat(5,minmax(0,1fr));margin-top:4mm}.print-stats>div{padding:2.2mm 3.2mm;border-top:0!important}.print-stats>div+div{border-left:1px solid var(--line,#e6dfcd)!important}
  .print-stats dt{font-size:6pt}.print-stats dd{font-size:18pt}
  .seat-print .seating-legend{margin-top:3.5mm;font-size:7.5pt;gap:2mm 5mm}
  /* Tables side by side on lines, which a printed page never splits: a table moves whole to the next page. */
  .print-tables{display:block;margin-top:4mm;font-size:0;orphans:1;widows:1}
  .print-table{display:inline-block;width:calc((100% - 7mm) / 3);margin:0 3.5mm 3.5mm 0;vertical-align:top;border-radius:2.5mm;font-size:9pt}.print-table:nth-child(3n){margin-right:0}.print-table>header{padding:2.2mm 3.2mm 1.9mm}.print-table h2{font-size:14.5pt}.print-count{font-size:7pt;padding:.4mm 2mm}
  .print-table .table-drawing{max-width:26mm;margin:2.5mm auto 1mm}
  .print-table ol{gap:.5mm;margin:1mm 0 2.5mm;padding:0 3.2mm 0 8mm;font-size:8.5pt}.print-table li::marker{font-size:7pt}.print-table li small{font-size:7pt}
  .print-table .seat-badge{font-size:6pt;padding:.2mm 1.4mm}
  .print-kitchen{padding:2mm 3.2mm 2.4mm}.print-kitchen>p:first-child{font-size:6pt}.print-menu{font-size:7.5pt}
  .print-unseated{margin-top:5mm;padding:3mm 3.5mm}.print-unseated h2{font-size:14.5pt;margin-bottom:2mm}.print-unseated ul{font-size:8.5pt;gap:1.5mm 5mm}
}
/* "Scrie-ne pe WhatsApp" (Services/Support.cs): in the menu and under the sign-in, the error and the welcome. */
.support-link .mud-icon-root,.support-entry .mud-icon-root{color:#1f9d55}
.entry-page>.support-entry{display:inline-flex;align-items:center;gap:6px;margin-top:14px}
/* A host of several events: the one open, and the others one click away (AdminFrame). */
.event-switch{margin:10px 0 14px;border:1px solid var(--line,#e5ddd0);border-radius:10px;background:var(--paper,#fdfbf7)}
.event-switch summary{display:grid;gap:2px;padding:10px 34px 10px 12px;list-style:none;cursor:pointer;position:relative}
.event-switch summary::-webkit-details-marker{display:none}
.event-switch summary:after{content:"";position:absolute;right:13px;top:50%;width:7px;height:7px;border-right:1.5px solid var(--muted,#6b6862);border-bottom:1.5px solid var(--muted,#6b6862);transform:translateY(-70%) rotate(45deg);transition:transform .2s}
.event-switch[open] summary:after{transform:translateY(-30%) rotate(-135deg)}
.event-switch summary span{font-size:9px;letter-spacing:1.2px;text-transform:uppercase;color:var(--muted,#6b6862)}
.event-switch summary strong{font-family:var(--serif);font-size:19px;font-weight:500;line-height:1.2;color:var(--ink,#33444c);overflow-wrap:anywhere}
.event-switch>p{margin:0;padding:0 12px 6px;font-size:10px;color:var(--muted,#6b6862)}
.event-switch form{margin:0}
.event-switch button{display:grid;grid-template-columns:minmax(0,1fr);justify-items:start;gap:2px;width:100%;padding:9px 12px;border:0;border-top:1px solid var(--line,#e5ddd0);background:transparent;font:inherit;text-align:left;cursor:pointer}
.event-switch button:hover,.event-switch button:focus-visible{background:var(--tint,var(--accent-tint,var(--mist,#e8eef0)))}
.event-switch button strong{font-size:12px;font-weight:600;color:var(--ink,#33444c)}
.event-switch button span{font-size:10px;color:var(--muted,#6b6862)}
.event-switch button:last-child{border-radius:0 0 9px 9px}
/* The seating planner, the front page's second section: what it does, beside a picture of it drawn with the app's own
   tables (Layout/TableDrawing.razor) and side colours. */
.home-spotlight{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:radial-gradient(ellipse at 88% 0%,color-mix(in srgb,var(--home-tint) 95%,transparent),transparent 62%),linear-gradient(180deg,color-mix(in srgb,var(--home-tint) 45%,var(--paper)),var(--paper))}
.home-seating{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:56px;align-items:center}
.home-seating-text>.eyebrow{display:inline-block;padding:6px 12px;border:1px solid var(--line);border-radius:999px;background:var(--paper)}
.home-seating h2{margin-top:16px;font-family:var(--serif);font-weight:500;font-size:clamp(34px,4.2vw,52px);line-height:1.08;text-wrap:balance}
.home-seating-lead{max-width:560px;margin-top:18px!important;color:var(--muted);font-size:17px;line-height:1.65;text-wrap:pretty}
.home-seating-points{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:20px 26px;margin:30px 0 0;padding:0}
.home-seating-points li{display:flex;align-items:flex-start;gap:12px}
.home-seating-points .home-icon{flex:none;width:38px;height:38px;margin:0;background:var(--paper);box-shadow:0 0 0 1px var(--line)}
.home-seating-points h3{font-family:var(--sans);font-size:15px;font-weight:600;line-height:1.35}
.home-seating-points p{margin-top:4px!important;color:var(--muted);font-size:13.5px;line-height:1.55}
.home-seating .home-actions{margin-top:30px}
.home-seating-note{margin-top:14px!important;color:var(--muted);font-size:13px}
.home-seating-demo{position:relative;padding:0 0 4px}
.sd-window{position:relative;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:0 30px 70px color-mix(in srgb,var(--ink) 16%,transparent),0 6px 18px color-mix(in srgb,var(--ink) 6%,transparent)}
.sd-bar{display:flex;align-items:center;gap:6px;padding:10px 12px 10px 14px;border-bottom:1px solid var(--line);border-radius:16px 16px 0 0;background:var(--cream)}
.sd-bar i{width:9px;height:9px;border-radius:50%;background:#ddd6c6}
.sd-bar span{margin-left:10px;font-family:var(--serif);font-size:17px;color:var(--ink)}
.sd-bar b{margin-left:auto;padding:5px 10px;border-radius:6px;background:var(--accent);color:var(--paper);font-size:11px;font-weight:600;white-space:nowrap}
.sd-body{display:grid;grid-template-columns:148px minmax(0,1fr);gap:12px;padding:14px}
.sd-pool{display:grid;align-content:start;gap:8px;padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--paper)}
.sd-pool p{display:flex;align-items:baseline;justify-content:space-between;gap:6px;font-family:var(--serif);font-size:16px;line-height:1.2}
.sd-pool p span{padding:1px 7px;border-radius:999px;background:var(--home-tint);color:var(--accent);font-family:var(--sans);font-size:10px;font-weight:600}
.sd-family{display:flex;align-items:center;gap:7px;padding:7px 8px;border:1px solid var(--line);border-radius:8px;background:#fff;font-size:11px}
.sd-family strong{flex:1;min-width:0;overflow:hidden;font-weight:600;text-overflow:ellipsis;white-space:nowrap}
.sd-family span{color:var(--muted);font-size:10px}
.sd-family.ghost{height:31px;border-style:dashed;background:transparent}
.sd-tables{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.sd-table{padding:8px 8px 2px;border:1px solid var(--line);border-radius:10px;background:#fff}
.sd-table p{display:flex;align-items:baseline;justify-content:space-between;gap:6px}
.sd-table strong{overflow:hidden;font-family:var(--serif);font-size:15px;font-weight:500;text-overflow:ellipsis;white-space:nowrap}
.sd-table small{flex:none;color:var(--muted);font-size:9.5px}
.sd-table .table-drawing{max-width:118px;margin:2px auto 0}
.sd-table.target{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 20%,transparent)}
.sd-drag{position:absolute;top:27%;right:4%;display:flex;align-items:center;gap:7px;padding:8px 10px;border:1px solid var(--accent);border-radius:9px;background:#fff;font-size:11.5px;box-shadow:0 18px 34px color-mix(in srgb,var(--ink) 24%,transparent);transform:rotate(-4deg)}
.sd-drag strong{font-weight:600}.sd-drag span{color:var(--muted);font-size:10px}
.sd-hand{position:absolute;right:-9px;bottom:-17px;width:17px;height:23px;fill:#fff;stroke:var(--ink);stroke-width:1.3;stroke-linejoin:round;filter:drop-shadow(0 2px 2px #0003)}
.sd-toast{position:absolute;left:-18px;bottom:-24px;display:flex;align-items:center;gap:8px;max-width:80%;padding:10px 14px;border:1px solid var(--line);border-left:4px solid #3f6b45;border-radius:10px;background:#fff;font-size:12px;line-height:1.4;box-shadow:0 14px 30px color-mix(in srgb,var(--ink) 14%,transparent)}
.sd-toast span{color:#3f6b45;font-weight:700}
.sd-legend{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:6px 18px;margin:44px 0 0;padding:0;color:var(--muted);font-size:12px}
.sd-legend li{display:inline-flex;align-items:center;gap:7px}
@media (max-width:980px){.home-seating{grid-template-columns:minmax(0,1fr);gap:40px}.home-seating-demo{max-width:640px;width:100%;justify-self:center}}
@media (max-width:600px){.home-seating-points{grid-template-columns:minmax(0,1fr)}.sd-body{grid-template-columns:minmax(0,1fr);padding:10px}.sd-pool{display:none}.sd-bar b{display:none}.sd-drag{top:18%;right:3%}.sd-toast{position:static;max-width:none;margin:0 10px 10px;box-shadow:none}.sd-table .table-drawing{max-width:100px}}
/* The menu's signs in a column of their own, so its words start in line; at its bottom, one link under the other. */
.nav-icon{display:inline-block;width:18px;margin-right:10px;text-align:center}
.sidebar-links{display:grid;gap:2px;margin-top:12px}
.sidebar-links form{margin:0}
.sidebar-links a,.sidebar-links button{display:flex;align-items:center;justify-content:flex-start;gap:9px;width:100%;min-height:36px;padding:0;border:0;background:transparent;color:var(--ink,#33444c);font:inherit;font-family:var(--sans);font-size:12px;font-style:normal;text-align:left;text-decoration:none;cursor:pointer}
.sidebar-links a:hover,.sidebar-links button:hover{color:var(--accent,#4a6676);text-decoration:underline;text-underline-offset:4px}
.sidebar-links .mud-icon-root{flex:none;font-size:18px;color:var(--muted,#6b6862)}
.sidebar-links .support-link .mud-icon-root{color:#1f9d55}
.sidebar-links .logout{color:var(--muted,#6b6862)}
.entry-page>.home-back{margin-top:22px;font-size:12px;color:var(--muted,#6b6862)}
@media(max-width:900px){.nav-icon{width:22px;margin-right:12px}.sidebar-links a,.sidebar-links button{min-height:46px;font-size:14px}.sidebar-links .mud-icon-root{font-size:20px}}
/* "Schimbă răspunsul": the hosts note a guest's answer with the guest's own yes/no buttons, in the event's colours; the
   reply pill in the list opens it too. */
.answer-all{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 4px}
.answer-panel .guest-answer{padding:16px 0}
.answer-panel .reply-options input:checked+span{background:var(--tint,var(--accent-tint,var(--mist,#e8eef0)));border-color:var(--accent,var(--green));color:var(--accent,var(--green))}
.answer-counts{margin-top:20px}
button.status-pill{border:0;cursor:pointer}
button.status-pill:hover{box-shadow:inset 0 0 0 1px currentColor}
button.status-pill:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
@media(max-width:700px){.answer-counts{grid-template-columns:1fr}}
@media(max-width:600px){.stock-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.extra-open{display:block;width:100%;margin-top:10px;padding:7px 10px;border:1px dashed var(--line-strong,#d6cec2);border-radius:8px;background:none;color:var(--muted,#6b6862);font:inherit;font-size:11px;cursor:pointer}.extra-open:hover:not(:disabled){border-color:var(--accent,#4a6676);color:var(--accent,#4a6676)}.extra-form{display:grid;gap:7px;margin-top:10px;padding-top:10px;border-top:1px solid var(--line,#e5ddd0)}.extra-form label{font-size:11px;color:var(--muted,#6b6862)}.extra-input{display:flex;gap:6px}.extra-input input{flex:1;min-width:0;padding:7px 9px;border:1px solid var(--line-strong,#d6cec2);border-radius:8px;background:#fff;font:inherit;font-size:12px;color:var(--ink,#33444c)}.extra-input input:focus{outline:2px solid var(--accent,#4a6676);outline-offset:1px}.extra-input button{flex:none;padding:0 12px;border:0;border-radius:8px;background:var(--accent,#4a6676);color:#fff;font:inherit;font-size:11px;font-weight:600;cursor:pointer}.extra-input button:disabled{opacity:.45;cursor:default}.extra-chips{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.extra-chips button{padding:4px 10px;border:1px solid var(--line-strong,#d6cec2);border-radius:14px;background:#fff;color:var(--ink,#33444c);font:inherit;font-size:11px;cursor:pointer}.extra-chips .extra-done{margin-left:auto;border-color:transparent;background:none;color:var(--muted,#6b6862)}
@media(pointer:coarse){.extra-open,.extra-input input,.extra-input button,.extra-chips button{min-height:44px}}
/* The cookie notice (App.razor, js/cookies.js): a small card at the bottom, under the dialogs, gone once closed. */
.cookie-note{position:fixed;left:12px;right:12px;bottom:max(12px,env(safe-area-inset-bottom));z-index:1000;max-width:560px;margin:0 auto;display:flex;gap:12px;align-items:center;padding:12px 14px;background:#fff;border:1px solid var(--line,#e5ddd0);border-radius:12px;box-shadow:0 8px 30px #1d262b29;font-size:13px;line-height:1.5;color:var(--ink,#33444c)}
.cookie-note[hidden]{display:none}.cookie-note p{margin:0;flex:1}.cookie-note a{color:var(--green,#31574b)}
.cookie-ok{flex:none;min-height:40px;padding:8px 14px;border:0;border-radius:8px;background:var(--green,#31574b);color:#fff;font:600 13px/1.2 var(--sans);cursor:pointer}
@media print{.cookie-note{display:none!important}}
