@font-face{font-family:NATS;src:url(/fonts/NATS-Regular.ttf) format("truetype");font-weight:400;font-display:swap}@font-face{font-family:Slackside One;src:url(/fonts/SlacksideOne-Regular.ttf) format("truetype");font-weight:400;font-display:swap}:root{--cream: #f6f5e5;--sand: #efeacf;--sand-deep: #e7e0c2;--paper: #fcfbf3;--ink: #322c23;--ink-soft: #6f6555;--ink-faint: #9c917d;--line: #e3ddc4;--orange: #e86a2c;--orange-deep: #cf5619;--orange-tint: #fbe6d6;--sea: #0e7c86;--sea-deep: #0a5f67;--sea-tint: #d8ecee;--sea-wash: #eef7f7;--sun: #f2b705;--sun-tint: #fbeec2;--good: #2f7d55;--good-tint: #dcefe3;--bad: #b23b2e;--bad-tint: #f7e0dc;--r-card: 18px;--r-panel: 14px;--r-input: 10px;--r-button: 12px;--ease: cubic-bezier(.23, 1, .32, 1);--shadow-sm: 0 1px 2px rgba(50, 44, 35, .06);--shadow-md: 0 8px 28px rgba(50, 44, 35, .1);--shadow-lg: 0 18px 50px rgba(50, 44, 35, .14)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:NATS,system-ui,sans-serif;color:var(--ink);background:var(--cream);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-size:16.5px;line-height:1.5}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;background:radial-gradient(120% 80% at 85% -10%,var(--sun-tint) 0%,transparent 45%),radial-gradient(100% 70% at -10% 110%,var(--sea-wash) 0%,transparent 50%),var(--cream)}h1,h2,h3{font-weight:400;margin:0;letter-spacing:-.01em}.display{font-family:Slackside One,cursive;letter-spacing:0;line-height:1.05}a{color:var(--sea);text-decoration:none}a:hover{text-decoration:underline}button{font-family:inherit}input,textarea,select{font-family:inherit;font-size:1rem;color:var(--ink)}.eyebrow{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--sea-deep);font-weight:400}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border:none;border-radius:var(--r-button);padding:.7rem 1.25rem;font-size:.98rem;cursor:pointer;transition:transform .14s var(--ease),background .14s var(--ease),box-shadow .14s var(--ease),color .14s var(--ease);white-space:nowrap}.btn:disabled{cursor:not-allowed;opacity:.5}.btn:active:not(:disabled){transform:scale(.975)}.btn-primary{background:var(--orange);color:#fff;box-shadow:var(--shadow-sm)}.btn-primary:hover:not(:disabled){background:var(--orange-deep)}.btn-sea{background:var(--sea);color:#fff}.btn-sea:hover:not(:disabled){background:var(--sea-deep)}.btn-ghost{background:transparent;color:var(--ink);border:1px solid var(--line)}.btn-ghost:hover:not(:disabled){background:var(--paper);border-color:var(--ink-faint)}.btn-quiet{background:transparent;color:var(--sea-deep);padding:.5rem .7rem}.btn-quiet:hover:not(:disabled){background:var(--sea-wash)}.btn-sm{padding:.42rem .8rem;font-size:.86rem}:focus-visible{outline:2px solid var(--sea);outline-offset:2px;border-radius:4px}.field{display:flex;flex-direction:column;gap:.35rem}.field>label{font-size:.9rem;color:var(--ink-soft)}.field .req{color:var(--orange-deep)}.input,.textarea,.select{width:100%;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-input);padding:.62rem .75rem;transition:border-color .14s var(--ease),box-shadow .14s var(--ease)}.input:focus,.textarea:focus,.select:focus{outline:none;border-color:var(--sea);box-shadow:0 0 0 3px var(--sea-tint)}.textarea{resize:vertical;min-height:5rem;line-height:1.5}.field-error{color:var(--bad);font-size:.84rem}.field-hint{color:var(--ink-faint);font-size:.82rem}.chip{display:inline-flex;align-items:center;gap:.4rem;border-radius:999px;padding:.34rem .72rem;font-size:.88rem;border:1px solid var(--line);background:var(--paper);color:var(--ink);cursor:pointer;transition:background .13s var(--ease),border-color .13s var(--ease),transform .13s var(--ease)}.chip:hover{border-color:var(--sea)}.chip:active{transform:scale(.96)}.chip.on{background:var(--sea);border-color:var(--sea);color:#fff}.chip.removable{background:var(--sea-tint);border-color:transparent;color:var(--sea-deep);cursor:default}.chip .x{cursor:pointer;opacity:.7;font-size:1.05rem;line-height:1}.chip .x:hover{opacity:1}.badge{display:inline-flex;align-items:center;gap:.35rem;border-radius:999px;padding:.2rem .62rem;font-size:.78rem;letter-spacing:.01em}.badge .dot{width:7px;height:7px;border-radius:50%}.badge-live{background:var(--good-tint);color:var(--good)}.badge-live .dot{background:var(--good)}.badge-off{background:var(--sand-deep);color:var(--ink-soft)}.badge-off .dot{background:var(--ink-faint)}.badge-sun{background:var(--sun-tint);color:#8a6a00}.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow-sm)}.panel{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow-sm);padding:1.5rem}.panel+.panel{margin-top:1.4rem}.panel-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:1.1rem}.panel-head h2{font-size:1.32rem}.panel-desc{color:var(--ink-soft);font-size:.9rem;margin-top:.15rem}.dirty-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--orange);margin-left:.5rem;vertical-align:middle}.shell{min-height:100dvh;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:1.5rem;padding:.85rem clamp(1rem,4vw,2.5rem);background:#fcfbf3d1;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:.6rem;font-family:Slackside One,cursive;font-size:1.5rem;color:var(--ink)}.brand .sun{width:26px;height:26px;border-radius:50%;background:radial-gradient(circle at 35% 35%,var(--sun),var(--orange));box-shadow:0 0 0 4px var(--sun-tint);flex:none}.nav{display:flex;gap:.35rem}.nav a{padding:.45rem .85rem;border-radius:999px;color:var(--ink-soft);font-size:.96rem;transition:background .14s var(--ease),color .14s var(--ease)}.nav a:hover{text-decoration:none;background:var(--sea-wash);color:var(--ink)}.nav a.active{background:var(--sea);color:#fff}.topbar .spacer{flex:1}.who{color:var(--ink-faint);font-size:.86rem}.page{flex:1;width:100%;max-width:1120px;margin:0 auto;padding:clamp(1.4rem,4vw,2.8rem) clamp(1rem,4vw,2.5rem) 4rem}.page-head{margin-bottom:1.8rem}.page-head h1{font-family:Slackside One,cursive;font-size:clamp(2.1rem,5vw,3rem);line-height:1.02}.page-head p{color:var(--ink-soft);margin:.4rem 0 0;max-width:60ch}.row{display:flex;align-items:center;gap:.6rem}.row-between{display:flex;align-items:center;justify-content:space-between;gap:1rem}.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}@media (max-width: 720px){.grid-2,.grid-3{grid-template-columns:1fr}}.stack{display:flex;flex-direction:column;gap:1rem}.muted{color:var(--ink-soft)}.tiny{font-size:.82rem}.mono{font-family:ui-monospace,SF Mono,Menlo,monospace}.cafe-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(258px,1fr));gap:1.3rem}.cafe-card{display:flex;flex-direction:column;overflow:hidden;text-decoration:none;color:inherit;transition:transform .16s var(--ease),box-shadow .16s var(--ease)}.cafe-card:hover{text-decoration:none;transform:translateY(-3px);box-shadow:var(--shadow-md)}.cafe-thumb{aspect-ratio:16 / 10;background:linear-gradient(135deg,var(--sea-tint),var(--sun-tint));object-fit:cover;width:100%;display:block}.cafe-thumb-empty{display:flex;align-items:center;justify-content:center;color:var(--sea-deep);font-family:Slackside One,cursive;font-size:2.4rem;opacity:.5}.cafe-card-body{padding:1rem 1.1rem 1.2rem;display:flex;flex-direction:column;gap:.5rem;flex:1}.cafe-card-body h3{font-size:1.16rem}.cafe-card-meta{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin-top:auto}.add-card{display:flex;align-items:center;justify-content:center;min-height:200px;border:1.5px dashed var(--sea);border-radius:var(--r-card);color:var(--sea-deep);background:var(--sea-wash);cursor:pointer;font-size:1.02rem;transition:background .15s var(--ease),transform .15s var(--ease)}.add-card:hover{background:var(--sea-tint);text-decoration:none}.add-card:active{transform:scale(.99)}.hours-day{display:grid;grid-template-columns:128px 1fr auto;align-items:start;gap:.8rem;padding:.7rem 0;border-top:1px solid var(--line)}.hours-day:first-child{border-top:none}.hours-day .day-name{padding-top:.5rem}.hours-ranges{display:flex;flex-direction:column;gap:.5rem}.hours-range{display:flex;align-items:center;gap:.45rem}.hours-range input[type=time]{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-input);padding:.4rem .5rem}.closed-tag{color:var(--ink-faint);font-size:.9rem;padding-top:.5rem}@media (max-width: 640px){.hours-day{grid-template-columns:1fr;gap:.4rem}}.switch{display:inline-flex;align-items:center;gap:.6rem;cursor:pointer;-webkit-user-select:none;user-select:none}.switch input{position:absolute;opacity:0;width:0;height:0}.switch .track{width:44px;height:25px;border-radius:999px;background:var(--sand-deep);position:relative;transition:background .16s var(--ease);flex:none}.switch .track:after{content:"";position:absolute;top:3px;left:3px;width:19px;height:19px;border-radius:50%;background:#fff;box-shadow:var(--shadow-sm);transition:transform .18s var(--ease)}.switch input:checked+.track{background:var(--sea)}.switch input:checked+.track:after{transform:translate(19px)}.switch input:focus-visible+.track{outline:2px solid var(--sea);outline-offset:2px}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.9rem}.photo{position:relative;aspect-ratio:4 / 3;border-radius:var(--r-panel);overflow:hidden;border:1px solid var(--line);background:var(--sand)}.photo img{width:100%;height:100%;object-fit:cover;display:block}.photo.hero{outline:3px solid var(--orange);outline-offset:-3px}.photo-actions{position:absolute;inset:auto 0 0 0;display:flex;gap:.4rem;padding:.5rem;background:linear-gradient(transparent,#322c23ad)}.photo-actions button{border:none;border-radius:8px;padding:.28rem .55rem;font-size:.76rem;cursor:pointer;background:#ffffffeb;color:var(--ink);transition:background .13s var(--ease)}.photo-actions button:hover{background:#fff}.hero-flag{position:absolute;top:.5rem;left:.5rem;background:var(--orange);color:#fff;font-size:.72rem;padding:.16rem .5rem;border-radius:999px}.dropzone{border:1.5px dashed var(--sea);border-radius:var(--r-panel);background:var(--sea-wash);padding:1.6rem;text-align:center;color:var(--sea-deep);cursor:pointer;transition:background .15s var(--ease)}.dropzone.over{background:var(--sea-tint)}.token-row{display:flex;align-items:center;gap:.8rem;padding:.85rem 0;border-top:1px solid var(--line);flex-wrap:wrap}.token-row:first-child{border-top:none}.token-code{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.92rem;background:var(--sand);padding:.3rem .55rem;border-radius:8px;word-break:break-all}.qr-pop{display:inline-block;padding:.6rem;background:#fff;border:1px solid var(--line);border-radius:var(--r-panel);box-shadow:var(--shadow-md)}.table{width:100%;border-collapse:collapse}.table th{text-align:left;font-weight:400;color:var(--ink-soft);font-size:.82rem;letter-spacing:.03em;padding:0 .75rem .6rem;border-bottom:1px solid var(--line)}.table td{padding:.75rem;border-bottom:1px solid var(--line);vertical-align:middle}.table tr:last-child td{border-bottom:none}.table-scroll{overflow-x:auto}.auth-wrap{min-height:100dvh;display:grid;place-items:center;padding:2rem 1rem}.auth-card{width:100%;max-width:420px;background:var(--paper);border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow-lg);padding:2.4rem 2.2rem;position:relative;overflow:hidden}.auth-card:before{content:"";position:absolute;top:-60px;right:-40px;width:160px;height:160px;border-radius:50%;background:radial-gradient(circle at 35% 35%,var(--sun),var(--orange));opacity:.16}.auth-card .display{font-size:2.4rem;margin-bottom:.3rem}.auth-sub{color:var(--ink-soft);margin-bottom:1.8rem}.empty{text-align:center;padding:3.5rem 1.5rem;color:var(--ink-soft)}.empty .display{font-size:1.9rem;color:var(--ink);margin-bottom:.4rem}.notice{border-radius:var(--r-panel);padding:.8rem 1rem;font-size:.92rem;display:flex;gap:.6rem;align-items:flex-start}.notice-good{background:var(--good-tint);color:var(--good)}.notice-bad{background:var(--bad-tint);color:var(--bad)}.notice-sea{background:var(--sea-wash);color:var(--sea-deep)}.skeleton{background:linear-gradient(100deg,var(--sand) 30%,var(--sand-deep) 50%,var(--sand) 70%);background-size:200% 100%;animation:shimmer 1.3s infinite linear;border-radius:var(--r-panel)}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.sk-card{height:250px}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.rise{animation:rise .34s var(--ease) both}@media (prefers-reduced-motion: reduce){*{animation-duration:.001ms!important;transition-duration:.001ms!important}}.toast{position:fixed;bottom:1.4rem;left:50%;transform:translate(-50%);z-index:60;background:var(--ink);color:var(--cream);padding:.7rem 1.15rem;border-radius:999px;box-shadow:var(--shadow-lg);font-size:.92rem;animation:rise .22s var(--ease) both}
