:root{--bg:#0f0f10;--surface:#1b1b1d;--border:#2c2a2c;--text:#f5f3f2;--text-muted:#9a9799;--text-faint:#706e6c;--accent:#ec4899;--text-on-accent:#14060d;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--serif:Georgia, serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--text);background:var(--bg);font:16px/1.5 var(--sans);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{background:var(--bg);min-height:100svh;margin:0}#root{flex-direction:column;max-width:430px;min-height:100svh;margin:0 auto;padding:20px;display:flex}.wordmark{font-family:var(--serif);color:var(--text);text-align:center;font-size:32px}h1{margin:0 0 4px;font-size:22px}h2{margin:0 0 8px;font-size:18px}p{margin:0}.muted{color:var(--text-muted)}.faint{color:var(--text-faint);font-size:13px}.field{text-align:left;flex-direction:column;gap:6px;margin-bottom:16px;display:flex}.field label{color:var(--text-muted);font-size:14px}input,textarea{background:var(--surface);border:1px solid var(--border);color:var(--text);font-size:16px;font-family:var(--sans);border-radius:10px;min-height:44px;padding:12px 14px}input:disabled,textarea:read-only{color:var(--text-muted);background:#232326}input:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:1px}textarea{resize:vertical;min-height:88px}button{font-family:var(--sans);cursor:pointer;border-radius:10px;min-height:44px;font-size:16px}.btn-primary{background:var(--accent);color:var(--text-on-accent);border:none;width:100%;padding:12px 16px;font-weight:600}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-link{color:var(--accent);background:0 0;border:none;padding:4px}.btn-link:disabled{color:var(--text-faint);cursor:not-allowed}.error-text{color:var(--accent);font-size:14px}.otp-boxes{justify-content:center;gap:8px;margin:20px 0;display:flex}.otp-boxes input{text-align:center;width:44px;height:52px;padding:0;font-size:22px}.back-link{color:var(--text-muted);cursor:pointer;background:0 0;border:none;align-self:flex-start;padding:8px 0;font-size:14px}.photo-upload{background:var(--surface);border:1px dashed var(--border);width:96px;height:96px;color:var(--text-muted);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;margin:0 auto 20px;font-size:13px;display:flex;position:relative;overflow:hidden}.photo-upload img{object-fit:cover;width:100%;height:100%}.pill-row{flex-wrap:wrap;gap:8px;margin-bottom:20px;display:flex}.pill{border:1px solid var(--border);color:var(--text);background:0 0;border-radius:999px;min-height:40px;padding:8px 16px;font-size:14px}.pill.selected{background:var(--accent);border-color:var(--accent);color:var(--text-on-accent);font-weight:600}.prompt-card{background:var(--surface);border:1px solid var(--border);text-align:left;border-radius:12px;margin-bottom:14px;padding:14px}.prompt-card label{color:var(--text);margin-bottom:8px;font-size:14px;display:block}.search-input{margin-bottom:16px}.chip-row{gap:8px;margin-bottom:20px;padding-bottom:4px;display:flex;overflow-x:auto}.chip-row .pill{flex-shrink:0}.section-title{margin:0 0 12px;font-size:15px;font-weight:600}.avatar-row{gap:14px;margin-bottom:24px;padding-bottom:4px;display:flex;overflow-x:auto}.avatar-item{cursor:pointer;width:64px;color:var(--text);background:0 0;border:none;flex-direction:column;flex-shrink:0;align-items:center;gap:6px;display:flex}.avatar-circle{background:var(--surface);border:1px solid var(--border);width:56px;height:56px;color:var(--text-muted);border-radius:50%;justify-content:center;align-items:center;font-size:12px;display:flex;overflow:hidden}.avatar-circle img{object-fit:cover;width:100%;height:100%}.avatar-item span{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;max-width:64px;font-size:12px;overflow:hidden}.student-grid{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:80px;display:grid}.student-card{background:var(--surface);border:1px solid var(--border);text-align:left;cursor:pointer;color:var(--text);border-radius:14px;padding:0;overflow:hidden}.student-card-photo{aspect-ratio:1;width:100%;color:var(--text-muted);background:#232326;justify-content:center;align-items:center;font-size:13px;display:flex}.student-card-photo img{object-fit:cover;width:100%;height:100%}.student-card-body{padding:10px 12px 12px}.student-card-body h3{margin:0 0 2px;font-size:15px}.bottom-nav{border-top:1px solid var(--border);background:var(--bg);width:100%;max-width:430px;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.bottom-nav button{color:var(--text-muted);background:0 0;border:none;flex:1;padding:14px;font-size:14px}.bottom-nav button.active{color:var(--accent);font-weight:600}.bottom-nav button:disabled{color:var(--text-faint);cursor:not-allowed}.detail-photo-banner{aspect-ratio:1;background:var(--surface);width:100%;color:var(--text-muted);border-radius:16px;justify-content:center;align-items:center;margin-bottom:16px;display:flex;overflow:hidden}.detail-photo-banner img{object-fit:cover;width:100%;height:100%}.chat-list-item{border:none;border-bottom:1px solid var(--border);text-align:left;width:100%;color:var(--text);cursor:pointer;background:0 0;align-items:center;gap:12px;padding:12px 4px;display:flex}.chat-list-item .avatar-circle{flex-shrink:0;width:48px;height:48px}.chat-list-item-body{flex:1;min-width:0}.chat-list-item-body p{margin:0}.chat-list-item-preview{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.chat-header{border-bottom:1px solid var(--border);align-items:center;gap:10px;margin-bottom:12px;padding-bottom:12px;display:flex}.message-list{flex-direction:column;gap:8px;padding-bottom:90px;display:flex}.message-bubble{word-wrap:break-word;border-radius:16px;max-width:78%;padding:10px 14px;font-size:15px}.message-bubble.incoming{background:var(--surface);border:1px solid var(--border);border-bottom-left-radius:4px;align-self:flex-start}.message-bubble.outgoing{background:var(--accent);color:var(--text-on-accent);border-bottom-right-radius:4px;align-self:flex-end}.chat-input-bar{background:var(--bg);border-top:1px solid var(--border);box-sizing:border-box;gap:8px;width:100%;max-width:430px;padding:12px 20px;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.chat-input-bar input{flex:1}.chat-input-bar button{flex-shrink:0;width:auto;padding:0 20px}.propose-meetup-link{align-self:center;margin-bottom:8px}.meetup-form{background:var(--surface);border:1px solid var(--border);border-radius:14px;align-self:center;width:100%;margin-bottom:12px;padding:14px}.meetup-form .field{margin-bottom:10px}.meetup-form-actions{gap:8px;display:flex}.meetup-form-actions .btn-primary{flex:1;width:auto}.meetup-card{border:1.5px solid var(--accent);background:var(--surface);border-radius:14px;align-self:center;width:90%;padding:12px 14px}.meetup-card-title{align-items:center;gap:6px;margin-bottom:6px;font-weight:600;display:flex}.meetup-card p{margin:2px 0;font-size:14px}.meetup-card-actions{gap:8px;margin-top:10px;display:flex}.meetup-card-actions button{flex:1;width:auto;min-height:36px}.meetup-status{margin-top:8px;font-size:13px;font-weight:600}.meetup-status.accepted{color:#4ade80}.meetup-status.declined{color:var(--text-faint)}select{background:var(--surface);border:1px solid var(--border);color:var(--text);font-size:16px;font-family:var(--sans);border-radius:10px;width:100%;min-height:44px;padding:12px 14px}.modal-backdrop{z-index:100;background:#0009;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal-card{background:var(--bg);border:1px solid var(--border);border-radius:16px;width:100%;max-width:380px;padding:20px}.profile-icon-row{z-index:1;justify-content:flex-end;gap:10px;margin-bottom:-36px;padding-right:8px;display:flex;position:relative}.icon-button{border:1px solid var(--border);width:36px;height:36px;color:var(--text);background:#0f0f10b3;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:16px;display:flex}.blocked-list-item{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:10px;padding:12px 4px;display:flex}.paywall-banner{background:var(--surface);border:1px solid var(--accent);border-radius:12px;margin-bottom:16px;padding:10px 14px;font-size:14px}.report-message-link{color:var(--text-faint);background:0 0;border:none;align-self:flex-start;padding:2px 0;font-size:12px}
