:root{font-family:DM Sans,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#172019;background:#f2f4ef;font-synthesis:none;text-rendering:optimizeLegibility;--ink: #172019;--muted: #687169;--line: #dfe4dc;--panel: #fff;--accent: #125e43;--accent-strong: #0b4933;--lime: #d9f15b;--danger: #a63b32;--warning: #986d12;--shadow: 0 18px 55px rgba(32, 49, 38, .08)}*{box-sizing:border-box}html{min-width:320px;scroll-behavior:smooth}body{margin:0;min-width:320px;min-height:100vh;background:linear-gradient(rgba(18,94,67,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(18,94,67,.035) 1px,transparent 1px),#f2f4ef;background-size:36px 36px}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}.app-shell{min-height:100vh}.topbar{width:min(1440px,calc(100% - 48px));height:82px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(23,32,25,.1)}.brand{color:inherit;text-decoration:none;display:inline-flex;align-items:center;gap:12px}.brand-logo{width:42px;height:42px;border-radius:13px;display:block;object-fit:cover}.brand>span:last-child{display:flex;flex-direction:column;line-height:1.05}.brand strong{font-family:Manrope,sans-serif;font-size:16px}.brand small{color:var(--muted);font-size:11px;margin-top:5px;text-transform:uppercase;letter-spacing:.12em}.topbar-status{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:13px}.topbar-status b{color:var(--ink);margin-left:6px;background:#fff;border:1px solid var(--line);padding:5px 9px;border-radius:999px}main{width:min(1440px,calc(100% - 48px));margin:0 auto;padding-bottom:80px}.hero{min-height:330px;padding:68px 8px 54px;display:flex;justify-content:space-between;align-items:flex-end}.hero-copy{max-width:780px}.hero h1{font-family:Manrope,sans-serif;font-size:clamp(46px,6vw,84px);letter-spacing:-.055em;line-height:.98;margin:0;font-weight:800}.hero p{width:min(620px,100%);margin:26px 0 0;color:var(--muted);font-size:18px;line-height:1.6}.hero-stat{display:flex;align-items:center;gap:16px;margin-bottom:6px}.hero-stat strong{font:800 64px/1 Manrope,sans-serif;color:var(--accent)}.hero-stat span{color:var(--muted);font-size:13px;line-height:1.45}.workspace-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:24px}.main-column{min-width:0}.search-panel,.system-panel,.hotel-card,.empty-state{background:var(--panel);border:1px solid rgba(23,32,25,.09);box-shadow:var(--shadow)}.search-panel{border-radius:24px;padding:28px}.section-heading,.system-heading,.results-header,.booking-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.section-heading h2,.system-heading h2,.results-header h2,.booking-heading h2{margin:0;font:700 24px/1.2 Manrope,sans-serif;letter-spacing:-.025em}.provider-orbit{display:flex}.provider-orbit i{width:31px;height:31px;display:grid;place-items:center;border-radius:50%;margin-left:-5px;background:#edf0eb;border:2px solid #fff;color:var(--accent);font-style:normal;font-size:11px;font-weight:700}.search-form{display:grid;grid-template-columns:minmax(150px,1.4fr) repeat(2,minmax(135px,1fr)) 90px auto;gap:10px;margin-top:26px}.field{display:flex;flex-direction:column;justify-content:center;min-height:68px;border:1px solid var(--line);border-radius:14px;padding:10px 14px;transition:border-color .16s ease,box-shadow .16s ease}.field:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px #125e4317}.field span{color:var(--muted);font-size:10px;font-weight:700;letter-spacing:.09em;text-transform:uppercase}.field input{width:100%;border:0;outline:0;background:transparent;color:var(--ink);padding:5px 0 0;font-weight:600;min-width:0}.button{border:0;border-radius:12px;min-height:44px;padding:10px 17px;display:inline-flex;align-items:center;justify-content:center;gap:9px;font-weight:700;font-size:13px;transition:transform .15s ease,background .15s ease,color .15s ease}.button:not(:disabled):active{transform:translateY(1px)}.button-primary{color:#fff;background:var(--accent)}.button-primary:hover:not(:disabled){background:var(--accent-strong)}.button-primary:disabled{background:#85a698}.search-button{min-width:145px;border-radius:14px}.button-secondary{color:var(--accent);background:#edf5f1}.button-secondary:hover:not(:disabled){background:#dfeee6}.button-secondary:disabled{color:#959c96;background:#f0f2ef}.button-selected{color:#172019;background:var(--lime)}.button-danger{color:var(--danger);background:#f9ecea}.button-danger:hover:not(:disabled){background:#f3dcd8}.button-wide{width:100%;margin-top:20px;min-height:52px}.spinner{width:14px;height:14px;border:2px solid rgba(255,255,255,.4);border-top-color:currentColor;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.inline-error,.system-error{color:var(--danger);font-size:13px;margin:14px 0 0}.system-panel{position:sticky;top:20px;border-radius:24px;padding:25px}.icon-button{width:36px;height:36px;border-radius:10px;border:1px solid var(--line);background:#fff;color:var(--ink);font-size:20px;display:grid;place-items:center}.icon-button:hover:not(:disabled){background:#f2f4ef}.refresh-button:disabled{opacity:.45}.dependency-list{margin-top:26px;border:1px solid var(--line);border-radius:14px;overflow:hidden}.dependency-list>div{min-height:52px;display:flex;align-items:center;justify-content:space-between;padding:0 13px;border-bottom:1px solid var(--line);font-size:13px;font-weight:600}.dependency-list>div:last-child{border-bottom:0}.health-pill{display:inline-flex;align-items:center;gap:6px;font-size:10px;text-transform:uppercase;letter-spacing:.06em;font-weight:700;color:var(--muted)}.status-dot{flex:0 0 auto;width:8px;height:8px;border-radius:50%;display:inline-block;background:#98a09a;box-shadow:0 0 0 3px #98a09a21}.status-dot.healthy{background:#22a66f;box-shadow:0 0 0 3px #22a66f21}.status-dot.degraded{background:#e0a52d;box-shadow:0 0 0 3px #e0a52d24}.status-dot.unavailable{background:#d9544d;box-shadow:0 0 0 3px #d9544d21}.supplier-status-list{margin-top:25px}.subheading{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.subheading h3{font:700 13px/1 Manrope,sans-serif;margin:0}.subheading>span{color:var(--muted);font-size:11px}.supplier-status{display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:9px;padding:11px 0;border-bottom:1px solid var(--line)}.supplier-status:last-child{border-bottom:0}.provider-dot{width:30px;height:30px;display:grid;place-items:center;border-radius:9px;font-size:10px;font-weight:800;background:#eef0ed;color:#455048}.provider-a{--provider-color: #216fcb}.provider-b{--provider-color: #8455d6}.provider-c{--provider-color: #bd7320}.provider-d{--provider-color: #178468}.provider-dot.provider-a,.provider-dot.provider-b,.provider-dot.provider-c,.provider-dot.provider-d{color:var(--provider-color);background:color-mix(in srgb,var(--provider-color) 11%,white)}.supplier-status-main{min-width:0;display:flex;flex-direction:column}.supplier-status-main strong{font-size:12px}.supplier-status-main span{color:var(--muted);font-size:9px;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.supplier-status-meta{display:flex;align-items:flex-end;flex-direction:column;gap:4px}.supplier-status-meta small{color:var(--muted);font-size:8px;text-transform:uppercase}.muted{color:var(--muted);font-size:12px}.empty-state{min-height:250px;border-radius:24px;margin-top:24px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:40px;border-style:dashed;box-shadow:none}.empty-state.compact{min-height:180px}.empty-icon{width:52px;height:52px;display:grid;place-items:center;border-radius:18px;background:#eef3ef;color:var(--accent);font-size:30px;margin-bottom:14px}.empty-state h2,.empty-state h3{margin:0;font:700 20px/1.2 Manrope,sans-serif}.empty-state p{max-width:460px;margin:10px 0 0;color:var(--muted);font-size:14px;line-height:1.5}.results-section{margin-top:32px}.results-header{align-items:flex-end;margin:0 6px 18px}.search-meta{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:11px}.cache-badge{border:1px solid var(--line);border-radius:999px;padding:5px 9px;color:var(--ink);background:#fff;font-weight:700}.cache-hit{color:var(--accent);border-color:#125e4340;background:#edf5f1}.cache-bypass{color:var(--warning);background:#fcf6e8;border-color:#ead7a8}.partial-alert{border:1px solid #ead7a8;background:#fff8e7;color:#6b521b;padding:13px 16px;border-radius:13px;margin-bottom:14px;font-size:13px}.hotel-grid{display:grid;gap:14px}.hotel-card{border-radius:20px;padding:24px}.hotel-card-header{display:flex;justify-content:space-between;gap:24px;padding-bottom:20px}.hotel-tags{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:12px}.provider-tag,.dedup-tag,.plain-tag{display:inline-flex;align-items:center;min-height:23px;border-radius:999px;padding:4px 9px;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.055em}.provider-tag{color:var(--provider-color, var(--accent));background:color-mix(in srgb,var(--provider-color, var(--accent)) 10%,white)}.dedup-tag{color:#536516;background:#eef6c9}.plain-tag{color:var(--muted);background:#f1f3f0}.hotel-card h3{margin:0;font:700 23px/1.25 Manrope,sans-serif;letter-spacing:-.025em}.location{color:var(--muted);font-size:13px;margin:6px 0 0}.winner-price{flex:0 0 auto;display:flex;flex-direction:column;align-items:flex-end}.winner-price span{color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.08em}.winner-price strong{margin-top:4px;font:700 22px/1.2 Manrope,sans-serif}.offer-list{border-top:1px solid var(--line)}.offer-row{min-height:72px;display:grid;grid-template-columns:minmax(155px,1.3fr) minmax(95px,.7fr) minmax(105px,.6fr) minmax(130px,.8fr);align-items:center;gap:12px;padding:11px 4px;border-bottom:1px solid var(--line)}.offer-row:last-child{border-bottom:0;padding-bottom:0}.offer-winner{background:linear-gradient(90deg,rgba(217,241,91,.13),transparent 72%)}.offer-provider{display:flex;align-items:center;gap:10px;min-width:0}.offer-provider>div{display:flex;flex-direction:column;min-width:0}.offer-provider strong{font-size:12px}.offer-id{color:var(--muted);font:9px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.availability{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:11px}.offer-price{font:700 13px/1.2 Manrope,sans-serif;text-align:right}.offer-action{display:flex;align-items:flex-end;flex-direction:column;gap:4px}.offer-action .button{min-width:122px}.offer-action small{max-width:150px;color:var(--muted);text-align:right;font-size:8px;line-height:1.3}.booking-drawer{position:fixed;z-index:20;right:24px;bottom:24px;width:min(390px,calc(100% - 48px));background:#13271e;color:#fff;border-radius:22px;box-shadow:0 28px 70px #0c1f1657;animation:drawer-in .24s ease-out}@keyframes drawer-in{0%{opacity:0;transform:translateY(12px)}}.booking-drawer-inner{padding:24px}.booking-drawer .eyebrow{color:#9bc7b4}.booking-drawer .icon-button{color:#fff;background:#ffffff14;border-color:#ffffff29}.selected-offer-summary{margin-top:20px;border-radius:13px;padding:13px;display:flex;align-items:center;justify-content:space-between;background:#ffffff12}.selected-offer-summary .provider-tag{background:#ffffff1a}.selected-offer-summary>div{display:flex;flex-direction:column;align-items:flex-end}.selected-offer-summary span{color:#9db0a7;font-size:9px;text-transform:uppercase}.selected-offer-summary strong{font:11px/1.4 ui-monospace,monospace}.booking-status{display:flex;align-items:center;gap:13px;padding:15px;margin-top:19px;border-radius:14px;background:#ffffff12}.booking-status-icon{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#e9f9f1;color:var(--accent);font-weight:800}.status-cancelled .booking-status-icon,.status-failed .booking-status-icon{color:var(--danger);background:#fbecea}.booking-status>div{display:flex;flex-direction:column}.booking-status div>span,.booking-status small{color:#9db0a7;font-size:9px;text-transform:uppercase}.booking-status strong{margin:2px 0;font-size:14px}.booking-details{margin:18px 0 0}.booking-details>div{display:flex;justify-content:space-between;gap:16px;padding:7px 0;border-bottom:1px solid rgba(255,255,255,.08)}.booking-details dt{color:#9db0a7;font-size:10px}.booking-details dd{margin:0;font-size:10px;font-weight:700}.booking-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:18px}.booking-drawer .button-secondary{color:#fff;background:#ffffff1a}.booking-drawer .button-danger{color:#ffb8b1;background:#c63d332e}.booking-drawer .inline-error{color:#ffb8b1}footer{width:min(1440px,calc(100% - 48px));min-height:80px;margin:0 auto;border-top:1px solid rgba(23,32,25,.1);color:var(--muted);display:flex;justify-content:space-between;align-items:center;font-size:11px}@media(max-width:1100px){.workspace-grid{grid-template-columns:1fr}.system-panel{position:static;grid-row:1}.supplier-status-list{display:grid;grid-template-columns:repeat(2,1fr);column-gap:20px}.subheading,.system-error{grid-column:1 / -1}.search-form{grid-template-columns:repeat(2,1fr)}.field-city{grid-column:span 2}.search-button{min-height:62px}}@media(max-width:720px){.topbar,main,footer{width:min(100% - 28px,1440px)}.topbar{height:70px}.topbar-status{font-size:0}.topbar-status b{font-size:11px}.hero{min-height:0;padding:48px 0 38px;align-items:flex-start}.hero h1{font-size:48px}.hero p{font-size:15px}.hero-stat{display:none}.search-panel,.system-panel,.hotel-card{border-radius:18px;padding:19px}.search-form{grid-template-columns:1fr}.field-city{grid-column:auto}.provider-orbit{display:none}.section-heading h2,.results-header h2{font-size:20px}.supplier-status-list{display:block}.results-header{align-items:flex-start;flex-direction:column}.hotel-card-header{flex-direction:column}.winner-price{align-items:flex-start}.offer-row{grid-template-columns:1fr auto;gap:10px;padding:14px 0}.availability{justify-self:end}.offer-price{text-align:left}.offer-action{align-items:flex-end}.booking-drawer{right:12px;bottom:12px;width:calc(100% - 24px)}footer{flex-direction:column;align-items:flex-start;justify-content:center;gap:6px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
