:root{--ink: #14291f;--ink-soft: #52665b;--ink-faint: #8a9b91;--bg: #f4f6f0;--card: #ffffff;--line: #e3e9df;--green: #1f7a56;--green-deep: #123d2d;--green-soft: #e3f2ea;--lime: #d7f35a;--lime-deep: #b8d92f;--orange: #e8772e;--lilac: #6c5ce7;--blue: #0984e3;--pink: #d63384;--red: #d64545;--radius: 18px;--radius-sm: 12px;--shadow: 0 1px 2px rgba(20, 41, 31, .05), 0 8px 24px rgba(20, 41, 31, .07);--shadow-lift: 0 2px 4px rgba(20, 41, 31, .06), 0 16px 36px rgba(20, 41, 31, .13);--sidebar: 252px;font-family:Segoe UI,system-ui,-apple-system,Helvetica Neue,Arial,sans-serif;color:var(--ink)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);line-height:1.45;-webkit-font-smoothing:antialiased}h1,h2,h3,p{margin:0}h1{font-size:clamp(1.6rem,2.6vw,2.2rem);letter-spacing:-.02em;line-height:1.15}h2{font-size:1.2rem;letter-spacing:-.01em}h3{font-size:1.02rem}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}:focus-visible{outline:3px solid var(--blue);outline-offset:2px;border-radius:6px}small{color:var(--ink-faint);font-size:.8rem}code{background:var(--green-soft);padding:1px 6px;border-radius:6px;font-size:.9em}.muted{color:var(--ink-soft)}.small-print{font-size:.82rem;margin-top:10px}.right{text-align:right}.spacer{flex:1}.skip-link{position:absolute;left:-999px;top:8px;background:var(--ink);color:#fff;padding:8px 14px;border-radius:10px;z-index:100}.skip-link:focus{left:8px}.boot{min-height:100vh;display:grid;place-items:center}.spinner-wrap{display:flex;align-items:center;justify-content:center;gap:12px;padding:40px;color:var(--ink-soft)}.spinner{width:22px;height:22px;border-radius:50%;border:3px solid var(--line);border-top-color:var(--green);animation:spin .8s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes pop{0%{transform:scale(.6);opacity:0}70%{transform:scale(1.08)}to{transform:scale(1);opacity:1}}.app-shell{display:grid;grid-template-columns:var(--sidebar) 1fr;min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;padding:22px 16px;display:flex;flex-direction:column;gap:6px;background:var(--green-deep);color:#e8f3ec}.brand{display:flex;align-items:center;gap:10px;font-size:1.15rem;padding:4px 8px 18px;font-weight:500}.brand b{color:var(--lime);font-weight:700}.brand-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:var(--lime);color:var(--green-deep);transition:transform .4s}.brand:hover .brand-mark{transform:rotate(18deg) scale(1.08)}.brand-mark.big{width:56px;height:56px;border-radius:18px}.sidebar nav{display:flex;flex-direction:column;gap:4px;flex:1}.nav-item{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:14px;border:0;background:transparent;color:#c9dccf;text-align:left;transition:background .2s,color .2s,transform .15s}.nav-item:hover{background:#ffffff14;color:#fff;transform:translate(3px)}.nav-item.active{background:var(--lime);color:var(--green-deep);font-weight:600}.nav-item.signout{color:#9db8a8}.profile-card{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid rgba(255,255,255,.12);background:#ffffff0d;border-radius:16px;color:#fff;text-align:left;margin-bottom:4px}.profile-card small{display:block;color:#9db8a8}.avatar{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--lime);color:var(--green-deep);font-weight:700;font-size:.85rem;border:0;flex:none}.content-column{min-width:0;display:flex;flex-direction:column}.topbar{display:none}.screen{padding:32px clamp(18px,3vw,44px) 60px;max-width:1280px;width:100%;margin:0 auto;animation:rise .35s ease both}.banner{display:flex;align-items:center;gap:10px;padding:12px 18px;background:#fff7d6;border-bottom:1px solid #efe2a0;font-size:.92rem}.screen .banner{border-radius:14px;border:1px solid #efe2a0;margin-bottom:16px}.banner-fun{background:linear-gradient(90deg,#eaf8c4,#e1f4ee);border-color:#cde79a}.bottom-nav{display:none}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:22px;flex-wrap:wrap}.eyebrow{display:block;font-size:.72rem;font-weight:700;letter-spacing:.12em;color:var(--green);margin-bottom:6px}.eyebrow.light{color:var(--lime)}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 18px;border-radius:14px;border:1px solid var(--line);background:#fff;font-weight:600;transition:transform .15s,box-shadow .2s,background .2s}.button:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow)}.button:active:not(:disabled){transform:translateY(0) scale(.98)}.button-primary{background:var(--green);border-color:var(--green);color:#fff}.button-primary:hover:not(:disabled){background:#186445}.button-lime{background:var(--lime);border-color:var(--lime);color:var(--green-deep)}.button-ghost-light{background:#ffffff1a;border-color:#ffffff4d;color:#fff}.button-danger{background:var(--red);border-color:var(--red);color:#fff}.button-danger-soft{background:#fdeeee;border-color:#f6d0d0;color:#a62b2b}.button-small{padding:7px 12px;font-size:.86rem;border-radius:11px}.button-block{width:100%;padding:14px;font-size:1rem}.icon-button{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:12px;border:1px solid var(--line);background:#fff;transition:background .15s,transform .15s}.icon-button:hover:not(:disabled){background:var(--green-soft);transform:scale(1.06)}.icon-button.danger{color:var(--red)}.text-link{display:inline-flex;align-items:center;gap:6px;border:0;background:none;color:var(--green);font-weight:600;padding:4px 0}.text-link.light{color:var(--lime)}.chip{display:inline-flex;align-items:center;gap:6px;padding:6px 13px;border-radius:999px;border:1px solid var(--line);background:#fff;font-size:.86rem;font-weight:500;transition:all .15s}.chip:hover{border-color:var(--green)}.chip.on{background:var(--green-deep);color:#fff;border-color:var(--green-deep)}.chip-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}.segmented{display:inline-flex;padding:4px;border-radius:14px;background:#e9eee4;gap:2px}.segmented button{display:inline-flex;align-items:center;gap:7px;padding:9px 16px;border:0;border-radius:11px;background:transparent;font-weight:600;color:var(--ink-soft);transition:all .2s}.segmented button.active{background:#fff;color:var(--green-deep);box-shadow:0 2px 8px #14291f1f}.segmented.small button{padding:6px 12px;font-size:.86rem}.pill{display:inline-flex;align-items:center;padding:3px 11px;border-radius:999px;font-size:.76rem;font-weight:700;background:#eef2ea;color:var(--ink-soft);white-space:nowrap}.pill-ok{background:#dff3e6;color:#17683f}.pill-off{background:#f1e6e6;color:#8c3a3a}.pill-warn{background:#fff0c2;color:#7a5a00}.pill-hot{background:#f3e5ff;color:#6a2fb0}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field>span,.radio-set legend,.perm-grid legend{font-size:.8rem;font-weight:600;color:var(--ink-soft)}.field input,.field select,.field textarea,.search-inline input,.range-row input,.add-team input[type=text],.add-team input:not([type]){width:100%;padding:11px 13px;border-radius:12px;border:1px solid #d3dccf;background:#fff;transition:border-color .15s,box-shadow .15s}.field input:focus,.field select:focus,.field textarea:focus,.input-icon input:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 4px #1f7a5626}.field textarea{resize:vertical}.field small{margin-top:2px}.input-icon{position:relative}.input-icon svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--ink-faint);pointer-events:none}.input-icon input{width:100%;padding:11px 13px 11px 38px;border-radius:12px;border:1px solid #d3dccf;background:#fff}.input-icon.slim input{padding:8px 12px 8px 34px;min-width:200px}.form-error{padding:10px 14px;border-radius:12px;background:#fdeeee;border:1px solid #f3c7c7;color:#9b2a2a;font-size:.9rem}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form-grid .span-2,.span-2{grid-column:1 / -1}.form-grid .two,.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-stack{display:flex;flex-direction:column;gap:14px}.check{display:flex;align-items:flex-start;gap:10px;font-size:.92rem;cursor:pointer}.check input{margin-top:3px;accent-color:var(--green);width:17px;height:17px}.radio-set,.perm-grid{border:1px solid var(--line);border-radius:14px;padding:12px 14px;display:flex;flex-direction:column;gap:10px;margin:0;min-width:0}.radio-set label{display:flex;gap:10px;align-items:flex-start;cursor:pointer}.radio-set label span{display:flex;flex-direction:column}.radio-set input{margin-top:4px;accent-color:var(--green)}.perm-grid{display:grid;grid-template-columns:1fr 1fr}.panel{background:var(--card);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow)}.panel.tight{padding:16px;margin-bottom:14px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;flex-wrap:wrap}.panel-tools{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.two-col{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start}.tabs{display:flex;gap:6px;overflow-x:auto;margin-bottom:20px;padding-bottom:4px}.tabs button{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border-radius:14px;border:1px solid var(--line);background:#fff;font-weight:600;white-space:nowrap;color:var(--ink-soft);transition:all .15s}.tabs button.active{background:var(--green-deep);color:#fff;border-color:var(--green-deep)}.table-wrap{overflow-x:auto}.table{width:100%;border-collapse:collapse}.table th{text-align:left;font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);padding:8px 10px;border-bottom:1px solid var(--line)}.table td{padding:12px 10px;border-bottom:1px solid var(--line);vertical-align:middle}.table td small{display:block}.muted-row{opacity:.55}.plain-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.plain-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.plain-list li>div{flex:1;min-width:0}.plain-list small{display:block}.empty{display:grid;justify-items:center;text-align:center;gap:8px;padding:44px 20px;color:var(--ink-soft)}.empty-icon{display:grid;place-items:center;width:56px;height:56px;border-radius:18px;background:var(--green-soft);color:var(--green)}.secret-box{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px;border-radius:14px;background:var(--green-soft);margin:14px 0}.secret-box code{font-size:1.1rem;background:none;letter-spacing:.04em}.modal-backdrop{position:fixed;inset:0;z-index:60;background:#0c1c148c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:grid;place-items:center;padding:16px;animation:rise .2s ease both}.modal{width:min(480px,100%);max-height:92vh;overflow:auto;background:#fff;border-radius:22px;padding:24px;box-shadow:0 30px 80px #00000059;animation:pop .3s ease both}.modal-wide{width:min(680px,100%)}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.modal-actions{display:flex;gap:10px;justify-content:flex-end;align-items:center;flex-wrap:wrap;margin-top:18px}.modal-actions.left{justify-content:flex-start;margin-top:8px}.toast-stack{position:fixed;right:18px;bottom:18px;z-index:90;display:flex;flex-direction:column;gap:10px;max-width:min(420px,calc(100vw - 36px))}.toast{display:flex;align-items:center;gap:10px;padding:13px 14px;border-radius:16px;background:var(--green-deep);color:#fff;box-shadow:var(--shadow-lift);animation:rise .3s ease both}.toast-success{background:#176a45}.toast-error{background:#a52f2f}.toast span{flex:1;font-size:.93rem}.toast-close{border:0;background:#ffffff26;color:#fff;border-radius:8px;width:24px;height:24px;display:grid;place-items:center}.confetti{position:fixed;inset:0;pointer-events:none;z-index:95;overflow:hidden}.confetti i{position:absolute;top:-20px;border-radius:2px;animation-name:fall;animation-timing-function:cubic-bezier(.2,.6,.3,1);animation-fill-mode:forwards}@keyframes fall{0%{transform:translate(0) rotate(0);opacity:1}to{transform:translate(var(--drift),105vh) rotate(var(--spin));opacity:.9}}.login{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr;background:var(--bg)}.login-art{position:relative;overflow:hidden;background:linear-gradient(150deg,#0f3527,#1f7a56);color:#fff;display:grid;align-items:center;padding:56px}.blob{position:absolute;border-radius:50%;filter:blur(2px);opacity:.55;animation:float 9s ease-in-out infinite}.blob-a{width:360px;height:360px;background:var(--lime);top:-90px;right:-80px;opacity:.25}.blob-b{width:240px;height:240px;background:#6fd3a5;bottom:-60px;left:10%;animation-delay:-3s;opacity:.3}.blob-c{width:130px;height:130px;background:var(--orange);bottom:24%;right:12%;animation-delay:-6s;opacity:.45}@keyframes float{0%,to{transform:translate(0) scale(1)}50%{transform:translate(18px,-26px) scale(1.08)}}.login-copy{position:relative;max-width:520px;display:flex;flex-direction:column;gap:18px}.login-copy h1{font-size:clamp(2.2rem,4vw,3.4rem)}.login-copy h1 em{color:var(--lime);font-style:normal}.login-copy p{font-size:1.1rem;color:#cfe5d8}.login-copy ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}.login-copy li{display:flex;gap:10px;align-items:center;color:#e2f2e8}.login-card{align-self:center;justify-self:center;width:min(420px,calc(100% - 36px));display:flex;flex-direction:column;gap:16px;padding:30px;background:#fff;border-radius:24px;box-shadow:var(--shadow-lift);animation:rise .5s ease both}.login-card.wide{width:min(480px,calc(100% - 36px))}.login-card h2{font-size:1.6rem}.demo-box{display:flex;flex-direction:column;gap:8px;padding:14px;border-radius:14px;background:#f3f8ec;border:1px dashed #bcd29b}.demo-row{display:flex;gap:8px;flex-wrap:wrap}.hero{display:grid;grid-template-columns:1.4fr 1fr;gap:22px;padding:30px;border-radius:26px;color:#fff;background:radial-gradient(circle at 90% 10%,rgba(215,243,90,.28),transparent 40%),linear-gradient(135deg,#0f3527,#1c7351);margin-bottom:20px;overflow:hidden}.hero h1{font-size:clamp(1.7rem,3vw,2.5rem);margin-bottom:8px}.hero p{color:#cfe5d8;max-width:46ch}.wave{display:inline-block;animation:wave 2.4s ease-in-out infinite;transform-origin:70% 70%}@keyframes wave{0%,60%,to{transform:rotate(0)}10%,30%{transform:rotate(16deg)}20%,40%{transform:rotate(-10deg)}50%{transform:rotate(8deg)}}.hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}.hero-card{align-self:center;display:flex;flex-direction:column;gap:6px;padding:20px;border-radius:20px;background:#ffffff1a;border:1px solid rgba(255,255,255,.18);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.hero-card-title{font-size:1.6rem;letter-spacing:-.02em}.hero-card small{color:#b5d3c1}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:20px}.stat-card{display:flex;align-items:center;gap:16px;background:#fff;border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);transition:transform .2s,box-shadow .2s}.stat-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-lift)}.stat-card strong{display:block;font-size:2.2rem;line-height:1;letter-spacing:-.03em}.stat-card span{color:var(--ink-soft)}.stat-card small{display:block;margin-top:4px}.stat-icon{display:grid;place-items:center;width:54px;height:54px;border-radius:16px;flex:none}.stat-icon.flame{background:#fff0e0;color:var(--orange);animation:flicker 1.6s ease-in-out infinite}.stat-icon.calm{background:var(--green-soft);color:var(--green)}@keyframes flicker{0%,to{transform:scale(1) rotate(-2deg)}50%{transform:scale(1.1) rotate(3deg)}}.ring{width:66px;height:66px;transform:rotate(-90deg);flex:none}.ring circle{fill:none;stroke-width:9}.ring-track{stroke:#e6eee2}.ring-fill{stroke:var(--green);stroke-linecap:round;transition:stroke-dashoffset 1s ease}.quick-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px}.quick-card{display:flex;align-items:center;gap:14px;padding:18px;border-radius:var(--radius);border:1px solid var(--line);background:#fff;text-align:left;transition:transform .2s,box-shadow .2s,border-color .2s}.quick-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lift);border-color:var(--green)}.quick-card>span:nth-child(2){flex:1;display:flex;flex-direction:column}.quick-card small{color:var(--ink-soft)}.quick-icon{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;flex:none}.quick-icon.green{background:#def3e6;color:#17683f}.quick-icon.lilac{background:#ebe7ff;color:var(--lilac)}.quick-icon.orange{background:#ffe8d6;color:var(--orange)}.quick-icon.blue{background:#dcefff;color:var(--blue)}.event-strip{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}.mini-event{display:flex;gap:12px;align-items:center;padding:12px;border-radius:14px;background:var(--bg)}.mini-event small{display:block}.date-chip{display:flex;flex-direction:column;align-items:center;justify-content:center;width:52px;height:56px;border-radius:14px;background:var(--green-deep);color:#fff;flex:none}.date-chip strong{font-size:1.25rem;line-height:1}.date-chip span{font-size:.66rem;letter-spacing:.1em;opacity:.8}.date-chip.big{width:62px;height:68px}.date-chip.big strong{font-size:1.6rem}.controls{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;margin-bottom:16px;padding:16px;background:#fff;border-radius:var(--radius);box-shadow:var(--shadow)}.controls .field{width:160px}.controls .field.grow{flex:1;min-width:200px;width:auto}.book-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:20px;align-items:start}.book-main{background:#fff;border-radius:var(--radius);padding:18px;box-shadow:var(--shadow);min-width:0}.book-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;flex-wrap:wrap}.legend{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.legend-chip{display:inline-flex;align-items:center;gap:8px;padding:5px 12px 5px 8px;border-radius:999px;border:1px solid var(--line);background:#fff;font-size:.82rem;transition:all .15s}.legend-chip i{width:14px;height:14px;border-radius:50%;background:var(--c)}.legend-chip span{color:var(--ink-faint);font-weight:700}.legend-chip:hover,.legend-chip.on{border-color:var(--c);box-shadow:inset 0 0 0 1px var(--c)}.space-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px;max-height:620px;overflow:auto}.space-list.compact{max-height:none;margin-top:12px}.space-row{display:flex;align-items:center;gap:12px;width:100%;padding:10px 12px;border-radius:14px;border:1px solid var(--line);background:#fff;text-align:left;transition:all .15s}.space-row:hover:not(:disabled){border-color:var(--green);transform:translate(3px)}.space-row.selected{border-color:var(--green);background:var(--green-soft)}.space-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:#e8efe9;color:#fff;flex:none}.space-text{flex:1;display:flex;flex-direction:column;min-width:0}.selection{position:sticky;top:18px;background:#fff;border-radius:var(--radius);padding:22px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:14px}.selection h2{font-size:1.7rem;letter-spacing:-.02em}.sheet-close{display:none;position:absolute;right:14px;top:14px}.badge-row{display:flex;flex-wrap:wrap;gap:6px}.facts{margin:0;display:flex;flex-direction:column;gap:10px}.facts>div{display:flex;gap:12px;align-items:flex-start}.facts dt{color:var(--green);min-width:20px;font-weight:600}.facts dd{margin:0}.selection-empty{display:flex;flex-direction:column;gap:10px;align-items:flex-start}.selection-art{display:grid;place-items:center;width:70px;height:70px;border-radius:22px;background:var(--lime);color:var(--green-deep);animation:float 5s ease-in-out infinite}.tips{margin:0;padding-left:18px;color:var(--ink-soft);font-size:.9rem;line-height:1.8}.success-body{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding:8px 0}.success-badge{display:grid;place-items:center;width:72px;height:72px;border-radius:50%;background:var(--green);color:#fff;animation:pop .5s ease both;margin-bottom:6px}.booking-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:14px}.booking-card{display:flex;align-items:center;gap:18px;padding:18px;background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);flex-wrap:wrap;animation:rise .35s ease both}.booking-info{flex:1;min-width:200px}.booking-info small{display:flex;align-items:center;gap:4px;flex-wrap:wrap;margin-top:4px}.booking-actions{display:flex;gap:8px}.event-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:18px}.event-card{--tone: var(--green);display:flex;flex-direction:column;gap:10px;padding:20px;background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);border-top:5px solid var(--tone);transition:transform .2s,box-shadow .2s;animation:rise .35s ease both}.event-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lift)}.event-card .date-chip{background:var(--tone)}.tone-blue{--tone: var(--blue)}.tone-green{--tone: var(--green)}.tone-lilac{--tone: var(--lilac)}.tone-orange{--tone: var(--orange)}.tone-teal{--tone: #00a8a8}.tone-pink{--tone: var(--pink)}.tone-pill{background:color-mix(in srgb,var(--tone) 14%,white);color:var(--tone)}.event-top{display:flex;justify-content:space-between;align-items:flex-start}.event-meta{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;color:var(--ink-soft);font-size:.9rem}.event-meta li{display:flex;align-items:center;gap:8px}.event-actions{display:flex;gap:8px;margin-top:auto;padding-top:8px;align-items:center}.event-actions .button{flex:1}.scan-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.scan-card{background:#fff;border-radius:var(--radius);padding:22px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:14px}.viewfinder{position:relative;aspect-ratio:1;border-radius:22px;overflow:hidden;background:#0e2a20;display:grid;place-items:center}.viewfinder video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0}.viewfinder.live video{opacity:1}.viewfinder-idle{position:relative;display:grid;justify-items:center;gap:10px;color:#b8d6c5;text-align:center;padding:28px}.corner{position:absolute;width:38px;height:38px;border:4px solid var(--lime)}.corner.tl{top:18px;left:18px;border-right:0;border-bottom:0;border-radius:10px 0 0}.corner.tr{top:18px;right:18px;border-left:0;border-bottom:0;border-radius:0 10px 0 0}.corner.bl{bottom:18px;left:18px;border-right:0;border-top:0;border-radius:0 0 0 10px}.corner.br{bottom:18px;right:18px;border-left:0;border-top:0;border-radius:0 0 10px}.scan-line{position:absolute;left:12%;right:12%;height:3px;background:var(--lime);box-shadow:0 0 16px var(--lime);animation:sweep 2.2s ease-in-out infinite}@keyframes sweep{0%,to{top:18%}50%{top:80%}}.search-inline{display:flex;gap:10px}.search-inline .input-icon{flex:1}.qr-result{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px;border-radius:16px;background:var(--green-soft);animation:pop .4s ease both}.qr-result img{border-radius:12px;background:#fff;padding:6px}.floor-map{display:flex;flex-direction:column;gap:10px}.map-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.zoom-controls{display:inline-flex;align-items:center;gap:6px}.zoom-readout{min-width:48px;text-align:center;font-weight:600;font-size:.85rem;color:var(--ink-soft)}.map-hint{font-size:.8rem;color:var(--ink-faint)}.map-viewport{overflow:auto;border-radius:16px;border:1px solid var(--line);background:#fff;max-height:74vh;overscroll-behavior:contain}.map-surface{position:relative;-webkit-user-select:none;user-select:none;touch-action:pan-x pan-y;transition:width .25s ease}.map-surface.tool-select{cursor:crosshair;touch-action:none}.map-plan{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none}.map-plan-empty{display:grid;place-items:center;background:repeating-linear-gradient(0deg,#f3f6f0,#f3f6f0 24px,#edf1e9 24px 25px);color:var(--ink-faint);aspect-ratio:1684 / 1191}.map-note{font-size:.82rem;color:var(--ink-soft);margin:0}.seat-dot{--seat: #2f9e6f;position:absolute;transform:translate(-50%,-50%);width:1.25%;min-width:8px;aspect-ratio:1;border-radius:50%;border:1.5px solid #fff;background:var(--seat);box-shadow:0 1px 3px #00000059;padding:0;z-index:2;transition:transform .15s,opacity .2s,box-shadow .15s}.seat-dot:after{content:"";position:absolute;inset:-7px;border-radius:50%}.seat-dot:hover{transform:translate(-50%,-50%) scale(1.7);z-index:20}.seat-dot.is-room{width:auto;min-width:0;aspect-ratio:auto;border-radius:9px;padding:3px 7px;background:var(--seat);color:#fff;font-size:10px;font-weight:700;white-space:nowrap}.seat-dot.is-room .seat-label{display:block;position:static;color:#fff;text-shadow:none;transform:none;font-size:10px}.seat-dot.is-booked{background:#fff;border-color:#c4cbc7;box-shadow:none;opacity:.75;background-image:repeating-linear-gradient(45deg,#d3d9d5 0 2px,transparent 2px 5px)}.seat-dot.is-dim{opacity:.18}.seat-dot.is-selected{z-index:30;box-shadow:0 0 0 3px #fff,0 0 0 6px var(--ink),0 6px 14px #0006;animation:bounce .5s ease;transform:translate(-50%,-50%) scale(1.5)}.seat-dot.is-dragging{cursor:grabbing;z-index:40;transform:translate(-50%,-50%) scale(1.8);transition:none}.is-editing .seat-dot{cursor:grab;touch-action:none}@keyframes bounce{0%{transform:translate(-50%,-50%) scale(.8)}60%{transform:translate(-50%,-50%) scale(1.8)}to{transform:translate(-50%,-50%) scale(1.5)}}.seat-label{display:none;position:absolute;left:50%;top:100%;transform:translate(-50%);margin-top:1px;font-size:7px;font-weight:700;color:#111;text-shadow:0 0 2px #fff,0 0 2px #fff,0 0 3px #fff;pointer-events:none}.show-labels .seat-label{display:block}.seat-tip{display:none;position:absolute;bottom:160%;left:50%;transform:translate(-50%);background:var(--ink);color:#fff;padding:4px 9px;border-radius:8px;font-size:11px;font-weight:600;white-space:nowrap;pointer-events:none}.seat-dot:hover .seat-tip,.seat-dot:focus-visible .seat-tip{display:block}.seat-dot.is-room .seat-tip{display:none}.band{position:absolute;border:2px dashed var(--blue);background:#0984e31f;pointer-events:none;z-index:50}.layout-editor{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:20px;align-items:start}.editor-main{background:#fff;border-radius:var(--radius);padding:16px;box-shadow:var(--shadow);min-width:0}.editor-bar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:12px}.editor-actions{display:flex;gap:8px;margin-left:auto;flex-wrap:wrap}.editor-side{position:sticky;top:18px;max-height:calc(100vh - 36px);overflow:auto}.range-row,.add-team{display:flex;gap:8px;align-items:center;margin:8px 0}.range-row input,.add-team input[type=text],.add-team input:not([type]){flex:1;min-width:0;padding:9px 11px}.assign-box{display:flex;flex-direction:column;gap:8px;padding:12px;border-radius:14px;background:var(--green-soft);margin:10px 0}.assign-box .chip-row{margin:0}.single-edit{display:flex;flex-direction:column;gap:10px;margin-top:10px}.team-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}.team-list li{display:flex;align-items:center;gap:8px;padding:4px;border-radius:12px}.team-list li.on{background:var(--green-soft)}.team-list input[type=color],.add-team input[type=color]{width:32px;height:32px;padding:0;border:0;border-radius:10px;background:none;cursor:pointer;flex:none}.team-name{flex:1;min-width:0;border:1px solid transparent;background:transparent;padding:6px 8px;border-radius:8px;font-weight:500}input.team-name:hover,input.team-name:focus{border-color:#d3dccf;background:#fff;outline:none}.swatch{width:26px;height:26px;border-radius:8px;display:inline-block}@media(max-width:1100px){.quick-grid{grid-template-columns:repeat(2,1fr)}.book-grid,.layout-editor{grid-template-columns:1fr}.editor-side{position:static;max-height:none}}@media(max-width:900px){.app-shell{grid-template-columns:1fr}.sidebar{display:none}.topbar{display:flex;align-items:center;justify-content:space-between;padding:12px 18px;background:var(--green-deep);color:#fff;position:sticky;top:0;z-index:30}.topbar .brand{padding:0}.topbar-right{display:flex;gap:10px;align-items:center}.screen{padding:20px 16px 110px}.bottom-nav{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:40;background:#fff;border-top:1px solid var(--line);padding:6px 6px calc(6px + env(safe-area-inset-bottom));box-shadow:0 -6px 24px #14291f14}.bottom-item{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 2px;border:0;background:none;font-size:.68rem;color:var(--ink-faint);border-radius:12px}.bottom-item.active{color:var(--green-deep);font-weight:700;background:var(--green-soft)}.hero{grid-template-columns:1fr;padding:22px}.stat-grid,.login{grid-template-columns:1fr}.login-art{padding:32px 24px;min-height:280px}.login-card{margin:-28px auto 28px}.two-col,.scan-grid{grid-template-columns:1fr}.controls .field{width:calc(50% - 6px)}.selection{position:fixed;inset:auto 0 72px;z-index:45;border-radius:22px 22px 0 0;max-height:60vh;padding:18px 18px 8px;gap:10px;overflow:auto;transform:translateY(110%);transition:transform .3s ease;box-shadow:0 -12px 40px #00000040}.selection.open{transform:none}.selection:not(.open) .selection-empty{display:none}.sheet-close{display:inline-grid}.selection .button-block{position:sticky;bottom:0;box-shadow:0 -10px 12px #fff}.selection h2{font-size:1.4rem}.toast-stack{bottom:84px}.form-grid,.perm-grid{grid-template-columns:1fr}}@media(max-width:520px){.quick-grid{grid-template-columns:1fr}.controls{padding:12px;gap:10px}.controls .field{width:calc(50% - 5px)}.controls .field:first-child,.controls .field.grow{width:100%}.legend{flex-wrap:nowrap;overflow-x:auto;padding-bottom:6px;scrollbar-width:thin}.legend-chip{flex:none}.book-main{padding:12px}.editor-actions{margin-left:0}}@media(max-width:700px){.table,.table tbody,.table tr,.table td{display:block}.table thead{display:none}.table tr{padding:12px 0;border-bottom:1px solid var(--line)}.table td{border:0;padding:3px 0}.table td.right{text-align:left;padding-top:8px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}.success-body .modal-actions{justify-content:center}.file-button{position:relative;overflow:hidden}.file-button input{position:absolute;inset:0;opacity:0;cursor:pointer}
