.vb-ui-btn{justify-content:center;align-items:center;gap:var(--vb-space-8);font-family:var(--vb-font-family);font-weight:var(--vb-font-weight-semibold);cursor:pointer;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;border:none;text-decoration:none;transition:background-color .2s,border-color .2s,box-shadow .2s,transform .1s;display:inline-flex}.vb-ui-btn:focus{outline:none}.vb-ui-btn:focus-visible{box-shadow:var(--vb-shadow-focus)}.vb-ui-btn:disabled{opacity:.6;cursor:not-allowed}.vb-ui-btn--sm{padding:var(--vb-space-8)var(--vb-space-16);font-size:var(--vb-font-size-sm);border-radius:var(--vb-radius-md);min-height:36px}.vb-ui-btn--md{padding:var(--vb-space-12)var(--vb-space-16);font-size:var(--vb-font-size-base);border-radius:var(--vb-radius-md);min-height:44px}.vb-ui-btn--lg{padding:var(--vb-space-12)var(--vb-space-24);font-size:var(--vb-font-size-md);border-radius:var(--vb-radius-md);min-height:48px}.vb-ui-btn--primary{background:var(--vb-color-primary);color:var(--vb-color-bg-default);box-shadow:var(--vb-shadow-primary-sm)}.vb-ui-btn--primary:hover:not(:disabled){background:var(--vb-color-primary-dark);box-shadow:var(--vb-shadow-primary-md)}.vb-ui-btn--primary:active:not(:disabled){transform:translateY(0)}.vb-ui-btn--secondary{background:var(--vb-color-bg-default);color:var(--vb-color-text-primary);border:1px solid var(--vb-color-border-default)}.vb-ui-btn--secondary:hover:not(:disabled){border-color:var(--vb-color-border-hover);background:var(--vb-color-bg-hover)}.vb-ui-btn--secondary:active:not(:disabled){background:var(--vb-color-bg-light)}.vb-ui-btn--ghost{color:var(--vb-color-text-primary);background:0 0}.vb-ui-btn--ghost:hover:not(:disabled){background:var(--vb-color-bg-subtle);border-color:var(--vb-color-border-default)}.vb-ui-btn--ghost:active:not(:disabled){background:var(--vb-color-bg-light)}
.vb-ui-input-wrap{border:1px solid var(--vb-color-border-default);border-radius:var(--vb-radius-md);box-sizing:border-box;justify-content:center;align-items:center;width:100%;min-height:44px;transition:border-color .2s,box-shadow .2s;display:flex}.vb-ui-input-wrap:hover:not(.vb-ui-input-wrap--error){border-color:var(--vb-color-border-hover)}.vb-ui-input-wrap:focus-within{border-color:var(--vb-color-primary);box-shadow:var(--vb-shadow-focus)}.vb-ui-input-wrap--error{border-color:var(--vb-color-error)}.vb-ui-input-wrap--error:focus-within{box-shadow:0 0 0 1px var(--vb-color-error)}.vb-ui-input-wrap--with-leading .vb-ui-input{flex:1;min-width:0}.vb-ui-input-leading-icon{padding-left:var(--vb-space-12);padding-right:var(--vb-space-8);color:var(--vb-color-text-muted);pointer-events:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.vb-ui-input{width:100%;height:44px;padding:0 var(--vb-space-16)0 var(--vb-space-12);font-family:var(--vb-font-family);font-size:var(--vb-font-size-base);color:var(--vb-color-text-primary);background:var(--vb-color-bg-default);border-radius:var(--vb-radius-md);box-sizing:border-box;border:0;outline:none}.vb-ui-input::placeholder{color:var(--vb-color-text-disabled)}.vb-ui-input:disabled{background:var(--vb-color-bg-hover);color:var(--vb-color-text-disabled);cursor:not-allowed}
.vb-ui-text{font-family:var(--vb-font-family);color:var(--vb-color-text-primary);margin:0}.vb-ui-text--h1{font-size:var(--vb-font-size-2xl);font-weight:var(--vb-font-weight-semibold);line-height:var(--vb-line-height-tight);color:var(--vb-color-text-primary)}.vb-ui-text--h2{font-size:var(--vb-font-size-lg);font-weight:var(--vb-font-weight-semibold);line-height:var(--vb-line-height-tight);color:var(--vb-color-text-primary)}.vb-ui-text--body{font-size:var(--vb-font-size-base);font-weight:var(--vb-font-weight-normal);line-height:var(--vb-line-height-normal);color:var(--vb-color-text-primary)}.vb-ui-text--body-md{font-size:var(--vb-font-size-md);font-weight:var(--vb-font-weight-normal);line-height:var(--vb-line-height-normal);color:var(--vb-color-text-primary)}.vb-ui-text--caption{font-size:var(--vb-font-size-sm);font-weight:var(--vb-font-weight-normal);line-height:var(--vb-line-height-normal);color:var(--vb-color-text-muted)}.vb-ui-text--caption-secondary{font-size:var(--vb-font-size-sm);font-weight:var(--vb-font-weight-normal);line-height:var(--vb-line-height-normal);color:var(--vb-color-text-secondary)}.vb-ui-text--muted{font-size:var(--vb-font-size-base);color:var(--vb-color-text-secondary);line-height:var(--vb-line-height-normal)}.vb-ui-text--error{font-size:var(--vb-font-size-sm);color:var(--vb-color-error-text);line-height:var(--vb-line-height-normal)}
.vb-ui-card{background:var(--vb-color-bg-default);border:1px solid var(--vb-color-border-medium);border-radius:var(--vb-radius-md);padding:var(--vb-space-20);box-sizing:border-box}.vb-ui-card--compact{padding:var(--vb-space-16)}.vb-ui-card--elevated{box-shadow:var(--vb-shadow-sm);border-color:var(--vb-color-border-light)}@media (max-width:768px){.vb-ui-card{padding:var(--vb-space-16)}}
.vb-ui-list{margin:0;padding:0;list-style:none}.vb-ui-list-row{align-items:flex-start;gap:var(--vb-space-12);padding:var(--vb-space-12)var(--vb-space-8);color:inherit;box-sizing:border-box;min-width:0;text-decoration:none;transition:background-color .2s;display:flex}.vb-ui-list-row:hover{background:var(--vb-color-bg-hover)}.vb-ui-list-row:focus{outline:none}.vb-ui-list-row:focus-visible{box-shadow:inset 0 0 0 2px var(--vb-color-primary)}.vb-ui-list-row__main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.vb-ui-list-row__title{font-size:var(--vb-font-size-md);font-weight:var(--vb-font-weight-semibold);color:var(--vb-color-text-primary);text-overflow:ellipsis;white-space:nowrap;line-height:1.4;overflow:hidden}.vb-ui-list-row__meta{color:var(--vb-color-text-lighter);font-size:13px;line-height:1.4}.vb-ui-list-row__aside{flex-shrink:0}.vb-ui-list-row--comfortable{padding:var(--vb-space-16)}.vb-ui-list-row--comfortable .vb-ui-list-row__title{font-size:var(--vb-font-size-base);font-weight:var(--vb-font-weight-semibold)}.vb-ui-list-row--comfortable .vb-ui-list-row__meta{font-size:var(--vb-font-size-base);color:var(--vb-color-text-secondary)}
.vb-ui-chip{padding:6px var(--vb-space-12);font-family:var(--vb-font-family);font-size:13px;font-weight:var(--vb-font-weight-normal);border-radius:var(--vb-radius-md);flex-shrink:0;justify-content:center;align-items:center;line-height:1.2;display:inline-flex}.vb-ui-chip--default{background:var(--vb-color-bg-light);color:var(--vb-color-text-secondary)}.vb-ui-chip--primary{background:var(--vb-color-bg-primary-light);color:var(--vb-color-primary);font-weight:var(--vb-font-weight-semibold)}.vb-ui-chip--success{background:var(--vb-color-bg-success);color:var(--vb-color-success);font-weight:var(--vb-font-weight-semibold)}.vb-ui-chip--muted{background:var(--vb-color-bg-subtle);color:var(--vb-color-text-muted)}.vb-ui-chip--sm{padding:var(--vb-space-4)var(--vb-space-10);font-size:var(--vb-font-size-sm);border-radius:var(--vb-radius-lg)}
.vb-ui-avatar{border-radius:var(--vb-radius-full);background:var(--vb-color-bg-chip);color:var(--vb-color-text-secondary);font-weight:var(--vb-font-weight-medium);flex-shrink:0;justify-content:center;align-items:center;display:flex;overflow:hidden}.vb-ui-avatar--sm{width:32px;height:32px;font-size:var(--vb-font-size-xs)}.vb-ui-avatar--md{width:40px;height:40px;font-size:var(--vb-font-size-sm)}.vb-ui-avatar--lg{width:58px;height:58px;font-size:var(--vb-font-size-base)}.vb-ui-avatar img{object-fit:cover;width:100%;height:100%}
.vb-focus-ring:focus,.vb-focus-ring:focus-visible{outline:none}.vb-divider{background:var(--vb-color-border-gray);border:none;height:1px;margin:0}.vb-divider-subtle{background:var(--vb-color-border-subtle);border:none;height:1px;margin:0}.selectable,.selectable *{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}.vb-ui-page-section{padding:var(--vb-space-16)var(--vb-space-16);box-sizing:border-box;margin:0 auto}.vb-hide-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.vb-hide-scrollbar::-webkit-scrollbar{display:none}.vb-app-container{max-width:100%;padding:0}.vb-form-row{gap:var(--vb-space-8);font-size:var(--vb-font-size-base);flex-direction:column;display:flex}.vb-form-row label{color:var(--vb-color-text-primary);font-weight:var(--vb-font-weight-medium);font-size:var(--vb-font-size-base);margin-top:var(--vb-space-16)}.vb-form-row:first-child label{margin-top:0}.vb-form-row input,.vb-form-row select{border-radius:var(--vb-radius-md);border:1px solid var(--vb-color-border-light);padding:var(--vb-space-12)var(--vb-space-16);font-size:var(--vb-font-size-md);background:var(--vb-color-bg-default);color:var(--vb-color-text-primary);box-sizing:border-box;appearance:none;outline:none;height:44px}.vb-form-row input::placeholder{color:var(--vb-color-text-disabled)}.vb-form-row input:focus,.vb-form-row select:focus{border-color:var(--vb-color-primary);box-shadow:var(--vb-shadow-focus)}.vb-trip-form-grid{gap:var(--vb-space-20);flex-direction:column;display:flex}.edit-trip-form-wrapper .vb-trip-form-grid{gap:var(--vb-space-16)}.vb-trip-form-footer{width:100%;margin-top:var(--vb-space-16);display:flex}.vb-trip-form-footer .vb-ui-btn{width:100%}.vb-edit-trip-clickable-field{border:1px solid var(--vb-color-border-light);background:var(--vb-color-bg-default);cursor:pointer;text-align:left;box-sizing:border-box;width:100%;min-height:44px;color:var(--vb-color-text-primary);border-radius:8px;justify-content:space-between;align-items:center;padding:12px 16px;font-size:16px;text-decoration:none;transition:border-color .2s,opacity .2s;display:flex}.vb-edit-trip-clickable-field:hover{border-color:var(--vb-color-primary)}.vb-edit-trip-clickable-field .vb-edit-trip-placeholder{color:var(--vb-color-text-disabled)}
.vb-ui-empty{text-align:center;padding:80px var(--vb-space-16)60px;color:var(--vb-color-text-secondary);flex-direction:column;justify-content:center;align-items:center;display:flex}.vb-ui-empty__icon{width:80px;height:80px;margin-bottom:var(--vb-space-24);justify-content:center;align-items:center;display:flex}.vb-ui-empty__title{font-size:var(--vb-font-size-lg);font-weight:var(--vb-font-weight-medium);color:var(--vb-color-text-primary);margin:0 0 var(--vb-space-8);line-height:var(--vb-line-height-normal)}.vb-ui-empty__description{font-size:var(--vb-font-size-md);color:var(--vb-color-text-muted);margin:0 0 var(--vb-space-24);line-height:var(--vb-line-height-normal)}.vb-ui-empty__action{margin-top:var(--vb-space-8)}
.vb-ui-loading{padding:var(--vb-space-24);color:var(--vb-color-text-muted);font-size:var(--vb-font-size-base);flex-direction:column;justify-content:center;align-items:center;display:flex}.vb-ui-loading__spinner{border:3px solid var(--vb-color-border-subtle);border-top-color:var(--vb-color-primary);border-radius:var(--vb-radius-full);width:32px;height:32px;margin-bottom:var(--vb-space-12);animation:.8s linear infinite vb-ui-spin}@keyframes vb-ui-spin{to{transform:rotate(360deg)}}.vb-ui-loading__text{margin:0}
.vb-app-header{padding-top:var(--safe-top);min-height:var(--vb-header-height);height:var(--vb-header-height-safe);z-index:20;background:var(--vb-color-bg-default);box-sizing:border-box;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.vb-app-header__left{min-width:40px;height:var(--vb-header-height);padding-left:var(--vb-space-4);justify-content:center;align-items:center;display:flex}.vb-app-header__title{font-size:var(--vb-font-size-md);font-weight:var(--vb-font-weight-semibold);color:var(--vb-color-text-primary);white-space:nowrap;text-overflow:ellipsis;pointer-events:none;max-width:calc(100% - 120px);line-height:var(--vb-header-height);margin:0;position:absolute;left:50%;overflow:hidden;transform:translate(-50%)}.vb-app-header__right{min-width:40px;height:var(--vb-header-height);padding-right:var(--vb-space-4);justify-content:center;align-items:center;gap:0;display:flex}.vb-app-header__back{width:40px;height:40px;color:var(--vb-color-text-primary);cursor:pointer;border-radius:var(--vb-radius-md);background:0 0;border:none;justify-content:center;align-items:center;padding:0;text-decoration:none;transition:opacity .1s,transform .1s;display:flex}.vb-app-header__back:hover{opacity:.85}.vb-app-header__back:active{opacity:.7;transform:scale(.95)}
.vb-ui-header-add-btn{border:0;width:40px;min-width:40px;height:40px;padding:0}.vb-ui-header-add-btn:hover:not(:disabled){background:var(--vb-color-primary-bg);color:var(--vb-color-primary-hover)}
.vb-app-bottom-nav{background:var(--vb-color-bg-default);border-top:1px solid var(--vb-color-border-default);height:var(--vb-h-safe-60);padding-top:var(--vb-space-4);padding-bottom:var(--vb-pb-safe-4);z-index:50;box-shadow:var(--vb-shadow-xs);box-sizing:border-box;justify-content:space-around;align-items:center;display:flex;position:fixed;bottom:0;left:0;right:0}.vb-app-bottom-nav__item{cursor:pointer;-webkit-user-select:none;user-select:none;color:inherit;background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;padding:0;text-decoration:none;transition:opacity .1s,transform .1s;display:flex;position:relative;overflow:hidden}.vb-app-bottom-nav__item:hover{opacity:.85}.vb-app-bottom-nav__item:active{opacity:.88;transform:scale(.99)}.vb-app-bottom-nav__item--active .vb-app-bottom-nav__label,.vb-app-bottom-nav__item--active .vb-app-bottom-nav__icon{color:var(--vb-color-primary);font-weight:var(--vb-font-weight-semibold)}.vb-app-bottom-nav__content{z-index:1;flex-direction:column;justify-content:center;align-items:center;gap:2px;display:flex;position:relative}.vb-app-bottom-nav__label{font-size:var(--vb-font-size-xs);line-height:var(--vb-line-height-tight);font-weight:var(--vb-font-weight-normal);color:var(--vb-color-text-secondary);transition:color .2s}
