:root{--bg:#f0efe8;--panel:#fff;--line:#cfdbd3;--ink:#1a3331;--muted:#5a7472;--accent:#2c8b72}*{box-sizing:border-box}html,body{min-height:100%;margin:0;padding:0}body{color:var(--ink);background:radial-gradient(70rem 40rem at 100% 0%, #d7e9de 0%, transparent 62%), radial-gradient(45rem 30rem at -5% 105%, #f7e4c3 0%, transparent 52%), var(--bg);padding:.8rem;font-family:Avenir Next,Segoe UI,Trebuchet MS,sans-serif}h1,h2{margin:0}.app-shell{gap:1rem;max-width:1240px;margin:0 auto;display:grid}.app-header{border:1px solid var(--line);background:linear-gradient(120deg,#fff,#f0f8f4);border-radius:1rem;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:1rem;display:flex}.app-header h1{letter-spacing:-.02em;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.5rem,3vw,2rem)}.app-header p{color:var(--muted);margin:.35rem 0 0;font-size:.92rem}.status-pill{color:#1f6d5a;background:#e9f7f1;border:1px solid #b9dfd1;border-radius:999px;padding:.28rem .66rem;font-size:.78rem;font-weight:700}.trip-selector{border:1px solid var(--line);background:var(--panel);border-radius:.86rem;gap:.35rem;padding:.8rem;display:grid}.trip-selector label{color:#3b5d58;font-size:.82rem;font-weight:700}.trip-selector select{width:100%;font:inherit;color:#2f534e;border:1px solid #d2e0d9;border-radius:.56rem;padding:.46rem}.build-grid{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.forms-column,.data-column{align-content:start;gap:.7rem;display:grid}.panel{border:1px solid var(--line);background:var(--panel);border-radius:.92rem;padding:.8rem}.panel h2{letter-spacing:-.01em;font-size:1rem}.panel-form{gap:.42rem;margin-top:.65rem;display:grid}.panel-form input,.panel-form textarea,.panel-form select{width:100%;font:inherit;color:#2e554f;background:#fff;border:1px solid #d2e0d9;border-radius:.56rem;padding:.44rem;font-size:.83rem}.panel-form textarea{resize:vertical;min-height:5rem}.panel-form button{color:#1f6a56;cursor:pointer;background:#e8f7f0;border:1px solid #badecf;border-radius:.6rem;justify-self:start;padding:.42rem .72rem;font-size:.8rem;font-weight:700}.panel-form button:hover{filter:brightness(.98)}.row{grid-template-columns:1fr 1fr;gap:.42rem;display:grid}.muted{color:var(--muted);margin:.46rem 0 0;font-size:.82rem}.stats{grid-template-columns:repeat(3,1fr);gap:.4rem;margin-top:.6rem;display:grid}.stats>div{border:1px solid #d7e4dd;border-radius:.6rem;padding:.44rem}.stats span{color:#64807b;font-size:.74rem;display:block}.stats strong{color:#2a5951;margin-top:.14rem;font-size:.95rem;display:block}.list{gap:.4rem;margin:.62rem 0 0;padding:0;display:grid}.list li{color:#48645f;background:#fff;border:1px solid #d7e4dd;border-radius:.62rem;padding:.5rem;font-size:.8rem;list-style:none}.list li b{color:#2a5b53;margin-bottom:.14rem;font-size:.84rem;display:block}.list li span{font-size:.76rem;display:block}.list li small{color:#6a827d;margin-top:.12rem;font-size:.72rem;display:block}.calendar-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;display:flex}.calendar-year-actions{align-items:center;gap:.45rem;display:flex}.calendar-year-actions button{color:#1f6a56;cursor:pointer;background:#e8f7f0;border:1px solid #badecf;border-radius:.5rem;padding:.3rem .6rem;font-size:.76rem;font-weight:700}.calendar-year-actions strong{text-align:center;color:#2a5b53;min-width:3.8rem;font-size:.9rem}.calendar-nav-actions{align-items:center;gap:.5rem;display:flex}.calendar-nav-btn{color:#1f6a56;cursor:pointer;background:#e8f7f0;border:1px solid #badecf;border-radius:.5rem;justify-content:center;align-items:center;width:2rem;height:2rem;transition:all .15s;display:flex}.calendar-nav-btn:hover{background:#d8f0e6;border-color:#9fd1c0}.calendar-nav-btn svg{width:1rem;height:1rem}.calendar-nav-label{text-align:center;color:#2a5b53;min-width:10rem;font-size:.9rem;font-weight:600}.calendar-legend{color:#56736e;flex-wrap:wrap;align-items:center;gap:.85rem;margin-top:.5rem;font-size:.78rem;display:flex}.calendar-legend span{align-items:center;gap:.35rem;display:inline-flex}.legend-dot{border-radius:999px;width:.55rem;height:.55rem;display:inline-block}.legend-dot.flight{background:#2c8b72}.legend-dot.hotel{background:#c17a33}.year-calendar{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem;margin-top:.62rem;display:grid}.month-card{background:0 0;padding:0}.month-card h3{color:var(--ink);margin:0 0 .5rem;font-size:.9rem;font-weight:600}.month-weekdays{grid-template-columns:repeat(7,minmax(0,1fr));gap:0;margin-bottom:.25rem;display:grid}.month-weekdays span{text-align:center;color:var(--muted);padding:.25rem 0;font-size:.65rem;font-weight:500}.month-days{grid-template-columns:repeat(7,minmax(0,1fr));gap:0;display:grid}.day-cell{aspect-ratio:1;cursor:default;background:0 0;border:none;flex-direction:column;justify-content:flex-start;align-items:center;min-height:2.2rem;padding:.15rem;display:flex;position:relative}.day-cell.empty-cell{pointer-events:none;background:0 0}.day-number{width:1.6rem;height:1.6rem;color:var(--ink);border-radius:50%;justify-content:center;align-items:center;font-size:.72rem;font-weight:500;transition:background-color .15s;display:flex}.day-cell:hover .day-number{background-color:#0000000f}.day-cell.today .day-number{background-color:var(--accent);color:#fff;font-weight:900}.day-cell.today:hover .day-number{background-color:#247a63}.event-dots{flex-wrap:wrap;justify-content:center;align-items:center;gap:.2rem;max-width:100%;margin-top:.15rem;display:flex}.event-dot{border-radius:50%;flex-shrink:0;width:.35rem;height:.35rem}.event-dot.flight{background:#2c8b72}.event-dot.hotel{background:#c17a33}.day-cell.clickable{cursor:pointer}.day-cell.clickable:hover{background-color:#0000000a}.day-flight-range{background:linear-gradient(#2c8b721f,#2c8b7214)}.day-hotel-range{background:linear-gradient(#c17a331f,#c17a3314)}.day-both-range{background:linear-gradient(135deg,#2c8b721a 0%,#2c8b720d 45%,#c17a330d 55%,#c17a331a 100%)}.day-range-start{border-top-left-radius:.5rem;border-bottom-left-radius:.5rem}.day-range-end{border-top-right-radius:.5rem;border-bottom-right-radius:.5rem}.day-range-start.day-range-end{border-radius:.5rem}.booking-card{cursor:pointer;transition:background-color .3s,box-shadow .3s;position:relative}.booking-card-delete{color:#9ca3af;cursor:pointer;opacity:.5;z-index:1;background:0 0;border:none;border-radius:.25rem;justify-content:center;align-items:center;width:1.5rem;height:1.5rem;font-size:1.25rem;font-weight:300;line-height:1;transition:opacity .15s,color .15s,background-color .15s;display:flex;position:absolute;top:.5rem;right:.5rem}.booking-card:hover .booking-card-delete{opacity:1}.booking-card-delete:hover{color:#dc2626;background-color:#dc26261a}.booking-card-summary{padding-right:1.5rem}.booking-card-header{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.booking-card-route{color:#64807b;margin-top:.2rem;font-size:.76rem;display:block}.booking-card-date{color:#6a827d;margin-top:.15rem;font-size:.72rem;display:block}.chevron{color:#9ca3af;margin-left:.25rem;font-size:.7rem;transition:transform .2s;display:inline-block}.chevron.expanded{transform:rotate(90deg)}.booking-card-details{opacity:0;max-height:0;transition:max-height .3s ease-out,opacity .3s ease-out;overflow:hidden}.booking-card-details.expanded{opacity:1;max-height:500px}.booking-card-divider{background:linear-gradient(90deg,#0000,#d7e4dd,#0000);height:1px;margin:.75rem 0}.booking-card-detail-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.6rem 1rem;display:grid}.detail-item{flex-direction:column;gap:.15rem;display:flex}.detail-label{color:#9ca3af;text-transform:uppercase;letter-spacing:.03em;font-size:.7rem}.detail-value{color:#2a5b53;font-size:.8rem;font-weight:500}.booking-card.booking-highlight{animation:.6s ease-out booking-flash;box-shadow:0 0 0 2px #f0d78c,0 4px 12px #f0d78c4d;background-color:#fef9e7!important}@keyframes booking-flash{0%{background-color:#f0d78c;box-shadow:0 0 0 4px #f0d78c,0 8px 24px #f0d78c80}to{background-color:#fef9e7;box-shadow:0 0 0 2px #f0d78c,0 4px 12px #f0d78c4d}}.event-badge,.event-more{display:none}@media (max-width:980px){.build-grid{grid-template-columns:1fr}.year-calendar{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:620px){.row,.stats,.year-calendar{grid-template-columns:1fr}}.import-dialog-overlay{z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#1a333180;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.import-dialog{background:var(--panel);border:1px solid var(--line);border-radius:1rem;flex-direction:column;width:100%;max-width:520px;max-height:90vh;display:flex;overflow:hidden;box-shadow:0 20px 60px #1a333126}.import-dialog-header{border-bottom:1px solid var(--line);background:linear-gradient(120deg,#fff,#f0f8f4);justify-content:space-between;align-items:center;padding:1rem 1.25rem;display:flex}.import-dialog-header h2{color:var(--ink);margin:0;font-size:1.1rem;font-weight:600}.import-dialog-close{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:.35rem;padding:.25rem;font-size:1.5rem;line-height:1;transition:background .15s}.import-dialog-close:hover{color:var(--ink);background:#f0f4f2}.import-dialog-content{flex:1;padding:1.25rem;overflow-y:auto}.import-dialog-subtitle{color:var(--muted);margin:0 0 1rem;font-size:.9rem}.import-dialog-subtitle strong{color:var(--ink)}.import-dropzone{text-align:center;cursor:pointer;background:#f8fcfa;border:2px dashed #badecf;border-radius:.86rem;padding:2rem 1.5rem;transition:all .2s}.import-dropzone:hover,.import-dropzone.active{border-color:var(--accent);background:#e8f7f0}.import-dropzone-icon{color:var(--accent);opacity:.8;margin-bottom:.75rem}.import-dropzone-text{color:var(--ink);margin:0 0 .35rem;font-size:.95rem}.import-dropzone-hint{color:var(--muted);margin:0;font-size:.8rem}.import-email-info{background:#f4f9f7;border:1px solid #d7e4dd;border-radius:.62rem;align-items:flex-start;gap:.75rem;margin-top:1.25rem;padding:1rem;display:flex}.import-email-icon{background:var(--accent);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:2rem;height:2rem;font-size:1rem;font-weight:600;display:flex}.import-email-label{color:var(--muted);margin:0 0 .25rem;font-size:.8rem}.import-email-address{color:var(--ink);background:#fff;border:1px solid #d2e0d9;border-radius:.35rem;padding:.35rem .6rem;font-family:SF Mono,Monaco,monospace;font-size:.85rem;display:block}.import-loading{text-align:center;padding:2rem 1rem}.import-spinner{border:3px solid #e8f7f0;border-top-color:var(--accent);border-radius:50%;width:48px;height:48px;margin:0 auto 1rem;animation:1s linear infinite import-spin}@keyframes import-spin{to{transform:rotate(360deg)}}.import-loading p{color:var(--ink);margin:0 0 .5rem;font-weight:500}.import-loading-hint{color:var(--muted);margin:0;font-size:.85rem}.import-confirm{padding:.5rem 0}.import-summary{text-align:center;border-bottom:1px solid var(--line);margin-bottom:1.25rem;padding-bottom:1rem}.import-summary h3{color:var(--ink);margin:0 0 .5rem;font-size:1.1rem}.import-summary-stats{color:var(--muted);justify-content:center;gap:1rem;margin:0;font-size:.9rem;display:flex}.import-summary-stats span{background:#f4f9f7;border:1px solid #d7e4dd;border-radius:999px;padding:.25rem .75rem}.import-section{margin-bottom:1.25rem}.import-section h4{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin:0 0 .75rem;font-size:.9rem}.import-list{flex-direction:column;gap:.75rem;margin:0;padding:0;list-style:none;display:flex}.import-item{background:#fcfefd;border:1px solid #d7e4dd;border-radius:.62rem;padding:.875rem}.import-item-header{align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.import-item-type{text-transform:uppercase;letter-spacing:.03em;border-radius:.25rem;padding:.15rem .4rem;font-size:.65rem;font-weight:700}.import-item-type.flight{color:#1d6a58;background:#daf2e8}.import-item-type.hotel{color:#7b4d1a;background:#f8e9d9}.import-item-header strong{color:var(--ink);font-size:.95rem}.import-item-route{color:var(--ink);margin-bottom:.35rem;font-size:.85rem}.import-item-location{color:var(--muted);margin-bottom:.35rem;font-size:.85rem}.import-item-dates{color:var(--muted);flex-direction:column;gap:.15rem;font-size:.8rem;display:flex}.import-item-ref{color:var(--muted);margin-top:.5rem;font-family:SF Mono,Monaco,monospace;font-size:.75rem}.import-actions{border-top:1px solid var(--line);gap:.75rem;margin-top:1.5rem;padding-top:1rem;display:flex}.import-btn-primary{border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer;border-radius:.6rem;flex:1;padding:.6rem 1rem;font-size:.9rem;font-weight:600;transition:filter .15s}.import-btn-primary:hover{filter:brightness(1.1)}.import-btn-secondary{color:var(--muted);cursor:pointer;background:#fff;border:1px solid #d2e0d9;border-radius:.6rem;flex:1;padding:.6rem 1rem;font-size:.9rem;font-weight:600;transition:all .15s}.import-btn-secondary:hover{color:var(--ink);background:#f4f9f7}.import-success,.import-error{text-align:center;padding:1.5rem 1rem}.import-success-icon,.import-error-icon{border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;margin:0 auto 1rem;font-size:2rem;font-weight:700;display:flex}.import-success-icon{color:var(--accent);background:#e8f7f0}.import-error-icon{color:#dc2626;background:#fef2f2}.import-success h3,.import-error h3{color:var(--ink);margin:0 0 .5rem;font-size:1.1rem}.import-success p,.import-error p{color:var(--muted);margin:0 0 1.5rem;font-size:.9rem}.panel-header-with-action{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.panel-header-with-action h2{margin:0}.import-inline-btn{color:#1f6a56;cursor:pointer;white-space:nowrap;background:#e8f7f0;border:1px solid #b9dfd1;border-radius:.5rem;align-items:center;gap:.4rem;padding:.35rem .65rem;font-size:.78rem;font-weight:600;transition:all .15s;display:inline-flex}.import-inline-btn:hover:not(:disabled){background:#d8f0e6;border-color:#9fd1c0}.import-inline-btn:disabled{opacity:.7;cursor:not-allowed}.import-inline-btn svg{width:14px;height:14px}.import-inline-btn-hotel{color:#8b5a2b;background:#fdf6f0;border-color:#e8d5c4}.import-inline-btn-hotel:hover:not(:disabled){background:#f8ece2;border-color:#dcc4b0}.import-inline-spinner{border:2px solid #e8f7f0;border-top-color:currentColor;border-radius:50%;width:12px;height:12px;animation:.8s linear infinite import-inline-spin}@keyframes import-inline-spin{to{transform:rotate(360deg)}}.import-inline-error{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:.5rem;margin-top:.5rem;padding:.5rem .75rem;font-size:.8rem}.import-btn-group{flex-wrap:wrap;gap:.5rem;display:flex}.import-btn{color:#1f6a56;cursor:pointer;background:#e8f7f0;border:1px solid #badecf;border-radius:.6rem;align-items:center;gap:.4rem;padding:.42rem .72rem;font-size:.8rem;font-weight:700;transition:filter .15s;display:inline-flex}.import-btn:hover{filter:brightness(.95)}.import-btn svg{width:16px;height:16px}.import-btn-flight{color:#1f6a56;background:#e8f7f0;border-color:#b9dfd1}.import-btn-flight:hover{background:#d8f0e6}.import-btn-hotel{color:#8b5a2b;background:#fdf6f0;border-color:#e8d5c4}.import-btn-hotel:hover{background:#f8ece2}.logout-btn{color:var(--muted);cursor:pointer;background:#fff;border:1px solid #d2e0d9;border-radius:.5rem;padding:.28rem .66rem;font-size:.78rem;font-weight:600;transition:all .15s}.logout-btn:hover{color:var(--ink);background:#f4f9f7;border-color:#badecf}.paste-btn{color:#3d5a8a;background:#f0f4fa;border-color:#c9d5e8}.paste-btn:hover:not(:disabled){background:#e4ebf5;border-color:#a8bbd9}.paste-booking-container{background:#f8fafc;border:1px solid #e2e8f0;border-radius:.62rem;margin:.75rem 0;padding:.75rem}.paste-booking-textarea{width:100%;min-height:120px;font:inherit;color:#2e554f;resize:vertical;background:#fff;border:1px solid #d2e0d9;border-radius:.5rem;padding:.6rem;font-size:.85rem;line-height:1.5}.paste-booking-textarea:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 2px #2c8b721a}.paste-booking-textarea::placeholder{color:#94a3b8}.paste-booking-actions{gap:.5rem;margin-top:.75rem;display:flex}.paste-parse-btn{border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer;border-radius:.5rem;padding:.4rem 1rem;font-size:.8rem;font-weight:600;transition:filter .15s}.paste-parse-btn:hover:not(:disabled){filter:brightness(1.1)}.paste-parse-btn:disabled{opacity:.7;cursor:not-allowed}.paste-cancel-btn{color:var(--muted);cursor:pointer;background:#fff;border:1px solid #d2e0d9;border-radius:.5rem;padding:.4rem 1rem;font-size:.8rem;font-weight:600;transition:all .15s}.paste-cancel-btn:hover{color:var(--ink);background:#f4f9f7;border-color:#badecf}
