@charset "UTF-8";@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:400;src:url("./media/be-vietnam-pro-vietnamese-400-normal-AYP4TBQP.woff2") format("woff2"),url("./media/be-vietnam-pro-vietnamese-400-normal-XCSVBHAH.woff") format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:400;src:url("./media/be-vietnam-pro-latin-ext-400-normal-VIXFGEVI.woff2") format("woff2"),url("./media/be-vietnam-pro-latin-ext-400-normal-H5FLM5EA.woff") format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:400;src:url("./media/be-vietnam-pro-latin-400-normal-GO7MVAWD.woff2") format("woff2"),url("./media/be-vietnam-pro-latin-400-normal-RVJKSZUF.woff") format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:500;src:url("./media/be-vietnam-pro-vietnamese-500-normal-4TYGC47D.woff2") format("woff2"),url("./media/be-vietnam-pro-vietnamese-500-normal-X6H4D6SQ.woff") format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:500;src:url("./media/be-vietnam-pro-latin-ext-500-normal-4V547L43.woff2") format("woff2"),url("./media/be-vietnam-pro-latin-ext-500-normal-OT6QGGBR.woff") format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:500;src:url("./media/be-vietnam-pro-latin-500-normal-ICUK3VUJ.woff2") format("woff2"),url("./media/be-vietnam-pro-latin-500-normal-7QE332AG.woff") format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:600;src:url("./media/be-vietnam-pro-vietnamese-600-normal-JNWISTGY.woff2") format("woff2"),url("./media/be-vietnam-pro-vietnamese-600-normal-WRJMS4YC.woff") format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:600;src:url("./media/be-vietnam-pro-latin-ext-600-normal-CBJZJMMX.woff2") format("woff2"),url("./media/be-vietnam-pro-latin-ext-600-normal-4EIVITBO.woff") format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:600;src:url("./media/be-vietnam-pro-latin-600-normal-BUKYBXKC.woff2") format("woff2"),url("./media/be-vietnam-pro-latin-600-normal-3FZKMTWI.woff") format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:700;src:url("./media/be-vietnam-pro-vietnamese-700-normal-2FUHI57A.woff2") format("woff2"),url("./media/be-vietnam-pro-vietnamese-700-normal-6TZDSQEZ.woff") format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:700;src:url("./media/be-vietnam-pro-latin-ext-700-normal-O2T6GATN.woff2") format("woff2"),url("./media/be-vietnam-pro-latin-ext-700-normal-RSM77A7Z.woff") format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:700;src:url("./media/be-vietnam-pro-latin-700-normal-D4XLH5H5.woff2") format("woff2"),url("./media/be-vietnam-pro-latin-700-normal-T76PCEOT.woff") format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--color-bg: #040720;--color-bg-2: #0a0f2e;--color-bg-3: #111636;--color-surface: #161d3f;--color-surface-2: #1e2650;--color-border: #1e293b;--color-border-light: #2a3555;--color-text-primary: #f1f5f9;--color-text-secondary: #94a3b8;--color-text-muted: #64748b;--color-text-disabled: #3f4f6a;--color-primary: #1589ff;--color-primary-hover: #0e6de8;--color-primary-dim: rgba(21, 137, 255, .12);--color-primary-glow: rgba(21, 137, 255, .25);--color-success: #22c55e;--color-success-dim: rgba(34, 197, 94, .12);--color-warning: #f59e0b;--color-warning-dim: rgba(245, 158, 11, .12);--color-danger: #ef4444;--color-danger-dim: rgba(239, 68, 68, .12);--color-info: #38bdf8;--color-info-dim: rgba(56, 189, 248, .12);--color-star: #f59e0b;--font: "Be Vietnam Pro", -apple-system, BlinkMacSystemFont, sans-serif;--font-size-xs: 11px;--font-size-sm: 12px;--font-size-base: 14px;--font-size-md: 15px;--font-size-lg: 17px;--font-size-xl: 20px;--font-size-2xl: 24px;--line-height: 1.55;--space-xs: 4px;--space-sm: 8px;--space-md: 12px;--space-lg: 16px;--space-xl: 20px;--space-2xl: 24px;--space-3xl: 32px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 20px;--radius-full: 9999px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .4);--shadow-md: 0 4px 12px rgba(0, 0, 0, .5);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .6);--tab-bar-height: 56px;--safe-area-bottom: env(safe-area-inset-bottom, 0px);--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease}*,*:before,*:after{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}html{font-size:var(--font-size-base);-webkit-text-size-adjust:100%;height:100%;touch-action:manipulation}body{font-family:var(--font);font-size:var(--font-size-base);font-weight:400;line-height:var(--line-height);color:var(--color-text-primary);background:var(--color-bg);min-height:100dvh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overscroll-behavior:none;touch-action:manipulation}.app-container{display:flex;flex-direction:column;height:100dvh;overflow:hidden;background:var(--color-bg)}.page-content{flex:1;overflow-y:auto;overflow-x:hidden;padding-bottom:calc(var(--tab-bar-height) + var(--safe-area-bottom));-webkit-overflow-scrolling:touch;scroll-behavior:smooth}.tab-bar{position:relative;z-index:100;background:var(--color-bg)!important;border-top:1px solid var(--color-border);display:flex;flex-shrink:0;box-shadow:0 -2px 16px #0006;height:calc(var(--tab-bar-height) + var(--safe-area-bottom));padding-bottom:var(--safe-area-bottom)}.tab-bar.hidden{display:none}.tab-btn{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;background:none;border:none;color:var(--color-text-muted);font-family:var(--font);font-size:var(--font-size-xs);font-weight:500;letter-spacing:.01em;cursor:pointer;padding:0;transition:color var(--transition-base);-webkit-user-select:none;user-select:none}.tab-btn ion-icon{font-size:22px;transition:transform var(--transition-fast)}.tab-btn span{transition:color var(--transition-base)}.tab-btn.active{color:var(--color-primary)}.tab-btn.active ion-icon{transform:translateY(-1px)}.tab-btn:active{opacity:.6;transform:scale(.95);transition:opacity .08s,transform .08s}h1,h2,h3,h4,h5,h6{font-family:var(--font);font-weight:600;line-height:1.3;color:var(--color-text-primary)}h1{font-size:var(--font-size-2xl)}h2{font-size:var(--font-size-xl)}h3{font-size:var(--font-size-lg)}h4{font-size:var(--font-size-md)}p{color:var(--color-text-secondary);line-height:var(--line-height)}a{color:var(--color-primary);text-decoration:none}a:active{opacity:.75}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);font-family:var(--font);font-size:var(--font-size-base);font-weight:600;line-height:1;border-radius:var(--radius-md);border:none;cursor:pointer;padding:0 var(--space-lg);height:44px;transition:background var(--transition-base),opacity var(--transition-fast),transform var(--transition-fast);-webkit-user-select:none;user-select:none;white-space:nowrap}.btn:active{opacity:.85;transform:scale(.97)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover{background:var(--color-primary-hover)}.btn-secondary{background:var(--color-surface);color:var(--color-text-primary);border:1px solid var(--color-border-light)}.btn-secondary:hover{background:var(--color-surface-2)}.btn-ghost{background:transparent;color:var(--color-text-secondary)}.btn-ghost:hover{background:var(--color-surface)}.btn-danger{background:var(--color-danger-dim);color:var(--color-danger);border:1px solid rgba(239,68,68,.2)}.btn-sm{height:34px;font-size:var(--font-size-sm);padding:0 var(--space-md);border-radius:var(--radius-sm)}.btn-lg{height:52px;font-size:var(--font-size-md)}.btn-block{width:100%}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-lg);overflow:hidden}.card-flat{background:var(--color-bg-2);border-radius:var(--radius-lg);padding:var(--space-lg)}input,textarea,select{font-family:var(--font);font-size:16px;color:var(--color-text-primary);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:0 var(--space-md);height:44px;width:100%;outline:none;transition:border-color var(--transition-base),box-shadow var(--transition-base);appearance:none;-webkit-appearance:none}input::placeholder,textarea::placeholder,select::placeholder{color:var(--color-text-disabled)}input:focus,textarea:focus,select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-dim)}textarea{height:auto;padding:var(--space-md);resize:vertical;min-height:100px;line-height:var(--line-height)}select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24'%3E%3Cpath fill='%2364748b' d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px}label{display:block;font-size:var(--font-size-sm);font-weight:500;color:var(--color-text-secondary);margin-bottom:var(--space-xs);letter-spacing:.02em}.form-group{margin-bottom:var(--space-lg)}.form-hint{font-size:var(--font-size-xs);color:var(--color-text-muted);margin-top:var(--space-xs)}.form-error{font-size:var(--font-size-xs);color:var(--color-danger);margin-top:var(--space-xs)}.badge{display:inline-flex;align-items:center;gap:4px;font-size:var(--font-size-xs);font-weight:600;padding:3px 8px;border-radius:var(--radius-full);line-height:1.4;letter-spacing:.02em;white-space:nowrap}.badge-primary{background:var(--color-primary-dim);color:var(--color-primary)}.badge-success{background:var(--color-success-dim);color:var(--color-success)}.badge-warning{background:var(--color-warning-dim);color:var(--color-warning)}.badge-danger{background:var(--color-danger-dim);color:var(--color-danger)}.badge-info{background:var(--color-info-dim);color:var(--color-info)}.badge-muted{background:var(--color-surface-2);color:var(--color-text-secondary)}.chip{display:inline-flex;align-items:center;gap:4px;font-size:var(--font-size-sm);font-weight:500;color:var(--color-text-secondary);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-full);padding:5px 12px;cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;-webkit-user-select:none;user-select:none}.chip.active,.chip.selected{color:var(--color-primary);background:var(--color-primary-dim);border-color:#1589ff4d}.chip:active{transform:scale(.95)}.avatar{border-radius:var(--radius-full);object-fit:cover;flex-shrink:0;background:var(--color-surface-2)}.avatar-sm{width:32px;height:32px}.avatar-md{width:44px;height:44px}.avatar-lg{width:60px;height:60px}.avatar-xl{width:80px;height:80px}.stars{display:inline-flex;gap:2px;color:var(--color-star);font-size:14px}.divider{border:none;border-top:1px solid var(--color-border);margin:var(--space-lg) 0}.page-header{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);background:var(--color-bg);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:50;min-height:52px}.page-header .page-title{font-size:var(--font-size-md);font-weight:600;color:var(--color-text-primary);flex:1}.page-header .back-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--radius-md);background:var(--color-surface);border:none;color:var(--color-text-primary);cursor:pointer;font-size:20px;flex-shrink:0;transition:background var(--transition-fast)}.page-header .back-btn:active{background:var(--color-surface-2)}.bottom-sheet-backdrop{position:fixed;inset:0;background:#0009;z-index:200;animation:fadeIn .2s ease}.bottom-sheet{position:fixed;bottom:0;left:0;right:0;background:var(--color-bg-2);border-radius:var(--radius-xl) var(--radius-xl) 0 0;border-top:1px solid var(--color-border);z-index:201;padding-bottom:calc(var(--space-lg) + var(--safe-area-bottom));animation:slideUp .25s ease;max-height:90dvh;overflow-y:auto}.bottom-sheet .sheet-handle{width:36px;height:4px;background:var(--color-border-light);border-radius:var(--radius-full);margin:var(--space-md) auto var(--space-lg)}.bottom-sheet .sheet-header{padding:0 var(--space-lg) var(--space-md);font-size:var(--font-size-md);font-weight:600;color:var(--color-text-primary);border-bottom:1px solid var(--color-border)}.bottom-sheet .sheet-body{padding:var(--space-lg)}@keyframes shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}.skeleton{background:linear-gradient(90deg,var(--color-surface) 25%,var(--color-surface-2) 50%,var(--color-surface) 75%);background-size:800px 100%;animation:shimmer 1.4s infinite linear;border-radius:var(--radius-sm)}.chips-row{display:flex;gap:var(--space-sm);overflow-x:auto;padding:var(--space-sm) var(--space-lg);scrollbar-width:none;-webkit-overflow-scrolling:touch;flex-shrink:0}.chips-row::-webkit-scrollbar{display:none}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-3xl) var(--space-lg);text-align:center;gap:var(--space-md)}.empty-state ion-icon{font-size:48px;color:var(--color-text-disabled)}.empty-state h3{font-size:var(--font-size-md);color:var(--color-text-secondary)}.empty-state p{font-size:var(--font-size-sm);color:var(--color-text-muted);max-width:240px}.toast{position:fixed;bottom:calc(var(--tab-bar-height) + var(--safe-area-bottom) + var(--space-lg));left:50%;transform:translate(-50%);background:var(--color-surface-2);border:1px solid var(--color-border-light);color:var(--color-text-primary);font-size:var(--font-size-sm);font-weight:500;padding:var(--space-md) var(--space-xl);border-radius:var(--radius-full);box-shadow:var(--shadow-lg);z-index:300;white-space:nowrap;animation:slideUp .2s ease}.text-primary{color:var(--color-text-primary)!important}.text-secondary{color:var(--color-text-secondary)!important}.text-muted{color:var(--color-text-muted)!important}.text-brand{color:var(--color-primary)!important}.text-success{color:var(--color-success)!important}.text-warning{color:var(--color-warning)!important}.text-danger{color:var(--color-danger)!important}.text-xs{font-size:var(--font-size-xs)!important}.text-sm{font-size:var(--font-size-sm)!important}.text-base{font-size:var(--font-size-base)!important}.text-md{font-size:var(--font-size-md)!important}.text-lg{font-size:var(--font-size-lg)!important}.font-normal{font-weight:400!important}.font-medium{font-weight:500!important}.font-semibold{font-weight:600!important}.font-bold{font-weight:700!important}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.line-clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.line-clamp-3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-xs{gap:var(--space-xs)}.gap-sm{gap:var(--space-sm)}.gap-md{gap:var(--space-md)}.gap-lg{gap:var(--space-lg)}.p-lg{padding:var(--space-lg)}.px-lg{padding-left:var(--space-lg);padding-right:var(--space-lg)}.py-md{padding-top:var(--space-md);padding-bottom:var(--space-md)}.w-full{width:100%}.h-full{height:100%}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin .8s linear infinite}ion-icon{display:inline-flex;align-items:center;justify-content:center}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media (min-width: 768px){body{background:#dfe3e8}}.city-header>.back-btn{order:2;margin-left:auto}.page-header>.brand{order:0;margin-right:auto;font-weight:700;color:#60a5fa;font-size:20px;letter-spacing:-.5px;text-decoration:none;flex-shrink:0}.page-header>.back-btn{order:9}.page-header>*:not(.brand):not(.page-title):not(.back-btn){order:2}.page-header>.header-placeholder{display:none}.header-content,.mm-header,.user-header,.page-header,.city-header{background:linear-gradient(135deg,#1a1a2e,#2d2d5e)}.page-header>.page-title,.city-header>.page-title,.detail-title{display:none}
