:root{--ink: #14151f;--ink-soft: #565a72;--paper: #eef0f6;--paper-raised: #ffffff;--paper-sunk: #e3e6f0;--line: #d7d9e6;--accent: #5b4fe0;--accent-2: #22c1dc;--accent-soft: #5b4fe017;--accent-2-soft: #22c1dc17;--accent-contrast: #ffffff;--warm: #b0530f;--warm-soft: #b0530f14;--good: #157a4a;--good-soft: #157a4a14;--radius: 10px;--display: "Bricolage Grotesque", "IBM Plex Sans", -apple-system, sans-serif;--sans: "IBM Plex Sans", -apple-system, "Segoe UI", sans-serif;--mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;--shadow-xs: 0 1px 2px rgba(18, 24, 31, .06);--shadow-sm: 0 2px 6px rgba(18, 24, 31, .08), 0 1px 2px rgba(18, 24, 31, .05);--shadow-md: 0 8px 24px rgba(18, 24, 31, .12), 0 2px 6px rgba(18, 24, 31, .06);--shadow-lg: 0 16px 40px rgba(18, 24, 31, .18), 0 4px 10px rgba(18, 24, 31, .08);--ease: cubic-bezier(.2, .7, .3, 1)}@media (prefers-color-scheme: dark){:root{--ink: #e7ebe8;--ink-soft: #9aa39c;--paper: #0e1210;--paper-raised: #171d1a;--paper-sunk: #0a0d0b;--line: #2a332e;--accent: #8f7ef5;--accent-2: #4fd6ea;--accent-soft: #8f7ef522;--accent-2-soft: #4fd6ea22;--accent-contrast: #100c30;--warm: #e0954f;--warm-soft: #e0954f1c;--good: #52c98a;--good-soft: #52c98a1c;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .35);--shadow-sm: 0 2px 6px rgba(0, 0, 0, .45), 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 8px 24px rgba(0, 0, 0, .5), 0 2px 6px rgba(0, 0, 0, .3);--shadow-lg: 0 16px 40px rgba(0, 0, 0, .6), 0 4px 10px rgba(0, 0, 0, .35)}}.theme-birthday{--accent: #d6408a;--accent-soft: #d6408a1a}.theme-christmas_party{--accent: #d63950;--accent-soft: #d639501a}.theme-strategic_planning{--accent: #3b6fe0;--accent-soft: #3b6fe01a}.theme-team_building{--accent: #0f9488;--accent-soft: #0f948817}.theme-other{--accent: #8b3fd6;--accent-soft: #8b3fd61a}@media (prefers-color-scheme: dark){.theme-birthday{--accent: #f0a0c8;--accent-soft: #f0a0c822;--accent-contrast: #3a0f22}.theme-christmas_party{--accent: #f0919e;--accent-soft: #f0919e22;--accent-contrast: #350a0c}.theme-strategic_planning{--accent: #8fadf0;--accent-soft: #8fadf022;--accent-contrast: #0b2438}.theme-team_building{--accent: #5fd6c8;--accent-soft: #5fd6c81c;--accent-contrast: #06201d}.theme-other{--accent: #c49bf0;--accent-soft: #c49bf022;--accent-contrast: #241a33}}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);line-height:1.5;-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--display);font-weight:600;margin:0 0 .5rem;text-wrap:balance}p{margin:0 0 .75rem}a{color:var(--accent);transition:color .15s var(--ease)}button,input,select,textarea{font-family:inherit;font-size:1rem}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.shell{max-width:720px;margin:0 auto;padding:1.5rem 1.25rem 6rem;min-height:100%;animation:rise .35s var(--ease)}.shell-wide{max-width:1080px;margin:0 auto;padding:1.5rem 1.25rem 4rem;animation:rise .35s var(--ease)}@keyframes rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.topbar{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--line);background:var(--paper-raised);position:sticky;top:0;z-index:5}.topbar .brand{font-family:var(--display);font-weight:600;font-size:1.05rem;display:inline-flex;align-items:center;gap:.45rem}.topbar .brand .dot{color:var(--accent);font-size:1.3rem;line-height:0}.auth-shell{min-height:100dvh;display:flex;flex-direction:column;background:var(--paper)}.auth-frame{display:flex;flex-direction:column;flex:1}@media (min-width: 860px){.auth-shell{flex-direction:row;align-items:center;justify-content:center;padding:2rem;min-height:100vh}.auth-frame{flex-direction:row;flex:none;width:100%;max-width:1000px;height:620px;border-radius:20px;overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow-lg)}}.auth-hero{position:relative;overflow:hidden;flex:0 0 75%;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse 640px 560px at 44% 34%,var(--accent-soft),var(--paper) 72%)}@media (min-width: 860px){.auth-hero{flex:0 0 70%}}.auth-orbit{position:absolute;border-radius:50%;animation:auth-float 10s ease-in-out infinite}.auth-orbit.o1{width:190px;height:190px;background:var(--accent-2);opacity:.3;top:2%;left:-10%;filter:blur(1px)}.auth-orbit.o2{width:240px;height:240px;background:var(--accent);opacity:.22;bottom:-10%;right:-8%;filter:blur(1px);animation-delay:-3.3s}.auth-orbit.o3{width:96px;height:96px;background:var(--warm);opacity:.22;bottom:18%;left:10%;animation-delay:-6.6s}.auth-orbit.o4{width:44px;height:44px;background:var(--accent);opacity:.4;top:18%;right:20%;animation:auth-float-sm 7s ease-in-out infinite;animation-delay:-2s}.auth-ring{position:absolute;top:50%;left:50%;width:300px;height:300px;margin:-150px 0 0 -150px;border:1px solid var(--line);border-radius:50%}@keyframes auth-float{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-16px) scale(1.05)}}@keyframes auth-float-sm{0%,to{transform:translateY(0)}50%{transform:translateY(-9px)}}@media (prefers-reduced-motion: reduce){.auth-orbit{animation:none}}.auth-hero-content{position:relative;z-index:3;text-align:center;padding:0 2rem}.auth-logomark{position:relative;width:44px;height:30px;margin:0 auto .9rem}.auth-logomark i{position:absolute;bottom:0;border-radius:50%}.auth-logomark i:nth-child(1){width:9px;height:9px;left:0;background:var(--accent-2)}.auth-logomark i:nth-child(2){width:13px;height:13px;left:14px;bottom:-2px;background:color-mix(in srgb,var(--accent) 55%,var(--accent-2))}.auth-logomark i:nth-child(3){width:18px;height:18px;left:31px;bottom:-4px;background:var(--accent)}.auth-hero-content h1{font-size:2.1rem}.auth-hero-content p{max-width:26ch;margin:0 auto}.auth-sheet{flex:1;background:var(--paper-raised);display:flex;flex-direction:column;justify-content:center;border-radius:22px 22px 0 0;margin-top:-20px;position:relative;z-index:4;box-shadow:0 -12px 28px #14151f0d;padding:1.5rem 1.5rem calc(1.5rem + env(safe-area-inset-bottom,0px))}.auth-handle{width:36px;height:4px;background:var(--line);border-radius:99px;margin:0 auto 1rem}@media (min-width: 860px){.auth-sheet{border-radius:0;margin-top:0;box-shadow:inset 1px 0 0 var(--line);align-items:center;padding:2.5rem}.auth-sheet-inner{width:100%;max-width:280px}.auth-handle{display:none}}.auth-sheet form{width:100%}@media (min-width: 860px){.auth-sheet form{max-width:280px;margin:0 auto}}.card{background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--radius);padding:1.1rem 1.25rem;margin-bottom:1rem;box-shadow:var(--shadow-xs);transition:box-shadow .18s var(--ease),transform .18s var(--ease),border-color .18s var(--ease)}.card-link{display:block;text-decoration:none;color:inherit;cursor:pointer}.card-link:hover,.card-link:focus-visible{box-shadow:var(--shadow-md);border-color:var(--accent);transform:translateY(-1px)}.card.accent-left{border-left:3px solid var(--accent)}.card.warn-left{border-left:3px solid var(--warm)}.field{display:flex;flex-direction:column;gap:.35rem;margin-bottom:1rem}.field label{font-size:.82rem;font-weight:600;color:var(--ink-soft)}.field input,.field select,.field textarea,input[type=text],input[type=email],input[type=date],input[type=time],input[type=number]{border:1px solid var(--line);border-radius:8px;padding:.65rem .8rem;background:var(--paper-raised);color:var(--ink);transition:border-color .15s var(--ease),box-shadow .15s var(--ease)}.field input:hover,.field select:hover,.field textarea:hover{border-color:var(--ink-soft)}.field input:focus,.field select:focus,.field textarea:focus,input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.field small{color:var(--ink-soft);font-size:.78rem}.field.checkbox{flex-direction:row;align-items:flex-start;gap:.6rem}.field.checkbox input{margin-top:.2rem;width:18px;height:18px;accent-color:var(--accent)}.type-select{position:relative}.type-swatch{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:.5rem;flex:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border-radius:8px;padding:.75rem 1.2rem;font-weight:600;border:1px solid var(--line);background:var(--paper-raised);color:var(--ink);cursor:pointer;transition:transform .12s var(--ease),box-shadow .12s var(--ease),background-color .12s var(--ease),border-color .12s var(--ease),opacity .12s var(--ease);box-shadow:var(--shadow-xs)}.btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--shadow-sm);border-color:var(--ink-soft)}.btn:active:not(:disabled){transform:translateY(0);box-shadow:none}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast)}.btn-primary:hover:not(:disabled){filter:brightness(1.08);border-color:var(--accent)}.btn-danger{background:var(--warm-soft);border-color:var(--warm);color:var(--warm)}.btn-danger:hover:not(:disabled){background:var(--warm);color:#fff}.btn-block{width:100%}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none;box-shadow:none}.bottom-cta{position:fixed;left:0;right:0;bottom:0;padding:.9rem 1.1rem calc(.9rem + env(safe-area-inset-bottom));background:linear-gradient(to top,var(--paper) 60%,transparent);z-index:6}.bottom-cta .btn{max-width:720px;margin:0 auto}.pill{display:inline-flex;align-items:center;gap:.4rem;padding:.18rem .6rem .18rem .5rem;border-radius:99px;font-size:.78rem;font-weight:600;font-family:var(--mono)}.pill:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}.pill.ok{background:var(--good-soft);color:var(--good)}.pill.pending{background:var(--paper-sunk);color:var(--ink-soft)}.pill.warn{background:var(--warm-soft);color:var(--warm)}.tab-row{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1.5rem;padding-bottom:1.1rem;border-bottom:1px solid var(--line)}.tab-pill{font-family:var(--sans);font-weight:600;font-size:.85rem;padding:.5rem 1.15rem;border-radius:999px;border:1.5px solid var(--line);background:var(--paper-raised);color:var(--ink-soft);cursor:pointer;transition:border-color .15s var(--ease),color .15s var(--ease),background .15s var(--ease)}.tab-pill:hover{border-color:var(--accent);color:var(--ink)}.tab-pill.active{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast)}.tab-pill:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.75rem;margin-bottom:1.25rem}.stat-tile{background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--radius);padding:.9rem 1rem;box-shadow:var(--shadow-xs);transition:box-shadow .18s var(--ease)}.stat-tile:hover{box-shadow:var(--shadow-sm)}.stat-tile .n{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:1.7rem;font-weight:600}.stat-tile .l{font-size:.78rem;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.04em}.stat-tile.warn .n{color:var(--warm)}table{width:100%;border-collapse:collapse;font-size:.92rem}th{text-align:left;font-family:var(--mono);font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);padding:.55rem .6rem;border-bottom:1px solid var(--line);background:var(--paper-sunk)}td{padding:.55rem .6rem;border-bottom:1px solid var(--line)}tbody tr{transition:background-color .12s var(--ease)}tbody tr:hover{background:var(--accent-soft)}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-xs)}.table-wrap table{min-width:480px}.notice{background:var(--accent-soft);border:1px solid var(--accent);border-radius:var(--radius);padding:.9rem 1rem;font-size:.9rem;margin-bottom:1.25rem}.landing-hero{position:relative;overflow:hidden;padding:3.5rem 1.5rem 3rem;text-align:center;background:linear-gradient(180deg,var(--paper-raised),var(--paper));border-bottom:1px solid var(--line)}.landing-hero-content{position:relative;z-index:3}.landing-hero-content h1{font-family:var(--display);font-size:2.5rem;margin:.6rem 0 .4rem}.landing-hero-content p{color:var(--ink-soft);max-width:34ch;margin:0 auto}.landing-staff-link{position:absolute;top:1.5rem;right:1.5rem;z-index:4;font-size:.85rem;color:var(--ink-soft);text-decoration:none;border:1px solid var(--line);border-radius:99px;padding:.4rem .9rem;background:var(--paper-raised);transition:border-color .15s var(--ease),color .15s var(--ease)}.landing-staff-link:hover{border-color:var(--accent);color:var(--accent)}.landing-body{max-width:720px;margin:0 auto;padding:2rem 1.25rem 4rem}.event-card{border-left:3px solid var(--accent)}.event-card .type-swatch{background:var(--accent)}.owner-hero{margin-bottom:1.5rem}.owner-hero h1{margin-bottom:.2rem}.section-label{font-family:var(--mono);font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);margin-bottom:.6rem}.owner-grid{display:grid;grid-template-columns:1fr;gap:1.5rem;margin-bottom:2.5rem;align-items:start}@media (min-width: 900px){.owner-grid{grid-template-columns:1.6fr 1fr}}.calendar-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.calendar-head strong{font-family:var(--display);font-size:1.05rem}.calendar-nav{display:flex;gap:.3rem}.calendar-nav button{padding:.3rem .55rem}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.calendar-dow{background:var(--paper-sunk);font-family:var(--mono);font-size:.64rem;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);text-align:center;padding:.4rem 0}.calendar-day{background:var(--paper-raised);min-height:78px;padding:.3rem;display:flex;flex-direction:column;gap:.2rem}.calendar-day.outside{background:var(--paper-sunk);opacity:.45}.calendar-day .day-num{font-family:var(--mono);font-size:.72rem;width:20px;height:20px;display:flex;align-items:center;justify-content:center;color:var(--ink-soft)}.calendar-day.today .day-num{background:var(--accent);color:var(--accent-contrast);border-radius:50%;font-weight:600}.calendar-chip{display:block;font-size:.64rem;line-height:1.3;padding:.08rem .3rem;border-radius:5px;background:var(--accent-soft);color:var(--accent);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-left:2px solid var(--accent)}.calendar-chip:hover{background:var(--accent);color:var(--accent-contrast)}.calendar-more{font-size:.62rem;color:var(--ink-soft);padding-left:.3rem}.action-item{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;padding:.75rem 0;border-bottom:1px solid var(--line)}.action-item:last-child{border-bottom:none;padding-bottom:0}.action-item .a-meta{font-size:.78rem;color:var(--ink-soft);margin-top:.2rem}.error{background:var(--warm-soft);border:1px solid var(--warm);color:var(--warm);border-radius:var(--radius);padding:.7rem .9rem;font-size:.9rem;margin-bottom:1rem}.badge{background:var(--paper-raised);border-radius:20px;box-shadow:var(--shadow-lg);overflow:hidden;margin:1.5rem auto;max-width:340px;text-align:left;border:1px solid var(--line);animation:rise .4s var(--ease)}.badge-header{background:var(--accent);color:var(--accent-contrast);padding:1.1rem 1.25rem}.badge-header .eyebrow{text-transform:uppercase;letter-spacing:.1em;font-size:.68rem;font-weight:600;opacity:.85}.badge-header h2{font-family:var(--display);font-size:1.25rem;margin:.2rem 0 0;color:inherit}.badge-perforation{position:relative;height:0;border-top:2px dashed color-mix(in srgb,var(--ink) 18%,transparent)}.badge-perforation:before,.badge-perforation:after{content:"";position:absolute;top:-10px;width:20px;height:20px;border-radius:50%;background:var(--paper)}.badge-perforation:before{left:-10px}.badge-perforation:after{right:-10px}.badge-body{padding:1.4rem 1.25rem 1.1rem;display:flex;flex-direction:column;align-items:center}.badge-qr{background:#fff;border-radius:14px;padding:.9rem;box-shadow:var(--shadow-sm)}.badge-qr img{width:100%;max-width:220px;height:auto;display:block}.badge-ref{font-family:var(--mono);letter-spacing:.18em;font-size:1.4rem;font-weight:600;margin:1rem 0 0}.badge-meta{color:var(--ink-soft);font-size:.85rem;text-align:center}.qr-frame{background:#fff;border-radius:14px;padding:1rem;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 3px #00000026}.qr-frame img{width:100%;max-width:260px;height:auto;display:block}.ref-code{font-family:var(--mono);letter-spacing:.12em;font-size:1.3rem;font-weight:600}.muted{color:var(--ink-soft);font-size:.88rem}.spread{display:flex;align-items:center;justify-content:space-between;gap:1rem}.stack-sm{display:flex;flex-direction:column;gap:.5rem}.row-gap{display:flex;gap:.6rem;flex-wrap:wrap}.checklist-item{display:flex;align-items:center;gap:.6rem;padding:.5rem 0;border-bottom:1px solid var(--line)}.checklist-item:last-child{border-bottom:none}.checklist-item.done span{text-decoration:line-through;color:var(--ink-soft)}.checklist-item input[type=checkbox]{accent-color:var(--accent);width:18px;height:18px}.scan-feedback{border-radius:var(--radius);padding:1rem;text-align:center;font-weight:600;box-shadow:var(--shadow-sm);animation:rise .25s var(--ease)}.scan-feedback.ok{background:var(--good-soft);color:var(--good)}.scan-feedback.warn{background:var(--warm-soft);color:var(--warm)}.scan-frame{position:relative;width:100%;max-width:360px;margin:0 auto;border-radius:16px;overflow:hidden;box-shadow:var(--shadow-md);background:#000}.scan-frame:after{content:"";position:absolute;top:12%;right:12%;bottom:12%;left:12%;pointer-events:none;border-radius:14px;background:linear-gradient(var(--accent),var(--accent)) 0 0/24px 3px no-repeat,linear-gradient(var(--accent),var(--accent)) 0 0/3px 24px no-repeat,linear-gradient(var(--accent),var(--accent)) 100% 0/24px 3px no-repeat,linear-gradient(var(--accent),var(--accent)) 100% 0/3px 24px no-repeat,linear-gradient(var(--accent),var(--accent)) 0 100%/24px 3px no-repeat,linear-gradient(var(--accent),var(--accent)) 0 100%/3px 24px no-repeat,linear-gradient(var(--accent),var(--accent)) 100% 100%/24px 3px no-repeat,linear-gradient(var(--accent),var(--accent)) 100% 100%/3px 24px no-repeat}.empty-state{text-align:center;padding:3rem 1.5rem;color:var(--ink-soft);border:1px dashed var(--line);border-radius:var(--radius)}
