:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--surface:#fff;--surface-muted:#f1f1f1;--border-strong:#ccc;--text-soft:#555;--text-muted:#888;--primary:#2b6cb0;--primary-solid:#2b6cb0;--primary-soft:#eef4ff;--bubble-mine:#d7e9ff;--banner-bg:#fff8dc;--banner-border:#f0d264;--success:#2a7;--success-solid:#2a7;--error:#d33;--danger:#c0392b;--danger-solid:#c0392b;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:16px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px;--surface:#1f2028;--surface-muted:#262833;--border-strong:#3d3f4b;--text-soft:#c3c7d1;--text-muted:#98a0ab;--primary:#7cb1ea;--primary-soft:#1c2a3d;--bubble-mine:#1d3450;--banner-bg:#322d18;--banner-border:#6b5c22;--success:#4cc38a;--error:#ff7b72;--danger:#e5756a}#social .button-icon{filter:invert()brightness(2)}}body{margin:0}#root{text-align:center;border-inline:1px solid var(--border);box-sizing:border-box;flex-direction:column;width:100%;max-width:360px;min-height:100svh;margin:0 auto;display:flex}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-1.68px;margin:20px 0;font-size:36px}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:20px;line-height:118%}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}.chat-page{max-width:560px;margin:40px auto;padding:0 16px}.chat-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.chat-create{flex-direction:column;gap:8px;margin-bottom:16px;display:flex}.chat-create input,.chat-create select,.room-edit input,.room-edit select{border:1px solid var(--border-strong);border-radius:6px;padding:10px 12px;font-size:15px}.chat-create-row{gap:8px;display:flex}.chat-create-row select,.chat-create-row input{flex:1}.chat-new-link{border:1px solid var(--primary);color:var(--primary);text-align:center;border-radius:6px;margin-bottom:12px;padding:10px;font-size:15px;text-decoration:none;display:block}.chat-new-link:hover{background:var(--primary-soft)}.chat-filter{flex-direction:column;gap:8px;margin-bottom:16px;display:flex}.chat-filter input{border:1px solid var(--border-strong);border-radius:6px;padding:10px 12px;font-size:15px}.chat-filter-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.chat-chip{border:1px solid var(--border-strong);background:var(--surface);cursor:pointer;border-radius:14px;padding:4px 12px;font-size:13px}.chat-chip.active{background:var(--primary-solid);border-color:var(--primary-solid);color:#fff}.chat-sort{color:var(--text-soft);cursor:pointer;background:0 0;border:none;margin-left:auto;padding:4px 10px;font-size:13px}.chat-room-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.chat-room-list li{border:1px solid var(--border-strong);text-align:left;border-radius:8px;justify-content:space-between;align-items:center;padding-right:10px;display:flex}.chat-room-list .room-row{min-width:0;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;flex:1;justify-content:space-between;align-items:center;gap:8px;padding:12px 0 12px 14px;display:flex}.chat-room-list .room-row:disabled{cursor:default;opacity:.6}.chat-room-list .count{color:var(--text-muted);white-space:nowrap;font-size:14px}.room-info{text-align:left;min-width:0;display:block}.room-category{background:var(--primary-soft);color:var(--primary);border-radius:10px;margin-right:8px;padding:2px 8px;font-size:12px;display:inline-block}.room-name-line{align-items:center;min-width:0;display:flex}.room-name-line strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.room-name-line .room-category,.room-name-line .unread-badge{white-space:nowrap;flex-shrink:0}.room-desc{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;margin:4px 0 0;font-size:13px;display:block;overflow:hidden}.room-profile{text-align:left;flex-wrap:wrap;align-items:center;gap:8px;margin:-8px 0 12px;display:flex}.room-profile .room-desc{white-space:normal;margin:0}.room-capacity{color:var(--text-muted);font-size:12px}.room-edit{border:1px solid var(--border-strong);border-radius:8px;flex-direction:column;gap:8px;margin-bottom:12px;padding:12px;display:flex}.room-edit-actions{gap:8px;display:flex}.chat-image-button{cursor:pointer;align-self:center;padding:0 6px;font-size:18px;line-height:1;position:relative}.chat-image-button input,.visually-hidden-text{white-space:nowrap;clip-path:inset(50%);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.chat-image-button:focus-within{outline:2px solid var(--success);outline-offset:2px;border-radius:4px}.chat-image{object-fit:cover;border-radius:6px;max-width:100%;max-height:240px;display:block}.chat-my-rooms h2,.chat-section-title{color:var(--text-soft);text-align:left;border-bottom:1px solid var(--border);margin:16px 0 8px;padding-bottom:4px;font-size:14px}.room-pin{cursor:pointer;opacity:.25;filter:grayscale();background:0 0;border:0;padding:4px;font-size:15px;line-height:1}.room-pin.active{opacity:1;filter:none}.room-pin:disabled{cursor:default}.chat-messages{text-align:left;flex-direction:column;gap:8px;max-height:55vh;margin:16px 0;padding:0;list-style:none;display:flex;overflow-y:auto}.chat-messages li{background:var(--surface-muted);overflow-wrap:anywhere;border-radius:10px;align-self:flex-start;max-width:80%;padding:8px 12px}.chat-messages li.mine{background:var(--bubble-mine);align-self:flex-end}.chat-messages .sender{color:var(--text-muted);align-items:center;gap:6px;margin-bottom:2px;font-size:12px;display:flex}.avatar{object-fit:cover;vertical-align:middle;border-radius:50%;flex-shrink:0;width:22px;height:22px}.avatar-empty{background:var(--surface-muted);justify-content:center;align-items:center;font-size:13px;display:inline-flex}.chat-members .member-name{align-items:center;gap:8px;display:inline-flex}.unread-badge{color:#fff;background:#e5484d;border-radius:10px;justify-content:center;align-items:center;min-width:20px;height:20px;margin-left:6px;padding:0 6px;font-size:12px;font-weight:700;display:inline-flex}.chat-send{gap:8px;display:flex}.chat-send input{border:1px solid var(--border-strong);border-radius:6px;flex:1;padding:10px 12px;font-size:15px}.pin-banner{border:1px solid var(--banner-border);background:var(--banner-bg);text-align:left;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;padding:8px 12px;font-size:13px;display:flex}.pin-banner .pin-content{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.pin-banner button{white-space:nowrap;font-size:12px}.pin-button{opacity:.45;cursor:pointer;background:0 0;border:none;margin-left:6px;padding:0 2px;font-size:12px}.pin-button:hover{opacity:1}.chat-status{color:var(--text-muted);margin:8px 0;font-size:13px}.chat-toolbar{gap:8px;margin-bottom:12px;display:flex}.chat-toolbar button.danger,.member-actions button.danger{color:var(--danger);border-color:var(--danger)}.chat-members{border:1px solid var(--border-strong);text-align:left;border-radius:8px;margin:0 0 12px;padding:0;list-style:none}.chat-members li{justify-content:space-between;align-items:center;gap:8px;padding:8px 12px;display:flex}.chat-members li+li{border-top:1px solid var(--border)}.role-badge{color:var(--primary);margin-left:6px;font-size:12px;font-style:normal}.member-actions{gap:6px;display:flex}.member-actions button{font-size:12px}.auth-page{box-sizing:border-box;max-width:min(400px,100%);margin:60px auto;padding:0 16px}.auth-page h1{margin-bottom:24px}.auth-page section{text-align:left;margin-bottom:32px}.auth-page section h2{margin-bottom:12px;font-size:18px}.auth-form{flex-direction:column;gap:16px;display:flex}.auth-form label{text-align:left;flex-direction:column;gap:6px;font-size:14px;display:flex}.field{text-align:left;flex-direction:column;gap:6px;display:flex}.field label{font-size:14px;display:block}.auth-form input{border:1px solid var(--border-strong);border-radius:6px;padding:10px 12px;font-size:16px}.auth-form input[aria-invalid=true]{border-color:var(--error)}.auth-form button{cursor:pointer;border:none;border-radius:6px;padding:12px;font-size:16px}.auth-form button:disabled{opacity:.6;cursor:default}.field-error{color:var(--error);margin:0;font-size:13px}.submit-error{color:var(--error);margin:0;font-size:14px}.notice{color:var(--success);font-size:14px}.muted-note{color:var(--text-muted);margin:0;font-size:14px}.auth-switch{margin-top:16px;font-size:14px}.auth-form .kakao-login{color:#000000d9;background-color:#fee500}.onboarding-actions{flex-direction:column;gap:12px;margin-top:24px;display:flex}.onboarding-actions button{border:1px solid var(--border-strong);background:var(--surface);cursor:pointer;border-radius:6px;padding:12px;font-size:16px}.onboarding-actions .primary{background:var(--success-solid);border-color:var(--success-solid);color:#fff}.mypage-tabs{border-bottom:1px solid var(--border-strong);gap:4px;margin-bottom:24px;display:flex}.mypage-tabs a{color:var(--text-soft);border-bottom:2px solid #0000;margin-bottom:-1px;padding:8px 14px;font-size:14px;text-decoration:none}.mypage-tabs a.active{color:inherit;border-bottom-color:var(--success);font-weight:600}.mypage-actions{gap:8px;margin-top:16px;display:flex}.mypage-actions a{color:inherit;border:1px solid var(--border-strong);border-radius:6px;padding:8px 14px;font-size:14px;text-decoration:none}.mypage-actions a:hover{background:var(--surface-muted)}.mypage-back{margin:0 0 12px;font-size:14px}.my-info dl{flex-direction:column;gap:8px;margin:0 0 16px;font-size:14px;display:flex}.my-info dl>div{gap:12px;display:flex}.my-info dt{width:64px;color:var(--text-muted)}.my-info dd{margin:0}.profile-photo{align-items:center;gap:16px;margin-bottom:16px;display:flex}.profile-photo img,.profile-photo-placeholder{object-fit:cover;border:1px solid var(--border-strong);border-radius:50%;width:80px;height:80px}.profile-photo-placeholder{background:var(--surface-muted);justify-content:center;align-items:center;font-size:32px;display:flex}.profile-photo-upload{cursor:pointer;font-size:14px;text-decoration:underline;position:relative}.profile-photo-upload input{white-space:nowrap;clip-path:inset(50%);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.profile-photo-upload:focus-within{outline-offset:2px;border-radius:4px;outline:2px solid #4a90d9}.session-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.session-list li{border:1px solid var(--border-strong);border-radius:6px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.session-info{flex-direction:column;gap:4px;display:flex}.session-device{font-size:14px}.session-current{background:var(--success-solid);color:#fff;border-radius:4px;margin-left:8px;padding:2px 6px;font-size:12px}.session-times{color:var(--text-muted);font-size:12px}.session-list button{border:1px solid var(--border-strong);background:var(--surface);cursor:pointer;white-space:nowrap;border-radius:6px;padding:6px 12px;font-size:13px}.session-list button:disabled{opacity:.6;cursor:default}.danger-zone{border-top:1px solid var(--border-strong);padding-top:24px}.danger-link{color:var(--danger);cursor:pointer;background:0 0;border:none;padding:0;font-size:14px;text-decoration:underline}.auth-form button.danger{background:var(--danger-solid);color:#fff}.pet-page{max-width:560px;margin:40px auto;padding:0 16px}.pet-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;display:flex}.pet-header .who{align-items:center;gap:10px;font-size:14px;display:flex}.pet-search-entry{cursor:pointer;text-align:left;margin-bottom:16px}.pet-search-entry__placeholder{color:var(--text);font-size:14px}.pet-nav{justify-content:space-between;margin-bottom:16px;display:flex}.pet-add{display:inline-block}.pet-nav-links{gap:12px;display:flex}.pet-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.pet-list li{border:1px solid var(--border-strong);border-radius:8px}.pet-list li a{text-align:left;color:inherit;align-items:center;gap:12px;padding:12px 14px;text-decoration:none;display:flex}.pet-thumb{object-fit:cover;border-radius:50%;flex-shrink:0;width:44px;height:44px}.pet-thumb-empty{background:var(--surface-muted);justify-content:center;align-items:center;font-size:22px;display:inline-flex}.pet-list li a:hover{text-decoration:underline}.pet-list li .pet-row{text-align:left;width:100%;color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:12px;padding:12px 14px;display:flex}.pet-list li .pet-row:hover{text-decoration:underline}.pet-list li .pet-actions{padding:0 14px 12px}.muted{color:var(--text-muted);font-size:14px}.pet-photo{align-items:center;gap:16px;margin-bottom:16px;display:flex}.pet-photo img,.pet-photo-placeholder{object-fit:cover;border:1px solid var(--border-strong);border-radius:50%;width:96px;height:96px}.pet-photo-placeholder{background:var(--surface-muted);justify-content:center;align-items:center;font-size:40px;display:flex}.pet-photo-upload{cursor:pointer;font-size:14px;text-decoration:underline;position:relative}.pet-photo-upload input{white-space:nowrap;clip-path:inset(50%);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.pet-photo-upload:focus-within{outline-offset:2px;border-radius:4px;outline:2px solid #4a90d9}.pet-detail{border:1px solid var(--border-strong);text-align:left;border-radius:8px;grid-template-columns:96px 1fr;gap:10px 16px;margin:0 0 20px;padding:16px;display:grid}.pet-detail dt{color:var(--text-muted);font-size:14px}.pet-detail dd{margin:0}.pet-actions{gap:8px;display:flex}.pet-actions button.danger{color:var(--danger);border-color:var(--danger)}.search-bar{border:1px solid var(--border);background:var(--bg);border-radius:999px;align-items:center;gap:8px;width:100%;max-width:640px;padding:6px 8px;display:flex}.search-bar:focus-within{outline:2px solid var(--accent);outline-offset:2px}.search-bar__ai-toggle{border:1px solid var(--border);width:36px;height:36px;color:var(--text);cursor:pointer;background:0 0;border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:12px;font-weight:700;transition:background-color .15s,color .15s,border-color .15s;display:inline-flex}.search-bar__ai-toggle:hover{border-color:var(--accent-border)}.search-bar__ai-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.search-bar__ai-toggle--on{background:var(--accent);border-color:var(--accent);color:#fff}.search-bar__input{min-width:0;font:inherit;color:var(--text-h);background:0 0;border:none;outline:none;flex:1}.search-bar__submit{background:var(--code-bg);color:var(--text-h);font:inherit;cursor:pointer;border:none;border-radius:999px;flex:none;padding:8px 16px;font-size:14px;transition:background-color .15s}.search-bar__submit:hover{background:var(--accent-bg)}.search-bar__submit:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.search-bar--compact{gap:6px;padding:4px 6px}.search-bar--compact .search-bar__ai-toggle{width:22px;height:22px;font-size:9px}.search-bar--compact .search-bar__input{font-size:13px}.search-bar--compact .search-bar__submit{padding:4px 10px;font-size:12px}
