:root{--color-bg-primary: #0F172A;--color-bg-secondary: #1E293B;--color-bg-tertiary: #334155;--color-bg-overlay: rgba(15, 23, 42, .95);--color-text-primary: #F1F5F9;--color-text-secondary: #94A3B8;--color-text-disabled: #64748B;--color-text-inverse: #0F172A;--color-border-subtle: #334155;--color-border-default: #475569;--color-border-strong: #64748B;--color-accent-primary: #3B82F6;--color-accent-primary-hover: #2563EB;--color-accent-primary-active: #1D4ED8;--color-accent-secondary: #8B5CF6;--color-accent-secondary-hover: #7C3AED;--color-success: #10B981;--color-success-bg: rgba(16, 185, 129, .1);--color-success-border: rgba(16, 185, 129, .3);--color-warning: #F59E0B;--color-warning-bg: rgba(245, 158, 11, .1);--color-warning-border: rgba(245, 158, 11, .3);--color-error: #EF4444;--color-error-bg: rgba(239, 68, 68, .1);--color-error-border: rgba(239, 68, 68, .3);--color-info: #3B82F6;--color-info-bg: rgba(59, 130, 246, .1);--color-info-border: rgba(59, 130, 246, .3);--color-doc-ticket: #3B82F6;--color-doc-ticket-bg: rgba(59, 130, 246, .1);--color-doc-passport: #8B5CF6;--color-doc-passport-bg: rgba(139, 92, 246, .1);--color-doc-expense: #10B981;--color-doc-expense-bg: rgba(16, 185, 129, .1);--color-doc-visa: #F59E0B;--color-doc-visa-bg: rgba(245, 158, 11, .1);--color-doc-insurance: #06B6D4;--color-doc-insurance-bg: rgba(6, 182, 212, .1);--color-doc-general: #64748B;--color-doc-general-bg: rgba(100, 116, 139, .1);--color-event-departure: #3B82F6;--color-event-arrival: #10B981;--color-event-accommodation: #8B5CF6;--color-event-activity: #F59E0B;--color-event-transport: #06B6D4;--color-event-milestone: #EC4899;--color-role-admin: #EC4899;--color-role-admin-bg: rgba(236, 72, 153, .1);--color-role-user: #64748B;--color-role-user-bg: rgba(100, 116, 139, .1);--font-family-primary: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--font-family-mono: ui-monospace, "SF Mono", Monaco, "Cascadia Code", "Roboto Mono", Consolas, "Courier New", monospace;--font-size-xs: .6875rem;--font-size-sm: .8125rem;--font-size-base: .9375rem;--font-size-lg: 1.0625rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--font-weight-light: 300;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--font-weight-extrabold: 800;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.75;--letter-spacing-tight: -.02em;--letter-spacing-normal: 0;--letter-spacing-wide: .02em;--space-0: 0;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--space-20: 5rem;--space-24: 6rem;--container-xs: 20rem;--container-sm: 24rem;--container-md: 28rem;--container-lg: 32rem;--container-xl: 36rem;--container-2xl: 42rem;--container-full: 100%;--content-padding-mobile: var(--space-4);--content-padding-tablet: var(--space-6);--content-padding-desktop: var(--space-8);--radius-none: 0;--radius-sm: .25rem;--radius-md: .375rem;--radius-lg: .5rem;--radius-xl: .75rem;--radius-2xl: 1rem;--radius-3xl: 1.5rem;--radius-full: 9999px;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .5);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .5), 0 2px 4px -1px rgba(0, 0, 0, .3);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .5), 0 4px 6px -2px rgba(0, 0, 0, .3);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .5), 0 10px 10px -5px rgba(0, 0, 0, .3);--shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, .6);--shadow-inner: inset 0 2px 4px 0 rgba(0, 0, 0, .3);--z-base: 0;--z-dropdown: 1000;--z-sticky: 1100;--z-overlay: 1200;--z-modal: 1300;--z-popover: 1400;--z-tooltip: 1500;--z-notification: 1600;--transition-fast: .15s ease-in-out;--transition-base: .2s ease-in-out;--transition-slow: .3s ease-in-out;--ease-in: cubic-bezier(.4, 0, 1, 1);--ease-out: cubic-bezier(0, 0, .2, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--touch-target-min: 44px;--button-height-sm: 36px;--button-height-md: 44px;--button-height-lg: 52px;--breakpoint-sm: 640px;--breakpoint-md: 768px;--breakpoint-lg: 1024px;--breakpoint-xl: 1280px;--breakpoint-2xl: 1536px}@media (min-width: 640px){:root{--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.375rem;--font-size-2xl: 1.75rem;--font-size-3xl: 2.125rem;--font-size-4xl: 2.625rem}}@media (min-width: 1024px){:root{--font-size-2xl: 2rem;--font-size-3xl: 2.5rem;--font-size-4xl: 3rem}}*,*:before,*:after{box-sizing:border-box}*{margin:0;padding:0}html{font-size:100%;-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{min-height:100vh;line-height:var(--line-height-normal);font-family:var(--font-family-primary);font-size:var(--font-size-base);font-weight:var(--font-weight-normal);color:var(--color-text-primary);background-color:var(--color-bg-primary);overflow-x:hidden}img,picture,video,canvas,svg{display:block;max-width:100%;height:auto}input,button,textarea,select{font:inherit;color:inherit}button{background:none;border:none;cursor:pointer}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto}h1,h2,h3,h4,h5,h6{font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);color:var(--color-text-primary)}h1{font-size:var(--font-size-4xl)}h2{font-size:var(--font-size-3xl)}h3{font-size:var(--font-size-2xl)}h4{font-size:var(--font-size-xl)}h5{font-size:var(--font-size-lg)}h6{font-size:var(--font-size-base)}a{color:var(--color-accent-primary);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-accent-primary-hover)}a:focus-visible{outline:2px solid var(--color-accent-primary);outline-offset:2px;border-radius:var(--radius-sm)}ul,ol{list-style:none}#root{isolation:isolate;min-height:100vh}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}::selection{background-color:var(--color-accent-primary);color:var(--color-text-inverse)}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-track{background:var(--color-bg-secondary)}::-webkit-scrollbar-thumb{background:var(--color-bg-tertiary);border-radius:var(--radius-full);border:2px solid var(--color-bg-secondary)}::-webkit-scrollbar-thumb:hover{background:var(--color-border-strong)}*{scrollbar-width:thin;scrollbar-color:var(--color-bg-tertiary) var(--color-bg-secondary)}.container{width:100%;margin-left:auto;margin-right:auto;padding-left:var(--content-padding-mobile);padding-right:var(--content-padding-mobile)}@media (min-width: 640px){.container{padding-left:var(--content-padding-tablet);padding-right:var(--content-padding-tablet)}}@media (min-width: 1024px){.container{padding-left:var(--content-padding-desktop);padding-right:var(--content-padding-desktop);max-width:1280px}}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:var(--space-2)}.gap-4{gap:var(--space-4)}.gap-6{gap:var(--space-6)}.text-primary{color:var(--color-text-primary)}.text-secondary{color:var(--color-text-secondary)}.text-xs{font-size:var(--font-size-xs)}.text-sm{font-size:var(--font-size-sm)}.text-base{font-size:var(--font-size-base)}.text-lg{font-size:var(--font-size-lg)}.text-xl{font-size:var(--font-size-xl)}.text-2xl{font-size:var(--font-size-2xl)}.text-center{text-align:center}.font-medium{font-weight:var(--font-weight-medium)}.font-semibold{font-weight:var(--font-weight-semibold)}.font-bold{font-weight:var(--font-weight-bold)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mt-2{margin-top:var(--space-2)}.mt-4{margin-top:var(--space-4)}.mt-6{margin-top:var(--space-6)}.mb-2{margin-bottom:var(--space-2)}.mb-4{margin-bottom:var(--space-4)}.mb-6{margin-bottom:var(--space-6)}.p-4{padding:var(--space-4)}.p-6{padding:var(--space-6)}.hidden{display:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.focus-ring{outline:2px solid transparent;outline-offset:2px}.focus-ring:focus-visible{outline:2px solid var(--color-accent-primary);outline-offset:2px}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.spinner{animation:spin 1s linear infinite;border:2px solid var(--color-border-subtle);border-top-color:var(--color-accent-primary);border-radius:var(--radius-full);width:24px;height:24px}.pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.loading-skeleton{background:linear-gradient(90deg,var(--color-bg-secondary) 25%,var(--color-bg-tertiary) 50%,var(--color-bg-secondary) 75%);background-size:200% 100%;animation:loading 1.5s ease-in-out infinite;border-radius:var(--radius-md)}@keyframes loading{0%{background-position:200% 0}to{background-position:-200% 0}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);line-height:1;border-radius:var(--radius-lg);transition:all var(--transition-fast);cursor:pointer;min-height:var(--touch-target-min);white-space:nowrap;-webkit-user-select:none;user-select:none}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background-color:var(--color-accent-primary);color:#fff}.btn-primary:hover:not(:disabled){background-color:var(--color-accent-primary-hover)}.btn-primary:active:not(:disabled){background-color:var(--color-accent-primary-active)}.btn-secondary{background-color:var(--color-bg-tertiary);color:var(--color-text-primary)}.btn-secondary:hover:not(:disabled){background-color:var(--color-border-strong)}.btn-ghost{background-color:transparent;color:var(--color-text-primary)}.btn-ghost:hover:not(:disabled){background-color:var(--color-bg-secondary)}.btn-danger{background-color:var(--color-error);color:#fff}.btn-danger:hover:not(:disabled){background-color:#dc2626}.btn-sm{padding:var(--space-2) var(--space-4);font-size:var(--font-size-sm);min-height:var(--button-height-sm)}.btn-lg{padding:var(--space-4) var(--space-8);font-size:var(--font-size-lg);min-height:var(--button-height-lg)}.card{background-color:var(--color-bg-secondary);border:1px solid var(--color-border-subtle);border-radius:var(--radius-xl);padding:var(--space-6);transition:all var(--transition-base)}.card-hover:hover{border-color:var(--color-border-default);box-shadow:var(--shadow-lg);transform:translateY(-2px)}.card-clickable{cursor:pointer}.input{width:100%;padding:var(--space-3) var(--space-4);background-color:var(--color-bg-tertiary);border:1px solid var(--color-border-default);border-radius:var(--radius-lg);color:var(--color-text-primary);font-size:var(--font-size-base);line-height:var(--line-height-normal);transition:all var(--transition-fast);min-height:var(--touch-target-min)}.input::placeholder{color:var(--color-text-disabled)}.input:hover:not(:disabled){border-color:var(--color-border-strong)}.input:focus{outline:none;border-color:var(--color-accent-primary);box-shadow:0 0 0 3px #3b82f61a}.input:disabled{opacity:.5;cursor:not-allowed}.input-error{border-color:var(--color-error)}.input-error:focus{box-shadow:0 0 0 3px var(--color-error-bg)}.label{display:block;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);margin-bottom:var(--space-2)}.error-message{display:block;font-size:var(--font-size-sm);color:var(--color-error);margin-top:var(--space-2)}.form-group{display:flex;flex-direction:column;gap:var(--space-2)}.form-label{display:block;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);margin-bottom:var(--space-2)}.form-input,.form-textarea,.form-input-file{width:100%;padding:var(--space-3) var(--space-4);background-color:var(--color-bg-secondary);border:1px solid var(--color-border-default);border-radius:var(--radius-lg);color:var(--color-text-primary);font-size:var(--font-size-base);font-family:inherit;line-height:var(--line-height-normal);transition:all var(--transition-fast);min-height:var(--touch-target-min)}.form-input::placeholder,.form-textarea::placeholder{color:var(--color-text-disabled)}.form-input:hover:not(:disabled),.form-textarea:hover:not(:disabled),.form-input-file:hover:not(:disabled){border-color:var(--color-border-strong);background-color:var(--color-bg-tertiary)}.form-input:focus,.form-textarea:focus,.form-input-file:focus{outline:none;border-color:var(--color-accent-primary);box-shadow:0 0 0 3px #3b82f626;background-color:var(--color-bg-secondary)}.form-input:disabled,.form-textarea:disabled,.form-input-file:disabled{opacity:.6;cursor:not-allowed}.form-textarea{resize:vertical;min-height:100px;padding:var(--space-3) var(--space-4)}select.form-input{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2394A3B8' d='M6 9L1 4h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--space-3) center;padding-right:var(--space-10)}select.form-input:focus{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%233B82F6' d='M6 9L1 4h10z'/%3E%3C/svg%3E")}input[type=date].form-input,input[type=datetime-local].form-input{color-scheme:dark}input[type=date].form-input::-webkit-calendar-picker-indicator,input[type=datetime-local].form-input::-webkit-calendar-picker-indicator{cursor:pointer;filter:invert(1) brightness(1.5);opacity:1;transition:opacity var(--transition-fast);width:20px;height:20px;padding:2px}input[type=date].form-input::-webkit-calendar-picker-indicator:hover,input[type=datetime-local].form-input::-webkit-calendar-picker-indicator:hover{opacity:1}input[type=date].form-input::-webkit-datetime-edit,input[type=datetime-local].form-input::-webkit-datetime-edit{color:var(--color-text-primary)}input[type=date].form-input::-webkit-datetime-edit-fields-wrapper,input[type=datetime-local].form-input::-webkit-datetime-edit-fields-wrapper{color:var(--color-text-primary)}input[type=date].form-input::-webkit-datetime-edit-text,input[type=datetime-local].form-input::-webkit-datetime-edit-text{color:var(--color-text-secondary);padding:0 .2em}input[type=date].form-input::-webkit-datetime-edit-month-field,input[type=date].form-input::-webkit-datetime-edit-day-field,input[type=date].form-input::-webkit-datetime-edit-year-field,input[type=datetime-local].form-input::-webkit-datetime-edit-month-field,input[type=datetime-local].form-input::-webkit-datetime-edit-day-field,input[type=datetime-local].form-input::-webkit-datetime-edit-year-field{color:var(--color-text-primary)}input[type=date].form-input::-webkit-inner-spin-button,input[type=datetime-local].form-input::-webkit-inner-spin-button{display:none}.form-input-file{cursor:pointer}.form-input-file::-webkit-file-upload-button{padding:var(--space-2) var(--space-4);margin-right:var(--space-3);background-color:var(--color-accent-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:background-color var(--transition-fast)}.form-input-file::-webkit-file-upload-button:hover{background-color:var(--color-accent-primary-hover)}.form-input-file::file-selector-button{padding:var(--space-2) var(--space-4);margin-right:var(--space-3);background-color:var(--color-accent-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:background-color var(--transition-fast)}.form-input-file::file-selector-button:hover{background-color:var(--color-accent-primary-hover)}.badge{display:inline-flex;align-items:center;padding:var(--space-1) var(--space-3);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);border-radius:var(--radius-full);white-space:nowrap}.badge-primary{background-color:var(--color-info-bg);color:var(--color-info);border:1px solid var(--color-info-border)}.badge-success{background-color:var(--color-success-bg);color:var(--color-success);border:1px solid var(--color-success-border)}.badge-warning{background-color:var(--color-warning-bg);color:var(--color-warning);border:1px solid var(--color-warning-border)}.badge-error{background-color:var(--color-error-bg);color:var(--color-error);border:1px solid var(--color-error-border)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#000000bf;display:flex;align-items:center;justify-content:center;z-index:var(--z-overlay);padding:var(--space-4)}.modal{background-color:var(--color-bg-secondary);border:1px solid var(--color-border-subtle);border-radius:var(--radius-2xl);box-shadow:var(--shadow-2xl);max-width:90vw;max-height:90vh;overflow:auto;position:relative;z-index:var(--z-modal)}@media (min-width: 640px){.modal{max-width:var(--container-lg)}}.divider{height:1px;background-color:var(--color-border-subtle);margin:var(--space-6) 0}.empty-state{text-align:center;padding:var(--space-12) var(--space-6)}.empty-state-icon{font-size:var(--font-size-4xl);color:var(--color-text-disabled);margin-bottom:var(--space-4)}.empty-state-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:var(--space-2)}.empty-state-description{font-size:var(--font-size-base);color:var(--color-text-secondary);margin-bottom:var(--space-6)}.update-notification{position:fixed;bottom:1rem;left:50%;transform:translate(-50%);background:#1e1e2e;color:#fff;padding:.75rem 1.25rem;border-radius:8px;display:flex;align-items:center;gap:.75rem;box-shadow:0 4px 16px #0000004d;z-index:9999;font-size:.9rem;white-space:nowrap}.update-notification button{border:none;border-radius:4px;padding:.35rem .75rem;cursor:pointer;font-size:.85rem}.update-notification button:first-of-type{background:#667eea;color:#fff}.update-notification button:last-of-type{background:transparent;color:#aaa}.auth-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--space-4);background:var(--color-bg-primary)}.auth-card{width:100%;max-width:420px;background:var(--color-bg-secondary);border:1px solid var(--color-border-subtle);border-radius:var(--radius-2xl);padding:var(--space-8);box-shadow:var(--shadow-lg)}.auth-header{text-align:center;margin-bottom:var(--space-8)}.auth-title{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin-bottom:var(--space-2)}.auth-subtitle{font-size:var(--font-size-base);color:var(--color-text-secondary)}.auth-form{display:flex;flex-direction:column;gap:var(--space-6)}.auth-footer{margin-top:var(--space-6);text-align:center}.btn-block{width:100%}.alert{padding:var(--space-4);border-radius:var(--radius-lg);margin-bottom:var(--space-6);font-size:var(--font-size-sm)}.alert-error{background-color:#ef44441a;border:1px solid var(--color-status-error);color:var(--color-status-error)}.alert-success{background-color:#10b9811a;border:1px solid var(--color-status-success);color:var(--color-status-success)}.link{color:var(--color-primary);text-decoration:none;font-weight:var(--font-weight-medium);transition:color var(--transition-fast)}.link:hover{color:var(--color-primary-hover);text-decoration:underline}@media (max-width: 480px){.auth-card{padding:var(--space-6)}.auth-title{font-size:var(--font-size-2xl)}}.trips-container{min-height:100vh;background:var(--color-bg-primary)}.trips-header{background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border-subtle);padding:var(--space-4) var(--space-6);position:sticky;top:0;z-index:var(--z-sticky)}.trips-main{max-width:1200px;margin:0 auto;padding:var(--space-8) var(--space-6)}.trips-header-section{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-8);gap:var(--space-4)}.trips-title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin:0}.loading-state{display:flex;justify-content:center;align-items:center;min-height:100vh;color:var(--color-text-primary)}.empty-state{text-align:center;padding:var(--space-16) var(--space-4);max-width:500px;margin:0 auto}.empty-state-icon{font-size:4rem;margin-bottom:var(--space-4)}.empty-state h3{font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:var(--space-2)}.empty-state p{margin-bottom:var(--space-6)}.trips-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:var(--space-6)}.trip-card{background:var(--color-bg-secondary);border:1px solid var(--color-border-subtle);border-radius:var(--radius-2xl);padding:var(--space-6);cursor:pointer;transition:all var(--transition-base);position:relative;overflow:hidden}.trip-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-xl);border-color:var(--color-border-strong)}.trip-card-current{border-color:var(--color-primary);box-shadow:0 0 0 1px var(--color-primary)}.trip-card-current:hover{box-shadow:0 0 0 2px var(--color-primary),var(--shadow-xl)}.trip-badge{position:absolute;top:var(--space-4);right:var(--space-4);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.05em}.badge-current{background:var(--color-primary);color:var(--color-bg-primary)}.badge-upcoming{background:#3b82f626;color:var(--color-doc-ticket);border:1px solid var(--color-doc-ticket)}.badge-past{background:#64748b26;color:var(--color-text-secondary);border:1px solid var(--color-border-subtle)}.trip-card-header{margin-bottom:var(--space-4);padding-right:var(--space-12)}.trip-name{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin-bottom:var(--space-2)}.trip-destination{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0}.trip-card-body{margin-bottom:var(--space-4)}.trip-description{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-bottom:var(--space-4);line-height:1.5}.trip-dates{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3);padding:var(--space-4);background:var(--color-bg-tertiary);border-radius:var(--radius-lg)}.trip-date-item{display:flex;flex-direction:column;gap:var(--space-1);flex:1}.trip-date-label{font-size:var(--font-size-xs);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em;font-weight:var(--font-weight-medium)}.trip-date-value{font-size:var(--font-size-sm);color:var(--color-text-primary);font-weight:var(--font-weight-semibold)}.trip-date-separator{color:var(--color-text-secondary);font-size:var(--font-size-lg)}.trip-duration{font-size:var(--font-size-sm);color:var(--color-text-secondary);text-align:center;padding:var(--space-2);background:var(--color-bg-tertiary);border-radius:var(--radius-md)}.trip-card-footer{border-top:1px solid var(--color-border-subtle);padding-top:var(--space-4);margin-top:var(--space-4)}.trip-link{font-size:var(--font-size-sm);color:var(--color-primary);font-weight:var(--font-weight-medium);transition:color var(--transition-fast)}.trip-card:hover .trip-link{color:var(--color-primary-hover)}@media (max-width: 768px){.trips-header-section{flex-direction:column}.trips-grid{grid-template-columns:1fr}.trip-dates{flex-direction:column;align-items:stretch}.trip-date-separator{transform:rotate(90deg);align-self:center}}@media (max-width: 480px){.trips-main{padding:var(--space-6) var(--space-4)}.trip-card{padding:var(--space-5)}}.create-trip-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--space-4);background:var(--color-bg-primary)}.create-trip-card{width:100%;max-width:600px;background:var(--color-bg-secondary);border:1px solid var(--color-border-subtle);border-radius:var(--radius-2xl);padding:var(--space-8);box-shadow:var(--shadow-lg)}.create-trip-header{text-align:center;margin-bottom:var(--space-8)}.create-trip-title{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin-bottom:var(--space-2)}.create-trip-subtitle{font-size:var(--font-size-base);color:var(--color-text-secondary)}.create-trip-form{display:flex;flex-direction:column;gap:var(--space-6)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}.form-checkbox-label{display:flex;align-items:center;gap:var(--space-3);cursor:pointer;padding:var(--space-4);background:var(--color-bg-tertiary);border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);transition:all var(--transition-fast)}.form-checkbox-label:hover{border-color:var(--color-border-strong)}.form-checkbox{width:20px;height:20px;cursor:pointer;accent-color:var(--color-primary)}.form-checkbox-label span{font-size:var(--font-size-base);color:var(--color-text-primary);font-weight:var(--font-weight-medium)}.form-actions{display:flex;gap:var(--space-4);margin-top:var(--space-4)}.form-actions .btn{flex:1}@media (max-width: 640px){.create-trip-card{padding:var(--space-6)}.create-trip-title{font-size:var(--font-size-2xl)}.form-row{grid-template-columns:1fr}.form-actions{flex-direction:column-reverse}}.trip-stage-manager{padding:1.5rem;background-color:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a}.btn-add-stage-full{width:100%;padding:1rem;font-size:1.125rem;font-weight:600}.trip-stage-form{background-color:#f8f9fa;padding:1.5rem;border-radius:8px;margin-bottom:2rem}.form-group{margin-bottom:1rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:500;color:#333}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.5rem;border:1px solid #ddd;border-radius:4px;font-size:1rem;background-color:#fff;color:#212529}.form-group input::placeholder,.form-group textarea::placeholder{color:#6c757d;opacity:1}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#007bff;background-color:#fff}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.form-actions{display:flex;gap:1rem;margin-top:1.5rem}.btn{padding:.5rem 1rem;border:none;border-radius:4px;cursor:pointer;font-size:1rem;transition:background-color .2s}.btn-primary{background-color:#007bff;color:#fff}.btn-primary:hover{background-color:#0056b3}.btn-secondary{background-color:#6c757d;color:#fff}.btn-secondary:hover{background-color:#545b62}.trip-stages-list{display:flex;flex-direction:column;gap:1rem}.no-stages{text-align:center;color:#666;padding:2rem;font-style:italic}.trip-stage-card{background-color:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:1.5rem;transition:box-shadow .2s}.trip-stage-card:hover{box-shadow:0 4px 8px #0000001a}.trip-stage-card__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.trip-stage-card__type{background-color:#e7f3ff;color:#06c;padding:.25rem .75rem;border-radius:4px;font-size:.875rem;font-weight:500}.trip-stage-card__actions{display:flex;gap:.5rem}.btn-icon{background:none;border:none;cursor:pointer;font-size:1.25rem;padding:.25rem;transition:transform .1s}.btn-icon:hover{transform:scale(1.2)}.trip-stage-card__title{margin:0 0 .5rem;font-size:1.25rem;color:#333}.trip-stage-card__location{color:#666;margin-bottom:.75rem;font-size:.95rem}.trip-stage-card__datetime{background-color:#f8f9fa;padding:.75rem;border-radius:4px;font-size:.9rem;margin-bottom:.75rem}.trip-stage-card__datetime div{margin-bottom:.25rem}.trip-stage-card__datetime div:last-child{margin-bottom:0}.trip-stage-card__description{color:#555;line-height:1.5;margin:0}@media (max-width: 768px){.form-row{grid-template-columns:1fr}.trip-stage-manager__header{flex-direction:column;align-items:flex-start;gap:1rem}.form-actions{flex-direction:column}.btn{width:100%}}.pdf-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000bf;z-index:10000;display:flex;align-items:center;justify-content:center;padding:var(--space-4)}.pdf-modal{background:var(--color-bg-secondary);border-radius:var(--radius-2xl);display:flex;flex-direction:column;width:100%;max-width:900px;height:90vh;overflow:hidden;box-shadow:0 24px 64px #00000080}.pdf-modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border-subtle);flex-shrink:0;gap:var(--space-4)}.pdf-modal-title{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pdf-modal-actions{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0}.pdf-modal-close{background:none;border:none;color:var(--color-text-secondary);font-size:var(--font-size-lg);cursor:pointer;padding:var(--space-1) var(--space-2);border-radius:var(--radius-md);line-height:1;transition:all var(--transition-fast)}.pdf-modal-close:hover{color:var(--color-text-primary);background:var(--color-bg-tertiary)}.pdf-modal-frame{flex:1;width:100%;border:none;background:#525659}.document-manager{background:var(--color-bg-secondary);border:1px solid var(--color-border-subtle);border-radius:var(--radius-2xl);padding:var(--space-6)}.document-manager-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-6);padding-bottom:var(--space-4);border-bottom:1px solid var(--color-border-subtle)}.document-manager-header h3{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.document-upload-form{background:var(--color-bg-tertiary);border:1px solid var(--color-border-subtle);border-radius:var(--radius-xl);padding:var(--space-6);margin-bottom:var(--space-6)}.document-upload-form form{display:flex;flex-direction:column;gap:var(--space-4)}.file-info{font-size:var(--font-size-sm);color:var(--color-text-secondary);padding:var(--space-2) 0}.document-list{display:flex;flex-direction:column;gap:var(--space-6)}.document-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-12) var(--space-6);text-align:center}.document-empty-icon{font-size:4rem;margin-bottom:var(--space-4)}.document-empty p{color:var(--color-text-primary);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);margin:0 0 var(--space-2) 0}.document-empty .text-secondary{color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-normal)}.document-group{display:flex;flex-direction:column;gap:var(--space-3)}.document-group-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em;margin:0;padding-bottom:var(--space-2);border-bottom:1px solid var(--color-border-subtle)}.document-items{display:flex;flex-direction:column;gap:var(--space-2)}.document-item{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-4);background:var(--color-bg-tertiary);border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);transition:all var(--transition-fast)}.document-item:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-sm)}.document-item-content{display:flex;align-items:center;gap:var(--space-3);flex:1;min-width:0}.document-item-icon{font-size:2rem;flex-shrink:0}.document-item-details{flex:1;min-width:0}.document-item-title{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--space-1) 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.document-item-stage-badge{display:inline-block;background-color:#e3f2fd;color:#1976d2;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:500;margin:.25rem 0}.document-item-description{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0 0 var(--space-2) 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.document-item-meta{display:flex;gap:var(--space-3);font-size:var(--font-size-xs);color:var(--color-text-secondary)}.document-item-meta span{display:inline-flex;align-items:center;gap:var(--space-1)}.document-item-actions{display:flex;gap:var(--space-2);flex-shrink:0}.btn-icon{padding:var(--space-2);background:var(--color-bg-secondary);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);cursor:pointer;font-size:1.25rem;transition:all var(--transition-fast)}.btn-icon:hover{border-color:var(--color-primary);background:var(--color-bg-primary);transform:translateY(-1px)}.btn-icon-danger:hover{border-color:#ef4444;background:#ef44441a}@media (max-width: 640px){.document-manager,.document-upload-form{padding:var(--space-4)}.document-item{flex-direction:column;align-items:stretch}.document-item-content{flex-direction:column;align-items:flex-start}.document-item-actions{justify-content:flex-end;width:100%}.document-item-meta{flex-direction:column;gap:var(--space-1)}}.trip-detail-container{min-height:100vh;background:var(--color-bg-primary)}.trip-detail-header{background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border-subtle);padding:var(--space-6);position:sticky;top:0;z-index:var(--z-sticky)}.btn-back{background:none;border:none;color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);transition:all var(--transition-fast);margin-bottom:var(--space-4)}.btn-back:hover{color:var(--color-text-primary);background:var(--color-bg-tertiary)}.trip-detail-header-content{max-width:1200px;margin:0 auto;display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-4)}.trip-detail-title{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin-bottom:var(--space-2)}.trip-detail-destination{font-size:var(--font-size-lg);color:var(--color-text-secondary);margin:0}.badge-current-large{padding:var(--space-2) var(--space-4);border-radius:var(--radius-full);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);background:var(--color-primary);color:var(--color-bg-primary);white-space:nowrap}.trip-detail-main{max-width:1200px;margin:0 auto;padding:var(--space-8) var(--space-6)}.trip-info-section{margin-bottom:var(--space-8)}.trip-info-card{background:var(--color-bg-secondary);border:1px solid var(--color-border-subtle);border-radius:var(--radius-2xl);padding:var(--space-6)}.trip-info-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-6)}.trip-info-card h3{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.btn-delete-trip{background-color:#dc3545;color:#fff;border:none;padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);display:flex;align-items:center;gap:var(--space-2)}.btn-delete-trip:hover{background-color:#c82333;transform:translateY(-1px);box-shadow:0 2px 4px #dc35454d}.btn-delete-trip:active{transform:translateY(0)}.trip-timeline{display:flex;flex-direction:column;gap:var(--space-3);margin-bottom:var(--space-4)}.trip-timeline-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-lg);transition:all var(--transition-fast)}.trip-timeline-start,.trip-timeline-end{background:var(--color-bg-tertiary);border:2px solid var(--color-border-subtle);flex-direction:column;align-items:flex-start}.trip-timeline-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em}.trip-timeline-value{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-top:var(--space-1)}.trip-timeline-stage{background:var(--color-bg-tertiary);border:1px solid var(--color-border-subtle);cursor:pointer;margin-left:var(--space-4)}.trip-timeline-stage:hover{border-color:var(--color-primary);background:var(--color-bg-secondary);transform:translate(4px)}.trip-timeline-icon{font-size:1.75rem;flex-shrink:0}.trip-timeline-content{display:flex;flex-direction:column;gap:var(--space-1);flex:1}.trip-timeline-stage-title{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.trip-timeline-stage-date{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.trip-timeline-stage-header{display:flex;align-items:center;gap:var(--space-2)}.trip-timeline-stage--current{background:color-mix(in srgb,var(--color-primary) 12%,transparent);border:1px solid color-mix(in srgb,var(--color-primary) 40%,transparent)}.trip-timeline-stage--next{background:color-mix(in srgb,var(--color-success, #22c55e) 8%,transparent);border:1px solid color-mix(in srgb,var(--color-success, #22c55e) 30%,transparent)}.stage-now-badge{font-size:.65rem;font-weight:var(--font-weight-bold);letter-spacing:.06em;padding:2px 6px;border-radius:var(--radius-full);background:var(--color-primary);color:#fff}.stage-next-badge{font-size:.65rem;font-weight:var(--font-weight-bold);letter-spacing:.06em;padding:2px 6px;border-radius:var(--radius-full);background:var(--color-success, #22c55e);color:#fff}.trip-detail-header-right{display:flex;align-items:center;gap:var(--space-4)}.trip-info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-6);margin-bottom:var(--space-6)}.trip-info-item{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-4);background:var(--color-bg-tertiary);border-radius:var(--radius-lg)}.trip-info-label{font-size:var(--font-size-xs);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em;font-weight:var(--font-weight-medium)}.trip-info-value{font-size:var(--font-size-base);color:var(--color-text-primary);font-weight:var(--font-weight-semibold)}.trip-info-description{padding-top:var(--space-4);border-top:1px solid var(--color-border-subtle)}.trip-info-description p{color:var(--color-text-secondary);line-height:1.6}.trip-content-section{display:grid;grid-template-columns:1fr 400px;gap:var(--space-6);align-items:start}.trip-content-main{min-width:0}.trip-content-sidebar{position:sticky;top:calc(var(--space-6) + 80px)}.placeholder-card{background:var(--color-bg-secondary);border:1px solid var(--color-border-subtle);border-radius:var(--radius-2xl);padding:var(--space-8);text-align:center}.placeholder-card h3{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:var(--space-3)}.placeholder-card p{font-size:var(--font-size-base)}.loading-state,.error-state{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;gap:var(--space-4);padding:var(--space-6);text-align:center}.error-state h2{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.error-state p{color:var(--color-text-secondary);max-width:500px}@media (max-width: 768px){.trip-detail-header-content{flex-direction:column}.trip-detail-title{font-size:var(--font-size-2xl)}.trip-info-grid,.trip-content-section{grid-template-columns:1fr}.trip-content-sidebar{position:static}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--space-4)}.modal-content{background:var(--color-bg-secondary);border-radius:var(--radius-2xl);max-width:600px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.modal-header{display:flex;justify-content:space-between;align-items:flex-start;padding:var(--space-6);border-bottom:1px solid var(--color-border-subtle)}.modal-stage-type{display:inline-block;font-size:var(--font-size-sm);padding:var(--space-1) var(--space-3);background:var(--color-bg-tertiary);border-radius:var(--radius-full);margin-bottom:var(--space-2);color:var(--color-text-secondary);font-weight:var(--font-weight-medium)}.modal-title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin:0}.modal-close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--color-text-secondary);padding:var(--space-2);line-height:1;transition:all var(--transition-fast)}.modal-close:hover{color:var(--color-text-primary);transform:scale(1.1)}.modal-body{padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-4)}.modal-detail-item{display:flex;flex-direction:column;gap:var(--space-2)}.modal-detail-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary)}.modal-detail-value{font-size:var(--font-size-base);color:var(--color-text-primary)}.modal-detail-description .modal-detail-value{line-height:1.6;white-space:pre-wrap}.modal-footer{padding:var(--space-6);border-top:1px solid var(--color-border-subtle);display:flex;justify-content:flex-end}.btn-modal-delete{background-color:#dc3545;color:#fff;border:none;padding:var(--space-3) var(--space-5);border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);display:flex;align-items:center;gap:var(--space-2)}.btn-modal-delete:hover{background-color:#c82333;transform:translateY(-1px);box-shadow:0 2px 4px #dc35454d}.modal-documents-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-3)}.btn-modal-upload{background-color:var(--color-primary);color:#fff;border:none;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast)}.btn-modal-upload:hover{background-color:var(--color-primary-dark, #0056b3);transform:translateY(-1px)}.modal-upload-form{background-color:var(--color-bg-tertiary);padding:var(--space-4);border-radius:var(--radius-lg);margin-bottom:var(--space-4)}.modal-upload-form .form-group{margin-bottom:var(--space-3)}.modal-upload-form .form-label{display:block;margin-bottom:var(--space-2);font-weight:var(--font-weight-medium);color:var(--color-text-primary);font-size:var(--font-size-sm)}.modal-upload-form .form-input,.modal-upload-form .form-textarea{width:100%;padding:var(--space-2);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);font-size:var(--font-size-base);background-color:#fff;color:#212529}.modal-upload-form .form-input:focus,.modal-upload-form .form-textarea:focus{outline:none;border-color:var(--color-primary)}.modal-upload-form .form-input-file{width:100%;padding:var(--space-2);font-size:var(--font-size-sm)}.modal-upload-form .file-info{margin-top:var(--space-2);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.modal-documents-list{display:flex;flex-direction:column;gap:var(--space-2)}.modal-documents-empty{text-align:center;color:var(--color-text-secondary);font-style:italic;padding:var(--space-4)}.modal-document-item{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3);background-color:var(--color-bg-tertiary);border-radius:var(--radius-lg);border:1px solid var(--color-border-subtle);transition:all var(--transition-fast)}.modal-document-item:hover{border-color:var(--color-primary);box-shadow:0 2px 4px #0000001a}.modal-document-info{display:flex;align-items:center;gap:var(--space-3);flex:1;cursor:pointer}.modal-document-icon{font-size:1.5rem;flex-shrink:0}.modal-document-details{display:flex;flex-direction:column;gap:var(--space-1)}.modal-document-title{font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.modal-document-meta{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.modal-document-actions{display:flex;gap:var(--space-2);align-items:center}.alert-error{background-color:#f8d7da;color:#721c24;padding:var(--space-3);border-radius:var(--radius-md);margin-bottom:var(--space-3);border:1px solid #f5c6cb}
