:root{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,sans-serif;line-height:1.5;font-weight:400;color:#0f172a;background-color:#f4f6fb;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--accent: #0f76ff;--surface: #ffffff;--border: #e2e8f0;--muted: #64748b;--muted-strong: #1e293b}*,*:before,*:after{box-sizing:border-box}html{font-size:16px}body{margin:0;min-height:100vh;background:radial-gradient(circle at top,#f8fbff,#eef3fb 45%,#f4f6fb)}#root{min-height:100vh}button,input,select{font-family:inherit}.app-shell{max-width:1100px;margin:0 auto;padding:2rem 1.5rem 4rem;display:flex;flex-direction:column;gap:2rem;min-height:100vh;justify-content:center}.stepper{background:var(--surface);border-radius:1.2rem;padding:1.5rem;box-shadow:0 25px 45px #0f172a14;display:flex;flex-direction:column;gap:1rem}.kicker{text-transform:uppercase;letter-spacing:.08em;font-size:.85rem;color:var(--accent);font-weight:600;margin-bottom:.25rem}.stepper-tabs{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:.75rem}.stepper-tab{border:1px solid var(--border);border-radius:1rem;padding:.75rem .9rem;display:flex;gap:.9rem;align-items:center;background:#fff;cursor:pointer;transition:border-color .18s ease,box-shadow .18s ease,color .18s ease,transform .12s ease}.stepper-tab strong{font-size:1rem;display:block}.stepper-tab p{margin:.1rem 0 0;font-size:.85rem;color:var(--muted)}.stepper-tab:active:not(.locked){transform:scale(.97)}.stepper-tab.active{border-color:var(--accent);box-shadow:0 12px 20px #0f76ff26}.stepper-tab.complete .step-circle{background:var(--accent);color:#fff}.stepper-tab.locked{opacity:.55;cursor:default}.stepper-tab:disabled{cursor:default}.step-circle{width:36px;height:36px;border-radius:999px;border:1px solid var(--border);display:inline-flex;align-items:center;justify-content:center;font-weight:600}.step-text{display:flex;flex-direction:column;gap:0}.stepper-controls{width:100%;display:flex;flex-direction:column;gap:1rem}.stepper-nav-row{width:100%;display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:nowrap}.stepper-storage{display:flex;gap:.75rem;align-items:center}.nav-btn{min-width:120px}.btn-img{display:flex;align-items:center;gap:8px}.btn-img.load{background-color:#05c1ff}.btn-img.save{background-color:#11cf5d}.btn-img-icon{width:18px;height:18px;object-fit:contain;display:block}.stepper-controls button.invisible{visibility:hidden;opacity:0;pointer-events:none}.stepper-controls button{border-radius:.8rem;border:none;padding:.65rem 1.4rem;font-size:.95rem;font-weight:600;background:var(--accent);color:#fff;cursor:pointer;transition:opacity .12s ease,transform .12s ease,box-shadow .12s ease;position:relative;overflow:hidden}.stepper-controls button:active:not(:disabled){transform:scale(.96);box-shadow:0 4px 8px #0f76ff4d}.stepper-controls button:not(:disabled):hover{box-shadow:0 6px 12px #0f76ff40}.stepper-controls button:disabled{opacity:.35;cursor:default}@media(max-width:610px){.stepper-nav-row{display:grid;grid-template-columns:1fr 1fr;grid-template-areas:"back next" "load save";gap:.75rem}.nav-prev{grid-area:back;justify-self:start}.nav-next{grid-area:next;justify-self:end}.stepper-storage{display:contents}.stepper-storage{grid-area:load}.stepper-storage button{width:120px}.stepper-storage button:nth-child(1){justify-self:start}.stepper-storage button:nth-child(2){justify-self:end}}@media(max-width:480px){.stepper-nav-row{flex-wrap:wrap;gap:.75rem}.nav-btn{flex:1 1 calc(50% - .5rem)}.stepper-storage{width:100%;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.stepper-storage button{flex:1 1 calc(50% - .5rem)}}.header{text-align:left;display:flex;flex-direction:column;gap:.5rem}.header h1{margin:0;font-size:clamp(1.8rem,3vw,2.6rem)}.header p{margin:10px;font-size:2.5rem;text-align:center;text-transform:uppercase;color:var(--accent);font-weight:600;margin-bottom:.25rem}@media(max-width:550px){.header p{font-size:1.8rem}}@media(max-width:420px){.header p{font-size:1.5rem}}.step-slider{border-radius:1rem;overflow:hidden;position:relative}.step-slide{width:100%;animation:fadeIn .22s ease}.step-slide>*{width:100%}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.toast{position:relative;min-width:320px;max-width:420px;background:#fff;border-radius:12px;box-shadow:0 8px 24px #0f172a26,0 2px 8px #0f172a1a;padding:16px;animation:slideInRight .3s ease-out;border-left:4px solid;transition:opacity .3s ease-out,transform .3s ease-out}.toast.toast-exiting{animation:fadeOut .3s ease-out forwards}.toast.toast-success{border-left-color:#11cf5d}.toast.toast-error{border-left-color:#ef4444}.toast.toast-info{border-left-color:#0f76ff}.toast-content{display:flex;align-items:flex-start;gap:12px}.toast-icon{flex-shrink:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%;margin-top:2px}.toast-success .toast-icon{color:#11cf5d;background:#11cf5d1a}.toast-error .toast-icon{color:#ef4444;background:#ef44441a}.toast-info .toast-icon{color:#0f76ff;background:#0f76ff1a}.toast-icon svg{width:16px;height:16px}.toast-message{flex:1;margin:0;font-size:14px;line-height:1.5;color:var(--muted-strong);font-weight:500}.toast-close{flex-shrink:0;background:none;border:none;padding:4px;cursor:pointer;color:var(--muted);display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .15s ease;margin-top:-2px}.toast-close:hover{background:#0f172a0d;color:var(--muted-strong)}.toast-close:active{transform:scale(.95)}.toast-close svg{width:14px;height:14px}@keyframes slideInRight{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes fadeOut{0%{transform:translate(0);opacity:1}to{transform:translate(100%);opacity:0}}@media(max-width:480px){.toast{min-width:auto;max-width:none}}.toast-container{position:fixed;bottom:0;right:0;z-index:10000;display:flex;flex-direction:column-reverse;gap:12px;padding:24px;pointer-events:none;align-items:flex-end;max-height:calc(100vh - 48px);overflow-y:auto;overflow-x:hidden}.toast-container>*{pointer-events:auto}.toast-container::-webkit-scrollbar{width:4px}.toast-container::-webkit-scrollbar-track{background:transparent}.toast-container::-webkit-scrollbar-thumb{background:#0f172a33;border-radius:2px}.toast-container::-webkit-scrollbar-thumb:hover{background:#0f172a4d}@media(max-width:480px){.toast-container{padding:16px;gap:10px;left:0;align-items:stretch;max-height:calc(100vh - 32px)}}.custom-select{position:relative;width:100%;font-family:inherit;z-index:1}.custom-select.open{z-index:99999}.select-trigger{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.7rem .9rem;background:#fff;border:1px solid var(--border);border-radius:.65rem;cursor:pointer;transition:all .18s ease;min-height:44px}.select-trigger:hover:not(.disabled){border-color:var(--accent);box-shadow:0 4px 12px #0f76ff1a}.select-trigger:focus-within{border-color:var(--accent);box-shadow:0 12px 20px #0f76ff26;outline:none}.select-value{color:var(--muted-strong);font-size:1rem;font-weight:500;flex:1;text-align:left}.select-placeholder{color:var(--muted);font-size:1rem;flex:1;text-align:left}.select-arrow{color:var(--muted);transition:transform .2s ease;flex-shrink:0}.select-arrow.open{transform:rotate(180deg)}.custom-select.disabled{pointer-events:none}.custom-select.disabled .select-trigger{background:#f1f3f5;cursor:default;opacity:.5;border-color:#e2e8f0;color:var(--muted)}.custom-select.disabled .select-trigger:hover{border-color:#e2e8f0;box-shadow:none}.custom-select.disabled .select-placeholder,.custom-select.disabled .select-value{color:var(--muted)}.custom-select.disabled .select-arrow{color:var(--muted);opacity:.5}.select-dropdown{position:fixed;z-index:99999;background:#fff;border:1px solid var(--border);border-radius:.75rem;box-shadow:0 8px 24px #0f172a1f,0 2px 8px #0f172a14;overflow:hidden;animation:slideDown .2s ease;max-height:280px;overflow-y:auto;will-change:transform,opacity;transform-origin:top center;isolation:isolate}.select-dropdown::-webkit-scrollbar{width:6px}.select-dropdown::-webkit-scrollbar-track{background:transparent}.select-dropdown::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.select-dropdown::-webkit-scrollbar-thumb:hover{background:var(--muted)}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.select-options{padding:.5rem;display:flex;flex-direction:column;gap:.25rem}.select-option{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem 1rem;border-radius:.6rem;cursor:pointer;transition:all .15s ease;position:relative;background:#fff;color:var(--muted-strong);font-size:.95rem;font-weight:500}.select-option:hover:not(.disabled):not(.selected){background:#0f76ff14;color:var(--accent);transform:translate(2px)}.select-option.selected{background:linear-gradient(135deg,#0f76ff1f,#0f76ff14);color:var(--accent);font-weight:600;border:1px solid rgba(15,118,255,.2)}.select-option.selected .check-icon{color:var(--accent);animation:checkIn .2s ease}.select-option.disabled{opacity:.5;cursor:default;background:#f8f9fa}.option-label{flex:1;text-align:left}.check-icon{flex-shrink:0;width:16px;height:16px;color:var(--accent)}@keyframes checkIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}td .custom-select .select-trigger{height:40px;padding:.55rem .8rem;border-radius:.6rem}td .custom-select .select-value,td .custom-select .select-placeholder{font-size:.95rem}td .custom-select .select-option{padding:.65rem .9rem;font-size:.9rem}@media(max-width:640px){.select-trigger{padding:.6rem .8rem;min-height:40px}.select-value,.select-placeholder{font-size:.95rem}td .custom-select .select-trigger{padding:.5rem .6rem;min-height:36px}td .custom-select .select-value,td .custom-select .select-placeholder{font-size:.85rem}}@media(max-width:480px){td .custom-select .select-trigger{padding:.45rem .5rem;min-height:34px}td .custom-select .select-value,td .custom-select .select-placeholder{font-size:.8rem}td .custom-select .select-option{padding:.6rem .8rem;font-size:.85rem}}.board-fieldset{border:1px solid var(--border);border-radius:1rem;padding:1rem}.board-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-top:1rem}.board-card{border:1px solid var(--border);border-radius:.9rem;padding:.9rem;display:flex;gap:.8rem;cursor:pointer;transition:border-color .12s ease,transform .12s ease,box-shadow .12s ease}.board-card:hover{border-color:var(--accent)}.board-card:active{transform:scale(.98)}.board-card input{margin-top:.2rem}.board-card p{margin:.25rem 0 0;color:var(--muted);font-size:.9rem}.table-wrapper{overflow-x:auto;overflow-y:visible;-webkit-overflow-scrolling:touch;scrollbar-width:thin;position:relative;z-index:0}.table-wrapper::-webkit-scrollbar{height:8px}.table-wrapper::-webkit-scrollbar-track{background:var(--surface);border-radius:4px}.table-wrapper::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.table-wrapper::-webkit-scrollbar-thumb:hover{background:var(--muted-strong)}table{width:100%;border-collapse:collapse;font-size:.95rem;position:relative}th,td{text-align:left;padding:.75rem;border-bottom:1px solid var(--border);position:relative;overflow:visible}td.day{min-width:80px}td.hotel,td.hotel .custom-select{width:300px}td.meal,td.meal .custom-select{width:250px}th{color:var(--muted-strong);font-size:.85rem;text-transform:uppercase;letter-spacing:.05em}td select{width:100%;border-radius:.6rem;border:1px solid var(--border);padding:.55rem .8rem;transition:border-color .18s ease,box-shadow .18s ease}td select:focus{border-color:var(--accent);box-shadow:0 12px 20px #0f76ff26;outline:none}.day-label{font-weight:600;margin:0}.day-subtitle{margin:0;color:var(--muted);font-size:.85rem}.rule-hint{margin-top:1rem;font-size:.9rem;color:var(--muted)}@media(max-width:640px){.table-wrapper{margin:0 -1.2rem;padding:0 1.2rem}table{font-size:.85rem;min-width:600px}th,td{padding:.6rem .4rem;white-space:nowrap}th{font-size:.75rem}td select{padding:.5rem .6rem;font-size:.85rem}.day-label{font-size:.9rem}.day-subtitle{font-size:.75rem}.rule-hint{font-size:.85rem;margin-top:.75rem}}@media(max-width:480px){.table-wrapper{margin:0 -1rem;padding:0 1rem}table{min-width:550px;font-size:.8rem}th,td{padding:.5rem .3rem}th{font-size:.7rem}td select{padding:.45rem .5rem;font-size:.8rem}.day-label{font-size:.85rem}.day-subtitle{font-size:.7rem}}.panel{background:var(--surface);border-radius:1rem;padding:1.5rem;box-shadow:0 15px 35px #0f172a14;display:flex;flex-direction:column;gap:1.5rem;position:relative;z-index:0}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}.field{display:flex;flex-direction:column;gap:.35rem;font-weight:600;color:var(--muted-strong)}.field input{border-radius:.65rem;border:1px solid var(--border);background:#fff;padding:.7rem .9rem;font-size:1rem;transition:border-color .18s ease,box-shadow .18s ease}.field input:focus,.field input:active,.field input:hover{border-color:var(--accent);box-shadow:0 12px 20px #0f76ff26;outline:none}.field select{border-radius:.65rem;border:1px solid var(--border);background:#fff;padding:.7rem .9rem;font-size:1rem;transition:border-color .18s ease,box-shadow .18s ease}.field select:focus,.field select:hover{border-color:var(--accent);box-shadow:0 12px 20px #0f76ff26;outline:none}@media(max-width:640px){.panel{padding:1.2rem}}.summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem}.summary-card{border:1px solid var(--border);border-radius:1rem;padding:1rem;background:#fff}.summary-card h3{margin-top:0}.summary-card ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.8rem}.summary-card li{display:flex;justify-content:space-between;font-size:.95rem;color:var(--muted-strong)}.summary-card strong{font-weight:600;color:inherit}.daily-list li{flex-direction:column;gap:.3rem;border-bottom:1px solid var(--border);padding-bottom:.7rem}.daily-list li:last-child{border-bottom:none;padding-bottom:0}.daily-list div{display:flex;justify-content:space-between}.totals-card{border:2px solid var(--accent);border-radius:1rem;padding:1rem;background:#0f76ff0a}.totals-card header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.totals-card ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.6rem}.totals-card li{display:grid;grid-template-columns:80px 1fr auto;gap:.75rem;align-items:center}.muted{color:var(--muted);font-size:.9rem}@media(max-width:640px){.totals-card li{grid-template-columns:60px 1fr;grid-template-areas:"label price" "desc desc"}}
