@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Syne:wght@400..800&display=swap";:root{--font-heading-family: "Syne", sans-serif;--background: #0d0d0d;--foreground: #ffffff;--card: #181c23;--card-foreground: #ffffff;--primary: #5b7cfa;--primary-foreground: #ffffff;--brand: #4a90e2;--secondary: color-mix(in srgb, var(--primary) 72%, #0a0f18);--muted-foreground: #a8b0bf;--accent-soft: color-mix(in srgb, var(--brand) 22%, var(--card));--destructive: #d4183d;--border: rgba(255, 255, 255, .08);--input-background: #181c23;--ring: var(--primary);--radius: .75rem;--radius-xl: calc(var(--radius) + 4px);--tap: 52px;font-family:Inter,system-ui,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--foreground);background:var(--background)}*,*:before,*:after{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;min-width:320px;background:var(--background);color:var(--foreground)}button,input,textarea{font:inherit;color:inherit}a{color:inherit;text-decoration:none}.app-shell{position:relative;min-height:100dvh;display:flex;justify-content:center;padding:1.5rem 1rem 2.5rem;overflow-x:hidden}.app-shell:before{content:"";pointer-events:none;position:absolute;top:0;right:0;bottom:0;left:0;opacity:.4;background:radial-gradient(ellipse 80% 50% at 50% -20%,color-mix(in srgb,var(--primary) 35%,transparent),transparent 70%)}.page{position:relative;z-index:1;width:min(100%,28rem);display:flex;flex-direction:column;gap:1.25rem}.brand{text-align:center;padding:.5rem .25rem 0}.brand-mark{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-bottom:.65rem}.brand-dot{width:.5rem;height:.5rem;border-radius:999px;background:var(--primary);flex-shrink:0}.brand-wordmark{margin:0;font-family:var(--font-heading-family);font-size:1.5rem;font-weight:800;letter-spacing:-.02em;line-height:1;color:var(--foreground)}.brand-wordmark-dot{color:var(--primary)}.brand-eyebrow{margin:0 0 .75rem;font-size:.7rem;font-weight:600;letter-spacing:.25em;text-transform:uppercase;color:var(--muted-foreground)}.brand-name{margin:0;font-family:var(--font-heading-family);font-size:clamp(1.35rem,5vw,1.75rem);font-weight:700;letter-spacing:-.02em;line-height:1.15;text-transform:uppercase}.brand-place{margin:.45rem 0 0;color:var(--muted-foreground);font-size:.95rem;font-weight:500;line-height:1.4}.panel{background:var(--card);border:1px solid var(--border);border-radius:1rem;box-shadow:0 20px 40px #00000059;padding:1.35rem 1.2rem 1.4rem;display:flex;flex-direction:column;gap:1rem}.panel-error{border-color:color-mix(in srgb,var(--destructive) 45%,var(--border))}.panel-error-inline{color:var(--destructive)}.panel h1{margin:0;font-family:var(--font-heading-family);font-size:1.2rem;font-weight:700;line-height:1.25;text-transform:uppercase;letter-spacing:.02em}.lead{margin:0;color:var(--muted-foreground);font-size:.95rem;line-height:1.5}.loading-pulse{width:2.5rem;height:2.5rem;margin:3rem auto;border-radius:999px;background:color-mix(in srgb,var(--primary) 35%,transparent);animation:pulse 1.2s ease-in-out infinite}.item-list,.restroom-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.65rem}.item-row{display:flex;align-items:center;gap:.85rem;min-height:var(--tap);padding:.75rem .95rem;border:1px solid var(--border);border-radius:var(--radius-xl);background:color-mix(in srgb,var(--card) 70%,#0a0f18);cursor:pointer;transition:border-color .14s ease,background-color .14s ease,transform .12s ease;-webkit-tap-highlight-color:transparent}.item-row:active{transform:scale(.985)}.item-row.is-checked{border-color:color-mix(in srgb,var(--primary) 55%,var(--border));background:var(--accent-soft)}.item-row input{width:1.2rem;height:1.2rem;accent-color:var(--primary);flex-shrink:0}.item-label{font-size:1rem;font-weight:600}.location-kind{font-weight:500;opacity:.7;text-transform:lowercase}.note-field{display:flex;flex-direction:column;gap:.45rem;color:var(--muted-foreground);font-weight:500;font-size:.75rem;letter-spacing:.06em;text-transform:uppercase}.note-field textarea{width:100%;resize:vertical;min-height:5.5rem;padding:.85rem .95rem;border:1px solid var(--border);border-radius:var(--radius-xl);background:var(--input-background);color:var(--foreground);font-size:.95rem;font-weight:400;letter-spacing:normal;text-transform:none}.note-field textarea:focus,.item-row:focus-within{outline:2px solid color-mix(in srgb,var(--ring) 40%,transparent);outline-offset:2px}.message-preview{margin:0;padding:1rem;border-radius:var(--radius-xl);border:1px solid var(--border);background:#0a0f18;color:#e8ecf4;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.85rem;line-height:1.5;white-space:pre-wrap;word-break:break-word;overflow:auto}.actions{display:flex;flex-direction:column;gap:.65rem}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:var(--tap);padding:.75rem 1.15rem;border-radius:999px;border:1px solid transparent;font-weight:600;font-size:.95rem;cursor:pointer;transition:background-color .14s ease,border-color .14s ease,transform .12s ease,opacity .14s ease;-webkit-tap-highlight-color:transparent;box-shadow:0 1px 2px #0003}.btn:active:not(:disabled){transform:scale(.985)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-block{width:100%}.btn-primary{background:var(--primary);color:var(--primary-foreground)}.btn-primary:hover:not(:disabled){background:color-mix(in srgb,var(--primary) 90%,white)}.btn-secondary{background:var(--secondary);border-color:var(--border);color:var(--foreground)}.btn-secondary:hover{background:color-mix(in srgb,var(--secondary) 90%,white);border-color:color-mix(in srgb,var(--primary) 35%,var(--border))}.btn-ghost{background:transparent;border-color:transparent;box-shadow:none;color:var(--muted-foreground)}.btn-ghost:hover{color:var(--foreground)}code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.9em;padding:.1em .35em;border-radius:6px;background:#ffffff0f}.animate-in{animation:rise .28s ease-out both}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:.45;transform:scale(.95)}50%{opacity:1;transform:scale(1)}}@media(prefers-reduced-motion:reduce){.animate-in,.item-row,.btn,.loading-pulse{animation:none;transition:none}}
