:root{--brand: #0f766e;--brand-dark: #115e59;--brand-soft: #e6f4f2;--ink: #0b1220;--bg: #fafaf9;--card: #ffffff;--text: #1e293b;--muted: #64748b;--border: #e7e5e4;--danger: #b91c1c;--warn: #b45309;--ok: #15803d;--radius: 16px;--radius-sm: 10px;--shadow: 0 1px 2px rgba(15, 23, 42, .04), 0 8px 24px rgba(15, 23, 42, .06);--wash: radial-gradient(1200px 500px at 20% -10%, #eefaf3 0%, rgba(238, 250, 243, 0) 60%), radial-gradient(900px 400px at 90% 0%, #fdf9ec 0%, rgba(253, 249, 236, 0) 55%)}*{box-sizing:border-box}body{margin:0;font-family:Segoe UI Variable Text,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background-color:var(--bg);background-image:var(--wash);background-attachment:fixed;color:var(--text);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}h1{font-size:30px;font-weight:800;letter-spacing:-.02em;color:var(--ink);margin:10px 0 18px}main>div>h1:before,main>h1:before{content:"";display:block;width:34px;height:5px;border-radius:999px;background:linear-gradient(90deg,var(--brand),#f59e0b);margin-bottom:10px}h2{font-size:17px;font-weight:700;letter-spacing:-.01em;color:var(--ink);margin:22px 0 10px}h3{font-size:15px;font-weight:700;color:var(--ink);margin:16px 0 6px}.topbar{background:linear-gradient(90deg,#0b1220,#101d33 60%,#0e2b2a);border-bottom:1px solid rgba(255,255,255,.06);color:#fff;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px 16px;padding:9px 20px;min-height:60px;position:sticky;top:0;z-index:10}.topbar-left{display:flex;align-items:center;gap:8px 16px;flex-wrap:wrap;min-width:0}.topbar-right{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.nav-toggle{display:none;align-items:center;justify-content:center;background:#ffffff1a;border:1px solid rgba(255,255,255,.22);color:#fff;border-radius:8px;padding:5px 7px;cursor:pointer}.topbar .logo{color:#fff}.logo{font-weight:800;font-size:17px;letter-spacing:-.02em;color:var(--ink);display:inline-flex;align-items:center;gap:8px;white-space:nowrap}.logo-dot{width:10px;height:10px;border-radius:999px;background:#2dd4bf;display:inline-block;box-shadow:0 0 10px #2dd4bfb3}.topbar nav{display:flex;gap:2px;flex-wrap:wrap}.topbar nav a{color:#ffffffa6;padding:7px 12px;border-radius:999px;font-size:14px;font-weight:600}.topbar nav a.active{background:#2dd4bf29;color:#5eead4;text-decoration:none}.topbar nav a:hover{color:#fff;text-decoration:none}.topbar .who{font-size:13px;color:#ffffff8c}.topbar button{background:#ffffff1a;border:1px solid rgba(255,255,255,.22);color:#fff;border-radius:999px;padding:7px 16px;cursor:pointer;font-size:13px;font-weight:600}.topbar button:hover{background:#ffffff2e}.lang-switch{background:transparent;border:1px solid var(--border);color:var(--ink);border-radius:999px;padding:5px 8px;font-size:13px;font-weight:600}.topbar .lang-switch{border-color:#ffffff38;color:#fff;background:transparent}.topbar .lang-switch option{color:var(--ink)}.actas-banner{background:#fef3c7;color:#92400e;padding:9px 20px;font-size:14px;display:flex;gap:12px;align-items:center}.actas-banner button{border:1px solid #d97706;background:transparent;color:#92400e;border-radius:999px;padding:3px 12px;cursor:pointer;font-weight:600}main{max-width:1000px;margin:0 auto;padding:26px 20px 70px}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:22px;margin-bottom:18px;box-shadow:var(--shadow)}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}table{width:100%;border-collapse:collapse;font-size:14px}th{text-align:left;color:var(--muted);font-weight:600;font-size:11.5px;text-transform:uppercase;letter-spacing:.06em;padding:8px 10px;border-bottom:1px solid var(--border)}td{padding:10px;border-bottom:1px solid #f1f0ef;vertical-align:top}tr:last-child td{border-bottom:none}tbody tr:hover td{background:#fafaf8}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--brand);color:#fff;border:1px solid var(--brand);border-radius:999px;padding:10px 20px;font-size:14px;font-weight:700;cursor:pointer;transition:background .15s ease}.btn:hover{background:var(--brand-dark);text-decoration:none}.btn:disabled{opacity:.5;cursor:default}.btn.secondary{background:#fff;color:var(--ink);border:1px solid var(--border)}.btn.secondary:hover{background:#f5f5f4;border-color:#d6d3d1}.btn.danger{background:#fff;color:var(--danger);border-color:#fecaca}.btn.danger:hover{background:#fef2f2}.btn.small{padding:5px 13px;font-size:13px;font-weight:600}.btn.big{padding:13px 28px;font-size:15px}.badge{display:inline-block;border-radius:999px;padding:2px 10px;font-size:12px;font-weight:600;white-space:nowrap}.badge.in{background:#dcfce7;color:var(--ok)}.badge.out{background:#e0e7ff;color:#3730a3}.badge.gray{background:#f1f5f9;color:var(--muted)}.badge.warn{background:#fef3c7;color:var(--warn)}.badge.danger{background:#fee2e2;color:var(--danger)}.field{margin-bottom:14px}.field label{display:block;font-size:13px;font-weight:600;color:var(--ink);margin-bottom:5px}input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=color]),select,textarea{padding:9px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:14px;font-family:inherit;background:#fff;color:var(--text);min-height:40px}input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=color]):focus,select:focus,textarea:focus{outline:2px solid var(--brand);outline-offset:-1px}.field input,.field select,.field textarea{width:100%;padding:9px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:14px;font-family:inherit;background:#fff;color:var(--text)}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--brand);outline-offset:-1px}.field .muted{font-size:12.5px;margin:5px 0 0}.form-row{display:flex;gap:14px;flex-wrap:wrap}.form-row .field{flex:1;min-width:180px}.range-picker .field{max-width:180px}.error-box{background:#fee2e2;color:var(--danger);border-radius:var(--radius-sm);padding:10px 14px;margin:10px 0;font-size:14px}.info-box{background:var(--brand-soft);color:var(--brand-dark);border-radius:var(--radius-sm);padding:10px 14px;margin:10px 0;font-size:14px}.toast{position:fixed;left:50%;transform:translate(-50%);bottom:26px;z-index:100;min-width:300px;max-width:min(560px,92vw);box-shadow:0 12px 32px #0f172a2e;border-radius:12px;text-align:center;pointer-events:none}@keyframes toastIn{0%{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translate(-50%)}}.toast.toast-enter{animation:toastIn .22s cubic-bezier(.16,1,.3,1)}@keyframes contentIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: no-preference){main>div{animation:contentIn .2s ease-out}.result-icon{animation:pop .32s cubic-bezier(.16,1,.3,1)}}@keyframes pop{0%{transform:scale(.6);opacity:0}60%{transform:scale(1.08)}to{transform:scale(1);opacity:1}}.stat-tile{transition:transform .15s ease,box-shadow .15s ease}.stat-tile:hover{transform:translateY(-1px);box-shadow:0 6px 20px #0f172a1a}.btn:focus-visible,.lang-switch:focus-visible,.nav-card:focus-visible,.type-toggle button:focus-visible,.topbar nav a:focus-visible,.topbar button:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.topbar nav a:focus-visible,.topbar button:focus-visible{outline-color:#5eead4}.muted{color:var(--muted)}.mono{font-family:ui-monospace,Cascadia Mono,monospace;font-size:13px}.voided{text-decoration:line-through;opacity:.55}.stamp-note{color:var(--muted);font-size:12px;margin-top:3px;max-width:34ch;white-space:normal;line-height:1.35}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:14px;margin-bottom:18px}.stat-tile{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow)}.stat-tile.accent{border-color:#fcd34d;background:#fffbeb}.stat-tile{border-top:3px solid var(--brand-soft)}.stat-value{font-size:26px;font-weight:800;letter-spacing:-.02em;color:var(--brand-dark)}.stat-label{font-size:12.5px;color:var(--muted);font-weight:600;margin-top:2px}.nav-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}.nav-card{display:flex;gap:14px;align-items:flex-start;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow);color:var(--ink);transition:border-color .15s ease,transform .15s ease}.nav-card:hover{text-decoration:none;border-color:var(--brand);transform:translateY(-1px)}.nav-card-icon{color:var(--brand);background:var(--brand-soft);border-radius:12px;padding:9px;display:inline-flex}.nav-card strong{display:block;margin-bottom:2px}.nav-card-desc{display:block;font-size:13px;font-weight:400}.confirm-wrap{max-width:440px;margin:28px auto;text-align:center}.confirm-tag-name{font-size:26px;font-weight:700;color:var(--text);line-height:1.2;margin-bottom:4px}.confirm-tag-time{font-size:14px;color:var(--muted);margin-bottom:20px}.result-icon{margin:20px 0 8px;display:flex;justify-content:center}.result-icon.ok{color:var(--ok)}.result-icon.out{color:#3730a3}.result-icon.warn{color:var(--warn)}.result-icon.muted{color:var(--muted)}.type-toggle{display:flex;gap:12px;margin:20px 0}.type-toggle button{flex:1;padding:26px 0;font-size:22px;font-weight:800;border-radius:var(--radius);border:2px solid var(--border);background:#fff;color:var(--muted);cursor:pointer}.type-toggle button.selected.in{border-color:var(--ok);background:#dcfce7;color:var(--ok)}.type-toggle button.selected.out{border-color:#3730a3;background:#e0e7ff;color:#3730a3}.confirm-big{width:100%;padding:15px 0;font-size:16px}.home-status{text-align:center;padding:34px 16px}.home-status .state{font-size:28px;font-weight:800;letter-spacing:-.02em;color:var(--ink);margin:8px 0}.scan-hint{font-size:15px;color:var(--muted);max-width:460px;margin:12px auto}.landing{min-height:100vh;display:flex;flex-direction:column;background:var(--bg)}.landing-nav{display:flex;align-items:center;gap:14px;padding:16px 24px;max-width:1100px;margin:0 auto;width:100%}.landing-nav .lang-switch{padding:6px 14px}.landing-main{flex:1;width:100%;max-width:1100px;margin:0 auto;padding:0 24px}.hero{display:flex;gap:40px;align-items:center;padding:60px 0 50px;background:var(--wash);border-radius:24px;flex-wrap:wrap}.hero-copy{flex:1.2;min-width:300px;padding:0 12px 0 24px}.hero-copy h1{font-size:clamp(34px,5vw,52px);line-height:1.08;margin:0 0 18px}.hero-copy p{font-size:17px;color:var(--muted);max-width:480px}.hero-actions{display:flex;align-items:center;gap:18px;margin-top:26px;flex-wrap:wrap}.hero-forgot{font-size:14px;font-weight:600}.hero-visual{flex:1;min-width:280px;position:relative;min-height:300px;display:flex;align-items:center;justify-content:center}.float-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 16px 40px #0f172a1f;padding:18px 20px}.fc-main{position:relative;z-index:2;width:210px;margin-right:130px}.fc-icon{color:var(--brand)}.fc-title{font-weight:800;font-size:17px;color:var(--ink);margin-top:8px}.fc-sub{color:var(--muted);font-size:13px;margin-bottom:12px}.fc-pill{display:inline-flex;align-items:center;gap:6px;background:#dcfce7;color:var(--ok);font-weight:700;font-size:13px;padding:5px 12px;border-radius:999px}.fc-side{position:absolute;right:2%;bottom:-20px;z-index:1;width:180px}.fc-label{color:var(--muted);font-size:12.5px;font-weight:600}.fc-big{font-size:24px;font-weight:800;color:var(--ink);letter-spacing:-.02em}.fc-bars{display:flex;gap:6px;align-items:flex-end;height:46px;margin-top:10px}.fc-bars span{flex:1;background:var(--brand-soft);border-radius:4px 4px 0 0}.fc-bars span:nth-child(4){background:var(--brand)}.features{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;padding:44px 0 20px}.feature-card{margin-bottom:0}.feature-icon{color:var(--brand);background:var(--brand-soft);border-radius:12px;padding:10px;display:inline-flex}.landing-footer{text-align:center;color:var(--muted);font-size:13.5px;padding:30px 0 36px}@media (max-width: 760px){.nav-toggle{display:inline-flex}.topbar-left{gap:10px;flex:1;min-width:0}.topbar nav{display:none;width:100%;order:3;flex-direction:column;align-items:stretch;gap:2px;margin-top:4px}.topbar nav.open{display:flex}.topbar nav a{padding:10px 12px;border-radius:8px}.topbar .who{font-size:12px}}@media (max-width: 640px){.topbar{padding:8px 12px}main{padding:16px 12px 60px}table{font-size:13px}td,th{padding:8px 6px}.hero{padding:34px 0 44px}.hero-copy{padding:0 16px}.hero-visual{min-height:300px;width:100%;margin-top:10px}.fc-main{width:190px;margin-right:150px}.fc-side{width:170px;right:0;bottom:-34px}}.page-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.section-title{margin:22px 0 10px}.action-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:10px 0 16px}.inline-form{display:inline-flex;gap:8px;align-items:center;flex-wrap:wrap}.inline-form input,.inline-form select{min-width:0}.sub-form{border-top:1px solid var(--border);margin-top:14px;padding-top:14px}.small{font-size:13px}.num{text-align:right;font-variant-numeric:tabular-nums}.break{word-break:break-all}.wide{width:100%}.muted-row td{color:var(--muted)}.struck{opacity:.6;text-decoration:line-through}.link-btn{background:none;border:0;padding:0;margin:0 0 0 6px;color:var(--brand);font:inherit;font-weight:600;cursor:pointer;text-align:left}.link-btn:first-child{margin-left:0}.link-btn:hover{text-decoration:underline}.event-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}.event-card{display:block;color:inherit;transition:transform .12s ease,box-shadow .12s ease}.event-card:hover{text-decoration:none;transform:translateY(-2px)}.event-card-name{font-size:18px;font-weight:750;color:var(--ink);margin-bottom:4px}.event-card-meta{margin-top:10px}.event-head h1{margin-bottom:4px}.event-head{margin-bottom:14px}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:16px;overflow-x:auto;scrollbar-width:none}.tabs a{padding:9px 14px;border-bottom:2px solid transparent;color:var(--muted);font-weight:600;white-space:nowrap}.tabs a:hover{color:var(--ink);text-decoration:none}.tabs a.active{color:var(--brand);border-bottom-color:var(--brand)}.meter{height:6px;background:#f1f5f9;border-radius:999px;overflow:hidden;margin-top:8px}.meter span{display:block;height:100%;background:var(--brand);border-radius:999px;transition:width .3s ease}.two-col{display:grid;grid-template-columns:3fr 2fr;gap:16px;margin-top:16px}.feed{list-style:none;padding:0;margin:0}.feed li{padding:7px 0;border-bottom:1px solid #f5f5f4}.feed li:last-child{border-bottom:0}.chip-list{list-style:none;padding:0;margin:0 0 12px;display:flex;flex-wrap:wrap;gap:8px}.chip{display:inline-flex;align-items:center;gap:4px;padding:5px 12px;border-radius:999px;background:var(--brand-soft);color:var(--brand-dark);font-weight:600;border:0;font:inherit;font-size:13.5px;cursor:default}button.chip{cursor:pointer}.chip-btn{border:0;background:transparent;color:var(--brand-dark);cursor:pointer;font-size:14px;padding:0 3px;line-height:1}.qty-grid{display:flex;flex-wrap:wrap;gap:10px;margin:10px 0}.qty-field{display:flex;flex-direction:column;gap:4px;font-size:13px;font-weight:600}.qty-field input{width:110px}.danger-zone{border-color:#fecaca}.list-head{display:flex;gap:12px;align-items:center;justify-content:space-between;margin-bottom:10px;flex-wrap:wrap}.search{max-width:320px}.detail-row td{background:#fafaf9}.detail{display:flex;flex-direction:column;gap:10px;padding:6px 0}.ticket-detail{display:flex;gap:14px;align-items:center}.qr-small{width:110px;height:110px;border-radius:8px;border:1px solid var(--border);background:#fff}.allow-form{display:flex;flex-direction:column;align-items:flex-start}.issue-box{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.row-actions{white-space:nowrap;text-align:right}.join-card{display:flex;gap:24px;align-items:center;justify-content:space-between;flex-wrap:wrap}.join-card>div{flex:1 1 300px}.qr-big{width:240px;height:240px;border-radius:12px;border:1px solid var(--border);background:#fff}.steps{padding-left:20px;margin:6px 0 10px}.steps li{margin:3px 0}.check-grid{border:0;padding:0;margin:10px 0;display:flex;flex-wrap:wrap;gap:8px 18px}.check-grid legend{font-weight:600;font-size:13px;margin-bottom:6px;padding:0}.secret-box .mono{margin:8px 0;font-size:14px}.ticket-shell,.serve-shell{max-width:520px;margin:0 auto;padding:18px 16px 40px;min-height:100vh}.ticket-card{background:var(--card);border-radius:22px;box-shadow:var(--shadow);padding:26px 22px;text-align:center;border:1px solid var(--border)}.ticket-card h1:before{display:none}.ticket-card form{text-align:left}.ticket-event{font-size:22px;font-weight:800;color:var(--ink);letter-spacing:-.01em}.ticket-guest{font-size:20px;font-weight:700;margin:18px 0 6px}.ticket-qr{width:min(280px,78vw);height:auto;aspect-ratio:1;margin:6px auto;display:block;image-rendering:pixelated;background:#fff}.ticket-items{list-style:none;padding:0;margin:16px 0;text-align:left}.ticket-items li{display:flex;justify-content:space-between;padding:10px 2px;border-bottom:1px dashed var(--border);font-weight:600}.ticket-foot{text-align:center;margin-top:14px}.serve-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px;flex-wrap:wrap}.serve-guest{background:var(--card);border-radius:18px;padding:16px 18px;border:1px solid var(--border);box-shadow:var(--shadow);margin-bottom:12px}.serve-guest.blocked{border-color:#fecaca;background:#fff7f7}.serve-name{font-size:26px;font-weight:800;color:var(--ink);line-height:1.2}.serve-note{margin-top:8px;background:#fffbeb;color:#92400e;border-radius:10px;padding:6px 10px;font-weight:600}.serve-rows{display:flex;flex-direction:column;gap:10px;margin-bottom:12px}.serve-row{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--card);border:1px solid var(--border);border-radius:18px;padding:14px 16px}.serve-row.empty{background:#f8fafc}.serve-item-name{font-size:19px;font-weight:750;color:var(--ink)}.serve-left{color:var(--muted)}.serve-left strong{font-size:22px;color:var(--ink)}.serve-buttons{display:flex;gap:8px;align-items:center}.serve-buttons .btn.big{min-width:112px;min-height:52px;font-size:17px}.serve-buttons .btn.secondary{min-height:52px;min-width:52px;font-size:16px;font-weight:700}.pips{display:flex;gap:4px;margin-top:6px;flex-wrap:wrap}.pip{width:12px;height:12px;border-radius:999px;background:var(--brand)}.pip.used{background:#e2e8f0}.flash{border-radius:14px;padding:12px 14px;font-weight:700;margin-bottom:12px;text-align:center;animation:flash-in .2s ease}.flash.ok{background:#dcfce7;color:var(--ok)}.flash.err{background:#fee2e2;color:var(--danger)}@keyframes flash-in{0%{transform:scale(.97);opacity:.4}to{transform:none;opacity:1}}.serve-history{margin-top:14px}.undo-form{display:flex;flex-direction:column;gap:8px;margin-top:8px}.quick-reasons{display:flex;flex-wrap:wrap;gap:6px}.scan-title{margin-top:4px}.scan-title:before{display:none}.scan-frame{position:relative;width:100%;aspect-ratio:1;border-radius:22px;overflow:hidden;background:#0b1220;margin-bottom:12px}.scan-frame video{width:100%;height:100%;object-fit:cover;display:block}.scan-reticle{position:absolute;top:18%;right:18%;bottom:18%;left:18%;border:3px solid rgba(255,255,255,.9);border-radius:18px;box-shadow:0 0 0 9999px #0b122059}@media (max-width: 760px){.two-col{grid-template-columns:1fr}.guest-table td:nth-child(3),.guest-table th:nth-child(3){display:none}.row-actions{white-space:normal}}.brand-header{margin:-26px -22px 16px;display:flex;flex-direction:column;align-items:center}.brand-header:not(.has-cover){margin:0 0 12px}.brand-cover{width:100%;max-height:180px;object-fit:cover;display:block;border-radius:22px 22px 0 0}.brand-logo{max-height:64px;max-width:200px;object-fit:contain}.brand-header.has-cover .brand-logo{margin-top:-32px;background:#fff;border-radius:14px;padding:6px;box-shadow:var(--shadow);max-height:64px}.serve-logo{max-height:34px;max-width:120px;object-fit:contain}.invite-qr{display:flex;flex-direction:column;align-items:center;gap:6px}.color-row,.logo-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.color-row input[type=color]{width:48px;height:36px;border:1px solid var(--border);border-radius:8px;padding:2px;background:#fff}.logo-preview{max-height:48px;max-width:160px;object-fit:contain;border:1px solid var(--border);border-radius:8px;padding:4px;background:#fff}.cover-preview{width:100%;max-height:160px;object-fit:cover;border-radius:12px;margin-bottom:10px}.join-card .inline-form{width:100%}.join-card .inline-form input{flex:1 1 240px;min-width:0}input[type=file]{font:inherit;font-size:14px;color:var(--muted);max-width:100%}input[type=file]::file-selector-button{font:inherit;font-weight:600;font-size:13.5px;color:var(--ink);background:#fff;border:1px solid var(--border);border-radius:999px;padding:7px 16px;margin-right:12px;cursor:pointer}input[type=file]::file-selector-button:hover{background:#f5f5f4}.field input[type=file]{border:0;padding:0;min-height:0}
