:root{--primary:#2563eb;--primary-dark:#1d4ed8;--primary-light:#dbeafe;--success:#22c55e;--warning:#f59e0b;--danger:#ef4444;--gray-50:#f9fafb;--gray-100:#f3f4f6;--gray-200:#e5e7eb;--gray-300:#d1d5db;--gray-400:#9ca3af;--gray-500:#6b7280;--gray-600:#4b5563;--gray-700:#374151;--gray-800:#1f2937;--gray-900:#111827;--radius:12px;--radius-sm:8px;--shadow:0 1px 3px #0000001a, 0 1px 2px #0000000f;--shadow-md:0 4px 6px #00000012, 0 2px 4px #0000000f;--bottom-nav-height:64px}*{box-sizing:border-box;margin:0;padding:0}html,body{color:var(--gray-900);background:var(--gray-50);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior:none;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:16px}input,textarea,button,select{font-family:inherit;font-size:inherit}a{color:var(--primary);text-decoration:none}.page{padding:16px;padding-bottom:calc(var(--bottom-nav-height) + 24px);max-width:600px;min-height:100dvh;margin:0 auto}.page-title{color:var(--gray-900);margin-bottom:16px;font-size:24px;font-weight:700}.card{border-radius:var(--radius);box-shadow:var(--shadow);background:#fff;margin-bottom:12px;padding:16px}.form-group{margin-bottom:16px}.form-label{color:var(--gray-700);margin-bottom:6px;font-size:14px;font-weight:500;display:block}.form-input{border:1.5px solid var(--gray-200);border-radius:var(--radius-sm);background:#fff;outline:none;width:100%;padding:12px 14px;font-size:16px;transition:border-color .2s}.form-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.form-input::placeholder{color:var(--gray-400)}textarea.form-input{resize:vertical;min-height:100px}.btn{border-radius:var(--radius-sm);cursor:pointer;border:none;justify-content:center;align-items:center;gap:8px;width:100%;padding:12px 20px;font-size:16px;font-weight:600;transition:all .2s;display:inline-flex}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-dark)}.btn-outline{color:var(--primary);border:1.5px solid var(--primary);background:0 0}.btn-ghost{color:var(--gray-600);background:0 0}.btn-danger{background:var(--danger);color:#fff}.btn-sm{width:auto;padding:8px 14px;font-size:14px}.badge{white-space:nowrap;border-radius:20px;align-items:center;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}.error-text{color:var(--danger);margin-top:8px;font-size:14px}.bottom-nav{height:var(--bottom-nav-height);border-top:1px solid var(--gray-200);padding-bottom:env(safe-area-inset-bottom);z-index:1000;background:#fff;justify-content:space-around;align-items:center;display:flex;position:fixed;bottom:0;left:0;right:0}.nav-item{color:var(--gray-400);cursor:pointer;flex-direction:column;align-items:center;gap:2px;padding:8px 16px;font-size:11px;font-weight:500;transition:color .2s;display:flex;position:relative}.nav-item.active{color:var(--primary)}.nav-item svg{width:24px;height:24px}.nav-badge{background:var(--danger);border-radius:50%;width:8px;height:8px;position:absolute;top:2px;right:8px}.auth-page{flex-direction:column;justify-content:center;max-width:400px;min-height:100dvh;margin:0 auto;padding:24px;display:flex}.auth-logo{text-align:center;margin-bottom:32px}.auth-logo h1{color:var(--primary);font-size:28px;font-weight:800}.auth-logo p{color:var(--gray-500);margin-top:4px;font-size:14px}.auth-footer{text-align:center;color:var(--gray-500);margin-top:24px;font-size:14px}.spinner{border:3px solid var(--gray-200);border-top-color:var(--primary);border-radius:50%;width:24px;height:24px;animation:.6s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.loading-screen{justify-content:center;align-items:center;min-height:100dvh;display:flex}.chat-container{height:calc(100dvh - var(--bottom-nav-height));flex-direction:column;display:flex}.chat-messages{flex-direction:column;flex:1;gap:8px;padding:16px;display:flex;overflow-y:auto}.chat-bubble{word-break:break-word;border-radius:16px;max-width:80%;padding:10px 14px;font-size:15px;line-height:1.4}.chat-bubble.from-me{background:var(--primary);color:#fff;border-bottom-right-radius:4px;align-self:flex-end}.chat-bubble.from-other{background:var(--gray-100);color:var(--gray-900);border-bottom-left-radius:4px;align-self:flex-start}.chat-bubble-time{opacity:.7;margin-top:4px;font-size:11px}.chat-input-bar{border-top:1px solid var(--gray-200);background:#fff;gap:8px;padding:12px 16px;display:flex}.chat-input-bar input{border:1.5px solid var(--gray-200);border-radius:24px;outline:none;flex:1;padding:10px 14px;font-size:15px}.chat-input-bar input:focus{border-color:var(--primary)}.chat-send-btn{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.chat-send-btn:disabled{opacity:.5}.status-progress{flex-direction:column;gap:0;margin:16px 0;display:flex}.status-step{align-items:flex-start;gap:12px;display:flex;position:relative}.status-step-indicator{z-index:1;flex-direction:column;align-items:center;display:flex}.status-dot{background:var(--gray-300);border-radius:50%;flex-shrink:0;width:12px;height:12px}.status-dot.active{background:var(--primary)}.status-dot.completed{background:var(--success)}.status-line{background:var(--gray-200);width:2px;height:32px}.status-line.completed{background:var(--success)}.status-step-content{flex:1;padding-bottom:24px}.status-step-label{color:var(--gray-800);font-size:14px;font-weight:600}.status-step-label.inactive{color:var(--gray-400)}.status-step-detail{color:var(--gray-500);margin-top:4px;font-size:13px}.rating-stars{gap:8px;display:flex}.rating-star{cursor:pointer;color:var(--gray-300);background:0 0;border:none;padding:0;font-size:32px;transition:transform .15s}.rating-star.filled{color:#f59e0b}.rating-star:active{transform:scale(1.2)}.pending-page{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:100dvh;padding:24px;display:flex}.pending-icon{margin-bottom:24px;font-size:64px}.pending-page h2{margin-bottom:12px;font-size:22px;font-weight:700}.pending-page p{color:var(--gray-500);max-width:320px;line-height:1.6}.empty-state{color:var(--gray-400);text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:48px 24px;display:flex}.empty-state svg{width:64px;height:64px;margin-bottom:16px}.empty-state p{font-size:15px}
