/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-outline-style:solid;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-sm:24rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--shadow-sm:var(--shadow-sm);--shadow-md:var(--shadow-md);--shadow-lg:var(--shadow-lg);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-sm:8px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{box-sizing:border-box;border-color:hsl(var(--border))}body{background:hsl(var(--background));color:hsl(var(--foreground));-webkit-font-smoothing:antialiased;margin:0;font-family:Inter,Avenir Next,Arial,sans-serif;font-size:14px}button,input,textarea,select{font:inherit}button,a,input,textarea,select{outline:none}button,a{touch-action:manipulation}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid hsl(var(--ring));outline-offset:3px}button{cursor:pointer}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}label{margin-bottom:8px;font-size:14px;font-weight:500;display:block}input,textarea,select{background:hsl(var(--card));width:100%;color:hsl(var(--card-foreground));border:1px solid hsl(var(--input));border-radius:calc(var(--radius) - 2px);padding:12px 16px}input::placeholder,textarea::placeholder{color:hsl(var(--muted-foreground))}input[aria-invalid=true]{border-color:hsl(var(--destructive))}button:disabled{cursor:not-allowed}}@layer components;@layer utilities{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.static{position:static}.mt-0{margin-top:0}.mt-1{margin-top:var(--spacing)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.block{display:block}.contents{display:contents}.flex{display:flex}.inline{display:inline}.h-5{height:calc(var(--spacing) * 5)}.h-11{height:calc(var(--spacing) * 11)}.h-12{height:calc(var(--spacing) * 12)}.h-80{height:calc(var(--spacing) * 80)}.h-full{height:100%}.w-5{width:calc(var(--spacing) * 5)}.w-11{width:calc(var(--spacing) * 11)}.w-12{width:calc(var(--spacing) * 12)}.w-full{width:100%}.max-w-sm{max-width:var(--container-sm)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:0}.flex-1{flex:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:var(--spacing)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius)}.border{border-style:var(--tw-border-style);border-width:1px}.border-border{border-color:hsl(var(--border))}.border-input{border-color:hsl(var(--input))}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab, red, red)){.bg-black\/50{background-color:color-mix(in oklab, var(--color-black) 50%, transparent)}}.bg-card{background-color:hsl(var(--card))}.bg-ink-foreground\/10{background-color:hsl(var(--ink-foreground))}@supports (color:color-mix(in lab, red, red)){.bg-ink-foreground\/10{background-color:color-mix(in oklab, hsl(var(--ink-foreground)) 10%, transparent)}}.bg-muted{background-color:hsl(var(--muted))}.bg-primary{background-color:hsl(var(--primary))}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.py-1{padding-block:var(--spacing)}.text-center{text-align:center}.text-left{text-align:left}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[11px\]{font-size:11px}.leading-none{--tw-leading:1;line-height:1}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.text-destructive{color:hsl(var(--destructive))}.text-foreground{color:hsl(var(--foreground))}.text-ink-foreground\/70{color:hsl(var(--ink-foreground))}@supports (color:color-mix(in lab, red, red)){.text-ink-foreground\/70{color:color-mix(in oklab, hsl(var(--ink-foreground)) 70%, transparent)}}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-snap{color:hsl(var(--snap))}.text-success{color:hsl(var(--success))}.text-white{color:var(--color-white)}.text-white\/70{color:#ffffffb3}@supports (color:color-mix(in lab, red, red)){.text-white\/70{color:color-mix(in oklab, var(--color-white) 70%, transparent)}}.text-white\/80{color:#fffc}@supports (color:color-mix(in lab, red, red)){.text-white\/80{color:color-mix(in oklab, var(--color-white) 80%, transparent)}}.opacity-70{opacity:.7}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}:root{--background:0 0% 4%;--foreground:220 20% 98%;--card:224 24% 8%;--card-foreground:220 20% 98%;--popover:224 24% 9%;--popover-foreground:220 20% 98%;--primary:224 85% 58%;--primary-foreground:0 0% 100%;--secondary:224 18% 14%;--secondary-foreground:220 20% 98%;--muted:224 18% 12%;--muted-foreground:220 12% 64%;--accent:224 65% 18%;--accent-foreground:220 95% 92%;--destructive:353 72% 55%;--destructive-foreground:0 0% 100%;--success:153 65% 45%;--success-foreground:0 0% 100%;--warning:34 90% 45%;--warning-foreground:0 0% 100%;--info:224 85% 58%;--info-foreground:0 0% 100%;--border:224 16% 16%;--input:224 16% 22%;--ring:224 85% 58%;--snap:353 82% 60%;--chat:224 85% 58%;--ink:0 0% 2%;--ink-foreground:0 0% 100%;--overlay:0 0% 0%;--pink:348 35% 24%;--mint:157 35% 22%;--lavender:224 45% 26%;--sand:35 30% 22%;--peach:18 35% 22%;--draw-white:0 0% 100%;--draw-red:353 84% 55%;--draw-yellow:224 85% 58%;--draw-blue:210 95% 65%;--draw-black:0 0% 10%;--radius:1rem;--shadow-sm:0 2px 4px #0000004d;--shadow-md:0 6px 24px #00000080;--shadow-lg:0 16px 64px #000000b3;--transition-fast:.15s ease;--transition:.2s ease;--transition-smooth:.3s ease}.dark{--background:0 0% 4%;--foreground:220 20% 98%;--card:224 24% 8%;--card-foreground:220 20% 98%;--popover:224 24% 9%;--popover-foreground:220 20% 98%;--primary:224 85% 58%;--primary-foreground:0 0% 100%;--secondary:224 18% 14%;--secondary-foreground:220 20% 98%;--muted:224 18% 12%;--muted-foreground:220 12% 64%;--accent:224 65% 18%;--accent-foreground:220 95% 92%;--destructive:353 72% 55%;--destructive-foreground:0 0% 100%;--success:153 65% 45%;--success-foreground:0 0% 100%;--warning:34 90% 45%;--warning-foreground:0 0% 100%;--info:224 85% 58%;--info-foreground:0 0% 100%;--border:224 16% 16%;--input:224 16% 22%;--ring:224 85% 58%;--snap:353 82% 60%;--chat:224 85% 58%;--ink:0 0% 2%;--ink-foreground:0 0% 100%;--overlay:0 0% 0%;--pink:348 35% 24%;--mint:157 35% 22%;--lavender:224 45% 26%;--sand:35 30% 22%;--peach:18 35% 22%;--draw-white:0 0% 100%;--draw-red:353 84% 55%;--draw-yellow:224 85% 58%;--draw-blue:210 95% 65%;--draw-black:0 0% 10%}.button{white-space:nowrap;min-height:44px;transition:background var(--transition-fast), transform var(--transition-fast), box-shadow var(--transition-fast);border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:12px 20px;font-weight:600;display:inline-flex}.button:hover:not(:disabled){box-shadow:none;transform:none}.button:active:not(:disabled){transform:scale(.98)}.button:disabled{opacity:.5}.button-primary{background:hsl(var(--primary));color:hsl(var(--primary-foreground))}.button-secondary{background:hsl(var(--secondary));color:hsl(var(--secondary-foreground))}.button-ghost{color:hsl(var(--foreground));background:0 0}.button-ghost:hover:not(:disabled){background:hsl(var(--muted));box-shadow:none}.button-destructive{background:hsl(var(--destructive));color:hsl(var(--destructive-foreground))}.icon-button{min-width:44px;padding:12px}.card{background:hsl(var(--card));color:hsl(var(--card-foreground));border:1px solid hsl(var(--border));border-radius:var(--radius);box-shadow:var(--shadow-sm)}.brand{letter-spacing:-1px;align-items:center;gap:8px;font-size:20px;font-weight:800;display:flex}.brand-icon{background:hsl(var(--primary));width:36px;height:36px;color:hsl(var(--primary-foreground));border-radius:50%;place-items:center;display:grid}.app-header{background:hsl(var(--card));height:64px;color:hsl(var(--card-foreground));border-bottom:1px solid hsl(var(--border));justify-content:space-between;align-items:center;gap:16px;padding:0 24px;display:flex}.desktop-nav{display:none}.nav-link{border-radius:calc(var(--radius) - 2px);color:hsl(var(--muted-foreground));transition:var(--transition-fast);align-items:center;gap:8px;padding:12px 20px;font-weight:500;display:flex}.nav-link:hover{background:hsl(var(--secondary));color:hsl(var(--secondary-foreground))}.nav-link.active{background:hsl(var(--primary));color:hsl(var(--primary-foreground));font-weight:600}.header-actions{align-items:center;gap:12px;display:flex}.header-divider{background:hsl(var(--border));width:1px;height:28px}.app-main{max-width:1200px;margin:0 auto;padding:16px 24px 96px}.page-heading{justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.eyebrow{letter-spacing:2px;text-transform:uppercase;color:hsl(var(--muted-foreground));align-items:center;gap:8px;margin-bottom:12px;font-size:11px;font-weight:600;display:flex}.page-title{letter-spacing:-.5px;font-size:24px;font-weight:700;line-height:32px}.page-subtitle{color:hsl(var(--muted-foreground));margin-top:4px;font-size:12px;line-height:20px}.connection-chip{border:1px solid hsl(var(--border));background:hsl(var(--card));color:hsl(var(--card-foreground));border-radius:999px;align-items:center;gap:8px;padding:8px 12px;font-size:12px;display:flex}.status-dot{background:hsl(var(--success));border-radius:50%;width:7px;height:7px}.chat-workspace{height:calc(100dvh - 192px - env(safe-area-inset-bottom));border:1px solid hsl(var(--border));background:hsl(var(--card));min-height:360px;color:hsl(var(--card-foreground));box-shadow:none;border-radius:12px;grid-template-columns:320px minmax(0,1fr);display:grid;overflow:hidden}.chat-list{border-right:1px solid hsl(var(--border));flex-direction:column;min-height:0;display:flex}.list-heading{justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.list-search{padding:0 16px 12px}.search-field{position:relative}.search-field>svg{color:hsl(var(--muted-foreground));position:absolute;top:50%;left:14px;transform:translateY(-50%)}.search-field input{background:hsl(var(--muted));border-color:#0000;border-radius:999px;padding:12px 12px 12px 40px;font-size:14px}.chat-tap-hint{color:hsl(var(--muted-foreground));padding:0 16px 8px;font-size:12px}.chat-scroll{flex:1;padding:0;overflow:auto}.friend-row{border:1px solid #0000;border-bottom:1px solid hsl(var(--border));text-align:left;width:100%;transition:var(--transition-fast);background:0 0;border-radius:0;align-items:center;gap:12px;margin:0;padding:16px;display:flex}.friend-row:hover{background:hsl(var(--muted))}.friend-row.selected{background:hsl(var(--muted));color:hsl(var(--foreground));border-color:hsl(var(--border))}.avatar{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex;position:relative}.avatar-sm{width:36px;height:36px;font-size:21px}.avatar-md{width:48px;height:48px;font-size:28px}.avatar-lg{width:64px;height:64px;font-size:38px}.avatar-xl{width:88px;height:88px;font-size:52px}.tone-0{background:hsl(var(--pink))}.tone-1{background:hsl(var(--mint))}.tone-2{background:hsl(var(--lavender))}.tone-3{background:hsl(var(--sand))}.tone-4{background:hsl(var(--peach))}.online-dot{border:3px solid hsl(var(--card));background:hsl(var(--success));border-radius:50%;width:12px;height:12px;position:absolute;bottom:1px;right:0}.row-subtitle{color:hsl(var(--muted-foreground));align-items:center;gap:6px;margin-top:6px;font-size:12px;display:flex}.row-time{color:hsl(var(--muted-foreground));align-self:flex-start;margin-top:8px;font-size:12px}.snap-square{border:2px solid hsl(var(--snap));width:10px;height:10px}.chat-square{background:hsl(var(--chat));border-radius:2px;width:10px;height:10px}.list-footer{border-top:1px solid hsl(var(--border));color:hsl(var(--muted-foreground));align-items:center;gap:8px;padding:16px 20px;font-size:12px;display:flex}.conversation{flex-direction:column;min-height:0;display:flex;position:relative}.conversation-header{border-bottom:1px solid hsl(var(--border));justify-content:space-between;align-items:center;gap:16px;padding:12px 16px;display:flex}.conversation-body{background-image:none;flex:1;padding:16px 24px;overflow:auto}.conversation-welcome{flex-direction:column;align-items:center;gap:12px;margin:4px 0 24px;display:flex}.date-rule{color:hsl(var(--muted-foreground));letter-spacing:1.5px;text-transform:uppercase;align-items:center;gap:16px;margin:24px 0;font-size:10px;font-weight:600;display:flex}.date-rule:before,.date-rule:after{content:"";background:hsl(var(--border));flex:1;height:1px}.message-group{align-items:flex-end;gap:12px;margin-bottom:20px;display:flex}.message-group.outgoing{flex-direction:row-reverse}.message-bubble{background:hsl(var(--muted));color:hsl(var(--foreground));white-space:pre-wrap;overflow-wrap:anywhere;border-radius:16px 16px 16px 4px;max-width:400px;padding:10px 14px;line-height:20px}.outgoing .message-bubble{background:hsl(var(--accent));color:hsl(var(--accent-foreground));border-radius:16px 16px 4px}.message-meta{color:hsl(var(--muted-foreground));align-items:center;gap:8px;margin:6px 4px 0;font-size:12px;display:flex}.outgoing .message-meta{justify-content:flex-end}.snap-message{border:1px solid hsl(var(--snap));background:hsl(var(--snap) / .12);width:auto;max-width:100%;color:hsl(var(--foreground));text-align:left;border-radius:12px;align-items:center;gap:8px;padding:10px 12px;font-weight:600;display:inline-flex}.snap-message svg{color:hsl(var(--snap));flex-shrink:0}.snap-message.is-opened{border-color:hsl(var(--border));background:hsl(var(--muted));color:hsl(var(--muted-foreground))}.snap-message.is-opened svg{color:hsl(var(--muted-foreground))}.composer-wrap{border-top:1px solid hsl(var(--border));padding:12px 16px}.composer{border:1px solid hsl(var(--border));background:hsl(var(--card));color:hsl(var(--card-foreground));border-radius:999px;align-items:center;gap:8px;padding:6px;display:flex}.composer input{background:0 0;border:none;min-width:0;padding:10px 8px}.composer .button{border-radius:999px}.privacy-caption{text-align:center;color:hsl(var(--muted-foreground));justify-content:center;align-items:center;gap:6px;margin-top:8px;font-size:12px;line-height:16px;display:flex}.bottom-nav{z-index:40;background:hsl(var(--card));color:hsl(var(--card-foreground));border-top:1px solid hsl(var(--border));padding:8px 16px calc(8px + env(safe-area-inset-bottom));justify-content:center;gap:32px;display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-nav .nav-link{border-radius:0;flex-direction:column;gap:4px;min-width:80px;padding:8px 16px;font-size:12px}.bottom-nav .nav-link.active{color:hsl(var(--foreground));background:0 0}.bottom-nav .nav-link.active svg{background:hsl(var(--primary));color:hsl(var(--primary-foreground));outline:6px solid hsl(var(--primary));border-radius:8px}.empty-state{text-align:center;flex-direction:column;align-items:center;gap:16px;padding:48px 24px;display:flex}.empty-icon{background:hsl(var(--muted));width:64px;height:64px;color:hsl(var(--muted-foreground));border-radius:50%;place-items:center;display:grid}.dialog-overlay{background:hsl(var(--overlay) / .75);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:60;animation:fade-in var(--transition);position:fixed;inset:0}.dialog-content{z-index:61;background:hsl(var(--popover));width:calc(100% - 32px);max-width:440px;max-height:90dvh;color:hsl(var(--popover-foreground));border:1px solid hsl(var(--border));border-radius:calc(var(--radius) + 4px);box-shadow:var(--shadow-lg);animation:fade-in var(--transition);padding:28px;position:fixed;top:50%;left:50%;overflow:auto;transform:translate(-50%,-50%)}.auth-tabs{gap:8px;margin:24px 0;display:flex}.auth-tabs .button{flex:1}.google-mark{font-size:18px;font-weight:700}.inline-success{background:hsl(var(--success) / .1);color:hsl(var(--success));border-radius:var(--radius);justify-content:center;align-items:center;gap:12px;padding:16px;display:flex}.toast{bottom:calc(104px + env(safe-area-inset-bottom));z-index:80;background:hsl(var(--popover));width:max-content;max-width:calc(100% - 32px);color:hsl(var(--popover-foreground));border:1px solid hsl(var(--border));border-radius:var(--radius);box-shadow:var(--shadow-lg);align-items:center;gap:12px;padding:12px 12px 12px 20px;display:flex;position:fixed;left:50%;transform:translate(-50%)}.toast-success>svg{color:hsl(var(--success))}.toast-error>svg{color:hsl(var(--destructive))}.data-error{border:1px solid hsl(var(--destructive) / .3);background:hsl(var(--card));color:hsl(var(--card-foreground));border-radius:var(--radius);justify-content:space-between;align-items:center;gap:12px;margin-bottom:24px;padding:12px 16px;display:flex}.section-label{letter-spacing:-.3px;margin-bottom:8px;font-size:16px;font-weight:600}.friend-grid{grid-template-columns:1fr;gap:0;display:grid}.profile-card{border:0;border-bottom:1px solid hsl(var(--border));box-shadow:none;text-align:left;border-radius:0;grid-template-columns:48px minmax(0,1fr) auto;grid-template-areas:"avatar name action""avatar status action";align-items:center;gap:4px 16px;padding:16px 0;display:grid}.profile-card:hover{box-shadow:none;transform:none}.profile-card>.avatar{grid-area:avatar;width:48px;height:48px;font-size:28px}.profile-card>h3{grid-area:name}.profile-card>div.text-xs{grid-area:status}.profile-card>.button{grid-area:action;width:auto;margin:0;padding:8px 16px}.profile-card>.button-ghost{grid-area:auto/2/auto/4;justify-self:end}.profile-details{text-align:center;flex-direction:column;align-items:center;gap:16px;margin-top:24px;display:flex}.profile-facts{grid-template-columns:1fr 1fr;gap:12px;width:100%;display:grid}.profile-facts>div{background:hsl(var(--muted));border-radius:var(--radius);padding:16px}.settings-row{border-bottom:1px solid hsl(var(--border));justify-content:space-between;align-items:center;gap:16px;padding:20px 0;display:flex}.camera-layout{grid-template-columns:1fr;gap:16px;display:grid}.camera-layout.is-editing{grid-template-columns:minmax(0,1fr) 320px}.camera-stage{aspect-ratio:3/4;background:hsl(var(--ink));width:100%;max-width:480px;color:hsl(var(--ink-foreground));border-radius:16px;margin:0 auto;position:relative;overflow:hidden}.camera-video,.editing-canvas{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.editing-canvas{touch-action:none}.camera-placeholder{text-align:center;background:radial-gradient(ellipse at 50% 30%, hsl(var(--ink-foreground) / .07), transparent 65%);flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:24px;display:flex;position:absolute;inset:0}.camera-top{z-index:2;justify-content:space-between;align-items:center;display:flex;position:absolute;top:20px;left:20px;right:20px}.camera-chip{background:hsl(var(--overlay) / .65);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:hsl(var(--ink-foreground));border-radius:999px;align-items:center;gap:8px;padding:8px 12px;font-size:12px;display:flex}.camera-bottom{z-index:2;justify-content:center;align-items:center;gap:28px;display:flex;position:absolute;bottom:24px;left:24px;right:24px}.shutter{background:hsl(var(--draw-white));border:5px solid hsl(var(--ink));outline:3px solid hsl(var(--draw-white));width:76px;height:76px;box-shadow:var(--shadow-sm);transition:var(--transition-fast);border-radius:50%}.shutter:active{transform:scale(.92)}.shutter:disabled{opacity:.4}.camera-dark-button{background:hsl(var(--overlay) / .65);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:hsl(var(--ink-foreground));border-radius:50%}.camera-dark-button:hover:not(:disabled){background:hsl(var(--overlay) / .85)}.camera-guide{height:fit-content;box-shadow:none;padding:20px}.tool-tabs{gap:8px;margin:12px 0;display:flex}.tool-tabs .button{flex:1;padding:12px}.swatches{gap:16px;margin-top:12px;display:flex}.swatch{border:2px solid hsl(var(--border));border-radius:50%;width:32px;height:32px;padding:0}.swatch.selected{outline:2px solid hsl(var(--ring));outline-offset:3px}.snap-viewer{max-width:520px}.snap-full-image{object-fit:contain;background:hsl(var(--ink));border-radius:var(--radius);width:100%;height:auto;max-height:65dvh;margin-top:20px}.call-panel{bottom:calc(104px + env(safe-area-inset-bottom));z-index:55;background:hsl(var(--card));width:320px;color:hsl(var(--card-foreground));border:1px solid hsl(var(--border));border-radius:calc(var(--radius) + 4px);box-shadow:var(--shadow-lg);text-align:center;padding:24px;position:fixed;right:28px}.call-panel .avatar{margin:0 auto 16px}.call-controls{justify-content:center;align-items:center;gap:12px;margin-top:24px;display:flex}.call-video-modal{z-index:70;background:hsl(var(--overlay) / .85);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.call-video-container{background:hsl(var(--ink));width:100%;max-width:640px;height:min(84dvh,720px);color:hsl(var(--ink-foreground));border:1px solid hsl(var(--border));border-radius:24px;flex-direction:column;display:flex;position:relative;overflow:hidden;box-shadow:0 25px 50px -12px #000000b3}.call-remote-video{object-fit:cover;background:hsl(var(--ink));width:100%;height:100%}.call-video-placeholder{background:radial-gradient(circle at center, hsl(var(--card)), hsl(var(--background)));z-index:5;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.call-local-pip{border:2px solid hsl(var(--primary));background:hsl(var(--card));z-index:10;border-radius:14px;width:110px;height:150px;position:absolute;top:16px;right:16px;overflow:hidden;box-shadow:0 10px 25px #00000080}.call-local-video{object-fit:cover;width:100%;height:100%;transform:scaleX(-1)}.call-video-header{z-index:10;background:hsl(var(--overlay) / .65);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid hsl(var(--border) / .4);color:hsl(var(--ink-foreground));border-radius:999px;align-items:center;gap:12px;padding:8px 14px;display:flex;position:absolute;top:16px;left:16px}.call-video-footer{z-index:10;flex-direction:column;align-items:center;gap:12px;display:flex;position:absolute;bottom:24px;left:0;right:0}.call-video-controls{background:hsl(var(--overlay) / .75);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid hsl(var(--border) / .5);border-radius:999px;justify-content:center;align-items:center;gap:14px;padding:10px 20px;display:flex}.app-footer{color:hsl(var(--muted-foreground));justify-content:center;align-items:center;gap:16px;padding:16px 0 0;font-size:12px;display:flex}.back-mobile{display:none}.friends-toolbar{justify-content:space-between;align-items:center;gap:16px;margin:16px 0;display:flex}.friends-toolbar .search-field{width:100%;max-width:360px}.profile-page{max-width:680px;margin:0 auto}.profile-page-card{box-shadow:none;border-radius:12px;padding:32px}.profile-page-card>.avatar{margin:0 auto}.info-note{border:1px solid hsl(var(--border));border-radius:var(--radius);color:hsl(var(--muted-foreground));margin-top:24px;padding:16px;font-size:12px;line-height:20px}.scroll-recipient-list{max-height:280px;margin-top:20px;overflow:auto}.recipient-row{border:1px solid hsl(var(--border));background:hsl(var(--card));width:100%;color:hsl(var(--card-foreground));border-radius:12px;align-items:center;gap:12px;margin-bottom:8px;padding:12px;display:flex}.recipient-row.selected{background:hsl(var(--accent));color:hsl(var(--accent-foreground));border-color:hsl(var(--ring))}.count-pill{background:hsl(var(--muted));color:hsl(var(--muted-foreground));border-radius:999px;padding:4px 10px;font-size:12px}.friends-tabs{flex-wrap:wrap;gap:8px;display:flex}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@media (width<=767px){.app-header{height:60px;padding:0 12px}.app-main{padding:12px 12px 96px}.bottom-nav{justify-content:space-around;gap:0;padding-left:4px;padding-right:4px}.bottom-nav .nav-link{min-width:64px;padding:8px 12px}.chat-workspace{height:calc(100dvh - 156px - env(safe-area-inset-bottom));border:0;border-radius:0;min-height:320px;display:block}.chat-list,.conversation{height:100%}.chat-list{border-right:none}.chat-workspace.has-selection .chat-list,.chat-workspace:not(.has-selection) .conversation{display:none}.back-mobile{display:inline-flex}.conversation-body{padding:12px}.conversation-header{padding:8px 0}.composer-wrap{padding:12px 0}.message-bubble{max-width:min(280px,75vw);font-size:14px}.friends-toolbar{flex-direction:column;align-items:stretch;gap:12px}.friends-toolbar .search-field{max-width:none}.friends-tabs{gap:4px}.friends-tabs .button{padding:8px 12px}.camera-layout.is-editing{grid-template-columns:1fr}.camera-stage{max-width:100%}.camera-guide{padding:16px}.profile-card>.button{padding:8px 12px}.app-footer{align-items:center}.call-panel{width:auto;left:16px;right:16px;bottom:calc(96px + env(safe-area-inset-bottom))}.call-video-container{border-radius:16px;height:90dvh}.call-local-pip{width:90px;height:120px}}.phone-shell{background:hsl(var(--background));width:min(100%,432px);min-height:100dvh;color:hsl(var(--foreground));border-inline:1px solid hsl(var(--border));margin:0 auto}.phone-shell .app-header{height:calc(60px + env(safe-area-inset-top));padding:env(safe-area-inset-top) 12px 0}.phone-shell .app-main{padding:12px 12px 96px}.phone-shell .bottom-nav{justify-content:space-around;gap:0;width:min(100%,432px);padding-inline:4px;left:50%;right:auto;transform:translate(-50%)}.phone-shell .bottom-nav .nav-link{flex:1;min-width:0;padding:8px}.phone-shell .chat-workspace{height:calc(100dvh - 168px - env(safe-area-inset-top) - env(safe-area-inset-bottom));border:0;border-radius:0;min-height:320px;display:block}.phone-shell .chat-list,.phone-shell .conversation{height:100%}.phone-shell .chat-list{border-right:0}.phone-shell .chat-workspace.has-selection .chat-list,.phone-shell .chat-workspace:not(.has-selection) .conversation{display:none}.phone-shell .back-mobile{display:inline-flex}.phone-shell .conversation-header{gap:4px;padding:8px 0}.phone-shell .conversation-header .avatar{width:36px;height:36px;font-size:20px}.phone-shell .conversation-header .icon-button{min-width:36px;padding:8px}.phone-shell .conversation-body{padding:12px}.phone-shell .composer-wrap{padding:12px 0}.phone-shell .message-bubble{overflow-wrap:anywhere;max-width:min(272px,65vw)}.phone-shell .message-group>div:not(.avatar){min-width:0}.phone-shell .snap-message{max-width:min(248px,65vw)}.phone-shell .friends-toolbar{flex-direction:column;align-items:stretch;gap:12px}.phone-shell .friends-toolbar .search-field{max-width:none}.phone-shell .friends-tabs{gap:4px}.phone-shell .friends-tabs .button{padding:8px 12px}.phone-shell .page-heading{flex-wrap:wrap;gap:8px}.phone-shell .profile-card{column-gap:8px}.phone-shell .profile-card>.flex{grid-column:2/4;justify-content:flex-start;margin-top:8px}.phone-shell .profile-page-card{padding:16px}.phone-shell .settings-row{flex-wrap:wrap}.phone-shell .camera-layout.is-editing{grid-template-columns:1fr}.phone-shell .camera-stage{border-radius:12px;max-width:100%}.phone-shell .camera-guide{padding:16px}.phone-shell .camera-top{top:12px;left:12px;right:12px}.phone-shell .camera-bottom{gap:24px;left:16px;right:16px}.dialog-content{max-width:400px;padding:20px}.snap-viewer{width:min(100%,432px);height:100dvh;max-height:100dvh;padding:calc(16px + env(safe-area-inset-top)) 12px calc(16px + env(safe-area-inset-bottom));background:hsl(var(--ink));color:hsl(var(--ink-foreground));border-radius:0;flex-direction:column;display:flex}.snap-photo-dismiss{background:0 0;border:0;flex:1;width:100%;min-height:0;padding:0}.snap-viewer .snap-full-image{object-fit:contain;border-radius:0;height:100%;max-height:none;margin-top:0}.snap-viewer .snap-photo-dismiss{margin-top:8px}.snap-viewer .snap-full-image{width:100%}.snap-viewer [data-radix-dialog-description]{font-size:12px}.snap-viewer .snap-photo-dismiss+p{padding-bottom:8px}.call-video-container{max-width:432px}.phone-shell .call-panel{width:min(100% - 32px,400px);left:50%;right:auto;transform:translate(-50%)}.toast{max-width:min(100% - 32px,400px)}.phone-shell .camera-layout.is-editing{display:block}.phone-shell .camera-layout.is-editing .camera-stage{width:min(100%,52dvh);margin-inline:auto}.phone-shell .camera-layout.is-editing .camera-top .camera-chip{display:none}.snap-edit-tools{z-index:3;flex-direction:column;gap:8px;display:flex;position:absolute;top:56px;right:12px}.snap-edit-tools .button{width:44px;height:44px}.snap-edit-tools .button[aria-pressed=true]{background:hsl(var(--primary));color:hsl(var(--primary-foreground))}.snap-edit-panel{z-index:3;background:hsl(var(--overlay) / .8);color:hsl(var(--ink-foreground));border-radius:16px;align-items:center;gap:8px;padding:12px;display:flex;position:absolute;bottom:92px;left:12px;right:68px}.snap-edit-panel label{white-space:nowrap;margin:0;font-size:12px}.snap-edit-panel input{background:hsl(var(--ink));min-width:0;color:hsl(var(--ink-foreground));padding:8px}.snap-edit-panel .button{min-height:36px;padding:8px;font-size:12px}.snap-draw-panel{flex-wrap:wrap;justify-content:space-between;right:12px}.snap-draw-panel .swatches{gap:12px;margin:0}.snap-send-dock{z-index:3;color:hsl(var(--ink-foreground));text-shadow:0 1px 4px hsl(var(--overlay));justify-content:space-between;align-items:center;gap:8px;font-size:12px;display:flex;position:absolute;bottom:12px;left:12px;right:12px}.snap-send-dock .button{box-shadow:var(--shadow-md);flex-shrink:0}@media (width<=350px){.snap-text-panel{flex-wrap:wrap;right:12px}.snap-send-dock>span{display:none}.snap-send-dock{justify-content:flex-end}}.phone-shell .message-group,.phone-shell .message-group.outgoing{flex-direction:row;align-items:flex-start;gap:8px;margin-bottom:12px}.phone-shell .chat-message-content{flex:1;min-width:0}.phone-shell .message-group .avatar{width:32px;height:32px;font-size:18px}.phone-shell .chat-message-name{margin-bottom:4px;font-size:12px;font-weight:700}.phone-shell .chat-message-name span{color:hsl(var(--muted-foreground));margin-left:4px;font-weight:400}.phone-shell .chat-line{align-items:flex-start;gap:4px;display:flex}.phone-shell .chat-line.is-saved{background:hsl(var(--accent));border-radius:8px}.phone-shell .message-bubble,.phone-shell .outgoing .message-bubble{max-width:none;color:hsl(var(--foreground));background:0 0;border-radius:0;flex:1;padding:0 4px 0 0;line-height:20px}.phone-shell .save-chat-button{min-width:36px;min-height:32px;color:hsl(var(--muted-foreground));flex-shrink:0;padding:6px}.phone-shell .is-saved .save-chat-button{color:hsl(var(--primary))}.phone-shell .message-meta,.phone-shell .outgoing .message-meta{justify-content:flex-start;margin:2px 0 0;font-size:12px}.phone-shell .snap-message,.phone-shell .snap-message.is-opened{color:hsl(var(--muted-foreground));background:0 0;border:0;border-radius:0;padding:4px 0;font-size:13px}.phone-shell .snap-message.is-new{color:hsl(var(--snap))}.phone-shell .snap-status-shape{border:2px solid hsl(var(--snap));border-radius:2px;flex-shrink:0;width:14px;height:14px;display:inline-block}.phone-shell .snap-message.is-new .snap-status-shape{background:hsl(var(--snap))}.phone-shell .snap-message.is-opened .snap-status-shape{border-color:hsl(var(--muted-foreground))}.phone-shell .friend-row{padding:12px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto;transition:none;animation:none}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}
