*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--ink: #1a1a2e;--ink-soft: #3d3d5c;--ink-muted: #7b7b9a;--paper: #faf9f7;--paper-warm: #f5f2ec;--paper-dark: #ede9e0;--gold: #c9a84c;--gold-light: #e8d5a3;--gold-pale: #fdf6e3;--teal: #2d7d7d;--teal-light: #5aacac;--teal-pale: #e8f4f4;--coral: #d4614b;--coral-pale: #fdf0ed;--success: #3d7a4f;--shadow-sm: 0 1px 3px rgba(26,26,46,.08), 0 1px 2px rgba(26,26,46,.06);--shadow-md: 0 4px 16px rgba(26,26,46,.1), 0 2px 6px rgba(26,26,46,.07);--shadow-lg: 0 12px 40px rgba(26,26,46,.14), 0 4px 12px rgba(26,26,46,.08);--radius: 16px;--radius-sm: 10px;--radius-lg: 24px;--font-display: "Playfair Display", Georgia, serif;--font-body: "DM Sans", system-ui, sans-serif;--font-mono: "DM Mono", monospace;--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--ease-smooth: cubic-bezier(.4, 0, .2, 1)}html{font-size:16px;-webkit-font-smoothing:antialiased}body{font-family:var(--font-body);background:var(--paper);color:var(--ink);min-height:100vh;line-height:1.6}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--paper-dark);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--ink-muted)}h1,h2,h3,h4{font-family:var(--font-display);line-height:1.2}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes cardSwipeLeft{to{transform:translate(-120%) rotate(-15deg);opacity:0}}@keyframes cardSwipeRight{to{transform:translate(120%) rotate(15deg);opacity:0}}@keyframes floatUp{0%{opacity:0;transform:translateY(20px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}.animate-fade{animation:fadeIn .4s var(--ease-smooth) both}.animate-scale{animation:scaleIn .3s var(--ease-spring) both}.skeleton{background:linear-gradient(90deg,var(--paper-dark) 25%,var(--paper-warm) 50%,var(--paper-dark) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:6px}.btn-back-dash{font:500 .8rem var(--font-body);color:var(--ink-muted);background:none;border:none;cursor:pointer;padding:4px 10px;border-radius:6px;transition:all .2s var(--ease-smooth);white-space:nowrap}.btn-back-dash:hover{color:var(--teal);background:var(--teal-pale)}.btn-edit-trip{font:500 .8rem var(--font-body);color:var(--teal);background:var(--teal-pale);border:1px solid transparent;cursor:pointer;padding:4px 10px;border-radius:6px;transition:all .2s var(--ease-smooth);white-space:nowrap}.btn-edit-trip:hover{border-color:var(--teal);background:#fff}.fase-steps{display:flex;align-items:center;gap:4px;font:500 .72rem var(--font-body);color:var(--ink-muted);white-space:nowrap}.fase-steps span{padding:3px 8px;border-radius:20px;transition:all .2s}.fase-steps span.active{background:var(--teal-pale);color:var(--teal);font-weight:700}.fase-steps .sep{color:var(--paper-dark);font-size:.65rem;padding:0}.dashboard{min-height:100vh;background:var(--paper)}.dashboard-header-bar{display:flex;justify-content:flex-end;align-items:center;gap:1rem;padding:.75rem 1.5rem;background:#fff;border-bottom:1px solid var(--paper-dark);font-size:.85rem;color:var(--ink-muted)}.logout-btn{background:none;border:1px solid var(--paper-dark);padding:.35rem .75rem;border-radius:var(--radius-sm);cursor:pointer;font-size:.8rem;color:var(--ink-muted);transition:all .2s}.logout-btn:hover{color:var(--coral);border-color:var(--coral)}.dash-header{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;border-bottom:1px solid var(--paper-dark);background:#fff;position:sticky;top:0;z-index:10}.dash-logo{font-family:var(--font-display);font-size:1.4rem;font-weight:700;letter-spacing:-.5px}.dash-logo-w{color:var(--teal);font-style:italic}.dash-btn-new{font:600 .85rem var(--font-body);color:#fff;background:var(--ink);border:none;border-radius:var(--radius-sm);padding:10px 20px;cursor:pointer;transition:all .25s var(--ease-smooth)}.dash-btn-new:hover{background:var(--teal);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.dash-main{max-width:960px;margin:0 auto;padding:32px 24px 60px}.dash-title{font-family:var(--font-display);font-size:1.8rem;color:var(--ink);margin-bottom:24px}.dash-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px}.dash-card{background:#fff;border-radius:var(--radius);padding:20px;box-shadow:var(--shadow-sm);cursor:pointer;position:relative;display:flex;flex-direction:column;gap:12px;transition:transform .25s var(--ease-smooth),box-shadow .25s var(--ease-smooth);animation:floatUp .4s var(--ease-smooth) both;animation-delay:calc(min(var(--i, 0),8)*60ms)}.dash-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}.dash-card:active{transform:translateY(-1px)}.dash-card-delete{position:absolute;top:10px;right:10px;width:26px;height:26px;border-radius:50%;border:none;background:transparent;color:var(--ink-muted);font-size:.75rem;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:all .2s}.dash-card:hover .dash-card-delete{opacity:1}.dash-card-delete:hover{background:var(--coral-pale);color:var(--coral)}.dash-card-top{display:flex;align-items:center;gap:12px}.dash-card-emoji{font-size:2rem;line-height:1;flex-shrink:0}.dash-card-label-row{display:flex;align-items:center;gap:6px;flex:1;min-width:0}.dash-card-label{font-family:var(--font-display);font-size:1.15rem;font-weight:700;color:var(--ink);line-height:1.3}.dash-card-edit{background:none;border:none;padding:2px 4px;font-size:.8rem;cursor:pointer;opacity:.4;transition:opacity .2s;flex-shrink:0}.dash-card-edit:hover{opacity:1}.dash-card-label-input{font-family:var(--font-display);font-size:1.15rem;font-weight:700;color:var(--ink);background:var(--paper-warm);border:1px solid var(--teal);border-radius:6px;padding:2px 8px;outline:none;width:100%}.dash-card-meta{display:flex;flex-wrap:wrap;gap:8px;font-family:var(--font-mono);font-size:.72rem;color:var(--ink-muted)}.dash-card-fechas,.dash-card-viajeros{background:var(--paper-warm);padding:2px 8px;border-radius:4px}.dash-progress-track{width:100%;height:4px;background:var(--paper-dark);border-radius:2px;overflow:hidden}.dash-progress-fill{height:100%;border-radius:2px;background:linear-gradient(90deg,var(--teal),var(--gold));transition:width .4s var(--ease-smooth)}.dash-card-bottom{display:flex;align-items:center;justify-content:space-between}.dash-badge{font-family:var(--font-mono);font-size:.7rem;padding:3px 10px;border-radius:12px;font-weight:500}.dash-badge-onboard{background:var(--gold-pale);color:var(--gold)}.dash-badge-tinder{background:var(--teal-pale);color:var(--teal)}.dash-badge-done{background:#e8f5e9;color:var(--success)}.dash-card-action{font-size:.8rem;font-weight:600;color:var(--teal);opacity:0;transition:opacity .2s}.dash-card:hover .dash-card-action{opacity:1}.dash-empty{text-align:center;padding:80px 24px}.dash-empty-icon{font-size:4rem;margin-bottom:16px}.dash-empty h3{font-family:var(--font-display);font-size:1.5rem;color:var(--ink);margin-bottom:8px}.dash-empty p{color:var(--ink-muted);margin-bottom:24px;font-size:.95rem}.dash-btn-create{font:600 .9rem var(--font-body);color:#fff;background:var(--teal);border:none;border-radius:var(--radius-sm);padding:12px 28px;cursor:pointer;transition:all .25s var(--ease-smooth)}.dash-btn-create:hover{background:var(--ink);transform:translateY(-2px);box-shadow:var(--shadow-md)}.dash-overlay{position:fixed;inset:0;background:#1a1a2e80;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:100}.dash-modal{background:#fff;border-radius:var(--radius);padding:28px;max-width:400px;width:90%;box-shadow:var(--shadow-lg)}.dash-modal h3{font-family:var(--font-display);font-size:1.2rem;margin-bottom:8px;color:var(--ink)}.dash-modal p{color:var(--ink-soft);font-size:.9rem;line-height:1.5;margin-bottom:20px}.dash-modal-actions{display:flex;gap:10px;justify-content:flex-end}.dash-modal-cancel{font:500 .85rem var(--font-body);color:var(--ink-muted);background:var(--paper-warm);border:none;border-radius:8px;padding:8px 18px;cursor:pointer;transition:all .2s}.dash-modal-cancel:hover{background:var(--paper-dark);color:var(--ink)}.dash-modal-danger{font:600 .85rem var(--font-body);color:#fff;background:var(--coral);border:none;border-radius:8px;padding:8px 18px;cursor:pointer;transition:all .2s}.dash-modal-danger:hover{background:#c0503d;transform:translateY(-1px)}@media(max-width:600px){.dash-header{padding:12px 16px}.dash-main{padding:20px 16px 40px}.dash-title{font-size:1.4rem}.dash-grid{grid-template-columns:1fr;gap:14px}.dash-card-delete{opacity:1}.dash-card-edit{opacity:.6}.dash-card-action{opacity:1}.dash-btn-new{padding:8px 14px;font-size:.8rem}}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--paper);padding:1rem}.login-card{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:2.5rem;width:100%;max-width:400px}.login-logo{text-align:center;margin-bottom:2rem}.login-emoji{font-size:3rem;display:block;margin-bottom:.5rem}.login-logo h1{font-family:var(--font-display);font-size:2rem;color:var(--ink);margin:0}.login-logo p{color:var(--ink-muted);font-size:.9rem;margin:.25rem 0 0}.login-tabs{display:flex;gap:0;border-bottom:2px solid var(--paper-dark);margin-bottom:1.5rem}.login-tabs button{flex:1;background:none;border:none;padding:.75rem;font-family:var(--font-body);font-size:.95rem;color:var(--ink-muted);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:all .2s}.login-tabs button.active{color:var(--teal);border-bottom-color:var(--teal);font-weight:600}.login-form{display:flex;flex-direction:column;gap:1rem}.login-field{display:flex;flex-direction:column;gap:.4rem}.login-field label{font-size:.85rem;font-weight:600;color:var(--ink-soft)}.login-field input{padding:.75rem 1rem;border:1.5px solid var(--paper-dark);border-radius:var(--radius-sm);font-family:var(--font-body);font-size:.95rem;color:var(--ink);background:var(--paper);transition:border-color .2s}.login-field input:focus{outline:none;border-color:var(--teal)}.login-error{color:var(--coral);font-size:.85rem;margin:0;text-align:center}.login-submit{margin-top:.5rem;padding:.9rem;background:var(--teal);color:#fff;border:none;border-radius:var(--radius-sm);font-family:var(--font-body);font-size:1rem;font-weight:600;cursor:pointer;transition:opacity .2s,transform .1s}.login-submit:hover:not(:disabled){opacity:.9}.login-submit:active:not(:disabled){transform:scale(.98)}.login-submit:disabled{opacity:.6;cursor:not-allowed}.app{min-height:100vh}.app-skeleton{min-height:100vh;background:var(--paper);display:flex;flex-direction:column}.app-skeleton-bar{height:56px;background:#faf9f7eb;border-bottom:1px solid var(--paper-dark)}.app-skeleton-content{max-width:600px;width:100%;margin:40px auto;padding:0 20px;display:flex;flex-direction:column;gap:16px}.app-skeleton-block{height:20px;width:80%;background:linear-gradient(90deg,var(--paper-dark) 25%,var(--paper-warm) 50%,var(--paper-dark) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:6px}.app-skeleton-block.wide{width:100%;height:32px}.app-skeleton-block.narrow{width:50%}
