:root{color:#18181b;font-synthesis:none;background:#f6f7f9;font-family:Inter,PingFang SC,Microsoft YaHei,system-ui,sans-serif}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{cursor:pointer}.app-shell{grid-template-columns:224px 1fr;min-height:100vh;display:grid}.sidebar{color:#d1d5db;background:#111827;flex-direction:column;width:224px;padding:18px 12px;display:flex;position:fixed;inset:0 auto 0 0}.brand{color:#fff;align-items:center;gap:10px;height:48px;padding:0 10px;font-size:16px;font-weight:700;display:flex}.brand-mark{background:#e11d48;border-radius:6px;place-items:center;width:30px;height:30px;display:grid}.sidebar nav{gap:3px;margin-top:20px;display:grid}.sidebar nav button{color:#9ca3af;text-align:left;background:0 0;border:0;border-radius:6px;align-items:center;gap:11px;height:40px;padding:0 12px;display:flex}.sidebar nav button:hover,.sidebar nav button.active{color:#fff;background:#263244}.sidebar-foot{border-top:1px solid #273244;align-items:center;gap:8px;margin-top:auto;padding:14px 12px;font-size:12px;display:flex}.dot{background:#ef4444;border-radius:50%;width:7px;height:7px}.dot.online{background:#22c55e}.workspace{grid-column:2;min-width:0}.workspace>header{background:#fff;border-bottom:1px solid #e5e7eb;justify-content:space-between;align-items:center;height:76px;padding:0 32px;display:flex}.workspace>header h1{margin:0;font-size:19px}.workspace>header p{color:#71717a;margin:4px 0 0;font-size:12px}.avatar{color:#fff;background:#18181b;border:0;border-radius:50%;width:34px;height:34px;font-size:12px;font-weight:700}.workspace>main{padding:28px 32px}.stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px;display:grid}.stats section,.panel{background:#fff;border:1px solid #e4e4e7;border-radius:8px;box-shadow:0 1px 2px #00000005}.stats section{min-height:130px;padding:20px}.stats span{color:#71717a;font-size:13px;display:block}.stats strong{margin:14px 0 7px;font-size:25px;display:block}.stats small{color:#a1a1aa}.success{color:#15803d}.danger{color:#dc2626}.two-column{grid-template-columns:1.35fr 1fr;gap:18px;display:grid}.panel{padding:22px}.panel-head{justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;display:flex}.panel-head h2{margin:0;font-size:15px}.panel-head p{color:#71717a;margin:5px 0 0;font-size:12px}.badge{color:#52525b;white-space:nowrap;background:#fafafa;border:1px solid #e4e4e7;border-radius:999px;align-items:center;padding:4px 8px;font-size:11px;display:inline-flex}.badge.green{color:#166534;background:#f0fdf4;border-color:#bbf7d0}.badge.red{color:#991b1b;background:#fef2f2;border-color:#fecaca}.connection{border:1px solid #e4e4e7;border-radius:7px;align-items:center;gap:12px;padding:16px;display:flex}.service-icon{color:#334155;background:#f1f5f9;border-radius:7px;flex:none;place-items:center;width:40px;height:40px;display:grid}.connection div:nth-child(2){flex:1;min-width:0}.connection strong{font-size:13px}.connection p,.job p{color:#71717a;margin:4px 0 0;font-size:12px}.primary,.secondary,.icon-button{border-radius:6px;justify-content:center;align-items:center;gap:7px;height:34px;padding:0 13px;font-size:12px;font-weight:600;display:inline-flex}.primary{color:#fff;background:#18181b;border:1px solid #18181b}.secondary,.icon-button{color:#27272a;background:#fff;border:1px solid #d4d4d8}.primary:disabled,.secondary:disabled,.icon-button:disabled{opacity:.45;cursor:not-allowed}.quick{grid-template-columns:repeat(3,1fr);gap:9px;display:grid}.quick button{color:#3f3f46;background:#fafafa;border:1px solid #e4e4e7;border-radius:7px;place-content:center;justify-items:center;gap:9px;min-height:86px;display:grid}.quick button:hover{background:#fff;border-color:#a1a1aa}.table-panel{padding:0;overflow:hidden}.table-panel .panel-head{padding:20px 22px 0}.toolbar{align-items:center;gap:9px;padding:0 22px 16px;display:flex}.search{background:#fff;border:1px solid #d4d4d8;border-radius:6px;align-items:center;gap:8px;width:min(420px,50%);height:36px;padding:0 10px;display:flex}.search input{border:0;outline:0;width:100%;font-size:12px}.total{color:#71717a;margin-left:auto;font-size:12px}.table-wrap{border-top:1px solid #e4e4e7;border-bottom:1px solid #e4e4e7;overflow:auto}table{border-collapse:collapse;width:100%;font-size:12px}th{color:#71717a;text-align:left;background:#fafafa;height:40px;padding:0 18px;font-weight:600}td{vertical-align:middle;border-top:1px solid #f0f0f1;height:67px;padding:10px 18px}td:first-child{min-width:300px}td strong,td small{display:block}td small{color:#71717a;text-overflow:ellipsis;white-space:nowrap;max-width:440px;margin-top:5px;overflow:hidden}td code{font-size:11px}.empty{text-align:center;color:#71717a}.pagination{color:#71717a;justify-content:space-between;align-items:center;height:58px;padding:0 22px;font-size:12px;display:flex}.pagination>div{gap:6px;display:flex}.icon-button{width:32px;padding:0}.alert{color:#991b1b;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;margin:0 22px 16px;padding:10px;font-size:12px}.job-list{display:grid}.job{border-top:1px solid #f0f0f1;align-items:center;gap:12px;min-height:72px;display:flex}.job:first-child{border-top:0}.job>div:nth-child(2){flex:1}.empty-page{color:#71717a;text-align:center;place-content:center;justify-items:center;min-height:360px;display:grid}.empty-page h2{color:#27272a;margin:16px 0 4px;font-size:16px}.empty-page p{margin:0;font-size:13px}.overlay{z-index:20;background:#09090b8c;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{background:#fff;border:1px solid #e4e4e7;border-radius:8px;width:min(400px,100%);padding:26px;box-shadow:0 20px 45px #0003}.modal-icon{color:#fff;background:#18181b;border-radius:7px;place-items:center;width:40px;height:40px;display:grid}.modal h2{margin:18px 0 6px;font-size:18px}.modal>p{color:#71717a;margin:0 0 20px;font-size:13px;line-height:1.6}.modal label{margin-bottom:7px;font-size:12px;font-weight:600;display:block}.captcha-row{grid-template-columns:1fr 94px;gap:8px;display:grid}.captcha-row input{border:1px solid #d4d4d8;border-radius:6px;outline:0;height:40px;padding:0 11px}.captcha-row input:focus{border-color:#71717a}.captcha{object-fit:fill;cursor:pointer;image-rendering:auto;border:1px solid #d4d4d8;border-radius:5px;width:94px;height:40px}.captcha.loading{color:#71717a;background:#fafafa;place-items:center;font-size:11px;display:grid}.refresh-link{color:#52525b;background:0 0;border:0;margin:7px 0 14px auto;padding:0;font-size:11px;display:block}.dialog-error{color:#991b1b;background:#fef2f2;border-radius:5px;margin-bottom:12px;padding:9px;font-size:12px}.submit{width:100%;height:40px}.modal button:disabled,.modal input:disabled{opacity:.5;cursor:not-allowed}@media (width<=1000px){.stats{grid-template-columns:repeat(2,1fr)}.two-column{grid-template-columns:1fr}}@media (width<=720px){.app-shell{grid-template-columns:64px 1fr}.sidebar{width:64px;padding:12px 8px}.brand{justify-content:center;padding:0}.brand>span:last-child,.sidebar nav span,.sidebar-foot span:last-child{display:none}.sidebar nav button{justify-content:center;padding:0}.sidebar-foot{justify-content:center}.workspace>header{padding:0 18px}.workspace>main{padding:18px}.stats{grid-template-columns:1fr}.toolbar{flex-wrap:wrap}.search{width:100%}.total{margin-left:0}}.laimi-logo{object-fit:contain;width:150px;height:auto;display:block}.brand .laimi-logo{width:164px;max-height:36px}.login-brand .laimi-logo{width:220px;max-width:100%;height:auto}.app-loading .laimi-logo{width:150px;max-width:55vw}@media (width<=720px){.brand .laimi-logo{width:48px}}.sidebar{overflow-x:visible}.brand{padding-left:16px;position:relative;overflow:visible}.brand .laimi-logo{object-fit:contain;object-position:left center;flex:0 0 164px;width:164px;max-width:none;height:auto;display:block}.brand-product-tab{color:#fff;letter-spacing:1px;background:#f59e0b;border-radius:8px 8px 8px 0;padding:3px 10px;font-size:10px;font-weight:800;line-height:1;position:absolute;top:5px;right:10px}@media (width<=720px){.brand{padding-left:0}.brand .laimi-logo{flex-basis:48px;width:48px}.brand-product-tab{letter-spacing:.5px;padding:2px 5px;font-size:8px;top:1px;right:-2px}}.empty-state{height:260px!important}.empty-state>*{margin:7px auto;display:block}.empty-state span{color:#71717a}.back{color:#52525b;background:0 0;border:0;align-items:center;gap:7px;margin:0 0 18px;padding:0;font-size:12px;display:inline-flex}.detail-title{justify-content:space-between;align-items:flex-start;margin-bottom:18px;display:flex}.detail-title h2{margin:0;font-size:22px}.detail-title p{color:#71717a;margin:6px 0 0;font-size:13px}.detail-actions{align-items:center;gap:9px;display:flex}.detail-actions a{text-decoration:none}.tabs{border-bottom:1px solid #e4e4e7;gap:24px;margin-bottom:18px;display:flex}.tabs button{color:#71717a;background:0 0;border:0;border-bottom:2px solid #0000;padding:0 2px 12px;font-size:12px}.tabs button.active{color:#18181b;border-color:#18181b;font-weight:600}.detail-tabs{gap:20px;overflow-x:auto}.detail-tabs button{white-space:nowrap;flex:none}.badge.yellow{color:#92400e;background:#fffbeb;border-color:#fde68a}.hotel-overview-table td:nth-child(2),.hotel-overview-table td:nth-child(3),.hotel-overview-table td:nth-child(4),.hotel-overview-table td:nth-child(5){min-width:150px}.hotel-overview-table td .badge{width:max-content;margin:2px 0;display:flex}.hotel-overview-table tbody tr.hotel-row-clickable{cursor:pointer}.hotel-overview-table tbody tr.hotel-row-clickable:hover{background:#fafafa}.hotel-overview-table tbody tr.hotel-row-clickable:focus-visible{outline-offset:-2px;outline:2px solid #2563eb}.hotel-overview-table td.price-compare-low strong{color:#15803d}.hotel-overview-table td.price-compare-high strong{color:#dc2626}.hotel-overview-table td.price-compare-equal strong{color:#52525b}.hotel-overview-table td.price-compare-low em,.hotel-overview-table td.price-compare-high em,.hotel-overview-table td.price-compare-equal em{margin-top:4px;font-size:10px;font-style:normal;font-weight:600;display:block}.hotel-overview-table td.price-compare-low em{color:#16a34a}.hotel-overview-table td.price-compare-high em{color:#dc2626}.hotel-overview-table td.price-compare-equal em{color:#71717a}.comparison-chart .section-head>span{color:#71717a;white-space:nowrap;font-size:12px}.chart-scroll{padding:8px 0 0;overflow-x:auto}.comparison-chart svg{width:100%;min-width:720px;height:360px;display:block}.chart-grid line{stroke:#e4e4e7;stroke-dasharray:3 4}.chart-grid text,.chart-labels text{fill:#71717a;font-size:11px}.chart-axis{stroke:#a1a1aa;stroke-width:1px}.chart-line{fill:none;stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.chart-line.jielv{stroke:#dc2626;stroke-width:2.5px}.chart-dot{fill:#fff;stroke-width:2px}.chart-dot.jielv{stroke:#dc2626}.chart-legend{color:#52525b;flex-wrap:wrap;gap:8px 18px;margin-top:8px;font-size:12px;display:flex}.chart-legend span{align-items:center;gap:6px;display:inline-flex}.chart-key{background:#2563eb;border-radius:2px;width:18px;height:3px;display:inline-block}.chart-key.jielv{background:#dc2626}.comparison-chart-head{align-items:flex-start}.comparison-controls{background:#fafafa;border:1px solid #e4e4e7;border-radius:7px;gap:4px;padding:3px;display:flex}.comparison-controls button{color:#71717a;background:0 0;border:0;border-radius:5px;height:29px;padding:0 10px;font-size:11px;font-weight:600}.comparison-controls button.active{color:#18181b;background:#fff;box-shadow:0 1px 3px #00000017}.comparison-summary{color:#71717a;background:#fafafa;border-top:1px solid #f4f4f5;border-bottom:1px solid #f4f4f5;flex-wrap:wrap;gap:8px 18px;padding:10px 22px;font-size:11px;display:flex}.comparison-summary .anomaly-note{color:#b45309}.chart-shell{padding:8px 12px 0;position:relative;overflow-x:auto}.interactive-chart svg{width:100%;min-width:780px;height:390px;display:block}.chart-line.market{stroke:#18181b;stroke-width:2.4px;stroke-dasharray:7 5}.chart-line.supplier{opacity:.82}.chart-dot.market{fill:#fff;stroke:#18181b}.chart-crosshair{pointer-events:none;stroke:#71717a;stroke-width:1px;stroke-dasharray:3 3}.chart-hit-zones rect{fill:#0000;cursor:crosshair}.chart-tooltip{z-index:3;pointer-events:none;background:#fffffff7;border:1px solid #d4d4d8;border-radius:7px;width:250px;max-height:310px;padding:12px;font-size:11px;position:absolute;top:18px;overflow:auto;transform:translate(-50%);box-shadow:0 10px 30px #00000024}.chart-tooltip>strong{margin-bottom:8px;font-size:12px;display:block}.tooltip-jielv,.tooltip-offer{border-top:1px solid #f0f0f1;grid-template-columns:1fr auto;gap:3px 10px;padding:7px 0;display:grid}.tooltip-jielv{color:#b91c1c}.tooltip-jielv small,.tooltip-offer small{color:#71717a;grid-column:1/-1}.tooltip-offer.cheapest{color:#15803d}.chart-legend.interactive{padding:0 22px 18px}.chart-legend.interactive button{color:#52525b;background:0 0;border:0;align-items:center;gap:6px;padding:2px 0;font-size:12px;display:inline-flex}.chart-legend.interactive button.disabled{opacity:.32;text-decoration:line-through}.chart-key.market{background:#18181b}@media (width<=850px){.comparison-chart-head{display:block}.comparison-controls{width:max-content;margin-top:12px}}.detail-section{padding:0;overflow:hidden}.google-tabs{background:#fafafa;border-bottom:1px solid #e4e4e7;gap:4px;padding:12px 22px 0;display:flex}.google-tabs button{color:#71717a;background:0 0;border:0;border-bottom:2px solid #0000;padding:9px 14px 11px;font-size:12px;font-weight:600}.google-tabs button.active{color:#18181b;background:#fff;border-color:#18181b}.google-workspace .section-head{background:#fff}.confirmed-banner{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:7px;align-items:center;gap:10px;margin:16px 22px 0;padding:12px 14px;font-size:12px;display:flex}.confirmed-banner span:last-child{color:#71717a;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.candidate-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:16px 22px 22px;display:grid}.candidate-card{background:#fff;border:1px solid #e4e4e7;border-radius:8px;min-width:0;padding:15px;box-shadow:0 1px 2px #00000008}.candidate-card-title{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.candidate-card-title strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:13px;overflow:hidden}.candidate-card-title span{color:#166534;flex:none;font-size:11px;font-weight:700}.candidate-card p{color:#52525b;min-height:32px;margin:8px 0;font-size:11px;line-height:1.5}.candidate-card small{color:#71717a;font-size:10px;display:block}.candidate-card code{color:#64748b;text-overflow:ellipsis;white-space:nowrap;margin-top:9px;font-size:10px;display:block;overflow:hidden}.candidate-actions{gap:8px;margin-top:13px;display:flex}.candidate-actions button{height:30px}.feature-empty.compact{min-height:190px}.google-offers{margin-top:16px}.google-offers .table-wrap{max-height:420px;overflow:auto}.google-offers table{min-width:760px}.offer-link{color:#2563eb;text-decoration:none}.google-monitor .table-wrap{max-height:620px;overflow:auto}.supplier-price-table{min-width:820px}.supplier-price-table th{z-index:2;position:sticky;top:0}.supplier-price-table td:first-child{min-width:120px}.supplier-price-table td:nth-child(2){min-width:170px}.supplier-price-table td:nth-child(3){min-width:240px}.supplier-price-table td:nth-child(4){min-width:150px}.supplier-price-table small{max-width:260px}.supplier-price-table .offer-link{align-items:center;gap:5px;display:inline-flex}.supplier-price-table .date-group-cell{vertical-align:top;background:#fafafa;min-width:130px}.supplier-price-table .date-group-cell strong{font-size:12px;display:block}.supplier-price-table .date-group-cell small{color:#71717a;margin-top:6px}.section-head{border-bottom:1px solid #e4e4e7;justify-content:space-between;align-items:center;padding:20px 22px;display:flex}.section-head h3{margin:0;font-size:14px}.section-head p{color:#71717a;margin:5px 0 0;font-size:12px}.section-head>span{color:#71717a;font-size:11px}.info-grid{grid-template-columns:repeat(3,1fr);margin:0;display:grid}.info-grid>div{border-bottom:1px solid #f0f0f1;border-right:1px solid #f0f0f1;min-height:92px;padding:20px 22px}.info-grid>div:nth-child(3n){border-right:0}.info-grid dt{color:#71717a;font-size:11px}.info-grid dd{margin:8px 0 0;font-size:13px}.hotel-overview{background:#fff}.overview-summary{border-bottom:1px solid #e4e4e7;grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.overview-summary>div{border-right:1px solid #f0f0f1;min-width:0;padding:19px 22px}.overview-summary>div:last-child{border-right:0}.overview-summary span,.overview-summary small{color:#71717a;font-size:10px;display:block}.overview-summary strong{text-overflow:ellipsis;white-space:nowrap;margin:8px 0 6px;font-size:18px;display:block;overflow:hidden}.overview-section{border-bottom:1px solid #e4e4e7}.overview-section:last-child{border-bottom:0}.overview-section-head{background:#fafafa;justify-content:space-between;align-items:center;gap:20px;min-height:54px;padding:0 22px;display:flex}.overview-section-head h3{margin:0;font-size:13px}.overview-section-head span{color:#71717a;font-size:10px}.overview-grid{grid-template-columns:repeat(4,minmax(0,1fr));margin:0;display:grid}.overview-grid>div{border-bottom:1px solid #f0f0f1;border-right:1px solid #f0f0f1;min-width:0;min-height:76px;padding:16px 22px}.overview-grid>div:nth-child(4n){border-right:0}.overview-grid>div.wide{grid-column:span 2}.overview-grid dt{color:#71717a;font-size:10px}.overview-grid dd{overflow-wrap:anywhere;margin:7px 0 0;font-size:12px;line-height:1.5}.policy-list{grid-template-columns:1fr 1fr;display:grid}.policy-list>div{border-bottom:1px solid #f0f0f1;border-right:1px solid #f0f0f1;min-height:88px;padding:17px 22px}.policy-list>div:nth-child(2n){border-right:0}.policy-list span{color:#71717a;font-size:10px}.policy-list p{white-space:pre-wrap;margin:8px 0 0;font-size:12px;line-height:1.65}.policy-list p.muted{color:#a1a1aa}.link-list{display:grid}.link-item{border-bottom:1px solid #f0f0f1}.link-row{border-bottom:1px solid #f0f0f1;grid-template-columns:130px minmax(200px,1fr) 34px 88px;align-items:center;gap:10px;padding:14px 22px;display:grid}.link-item .link-row{border-bottom:0}.candidate{background:#f8fafc;border-radius:6px;grid-template-columns:90px 1fr 70px;align-items:center;gap:10px;margin:-4px 22px 12px 162px;padding:9px 10px;font-size:11px;display:grid}.candidate span{color:#166534;font-weight:600}.candidate a{color:#475569;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.platform strong,.platform span{display:block}.platform strong{font-size:13px}.platform span{color:#71717a;margin-top:4px;font-size:11px}.link-row input{border:1px solid #d4d4d8;border-radius:6px;outline:0;height:36px;padding:0 10px}.link-row input:focus{border-color:#71717a}.link-row a{padding:0}.save-message{color:#166534;margin:12px 22px 18px;font-size:12px}.feature-empty{color:#71717a;place-content:center;justify-items:center;min-height:260px;display:grid}.feature-empty strong{color:#27272a;margin-top:12px}.feature-empty p{margin:5px 0;font-size:12px}.simple-table>div{border-bottom:1px solid #f0f0f1;grid-template-columns:180px 1fr 90px 70px;align-items:center;gap:12px;min-height:52px;padding:0 22px;font-size:12px;display:grid}.simple-table>p{color:#71717a;padding:20px 22px;font-size:12px}.cron-input{border:1px solid #d4d4d8;border-radius:6px;width:100%;height:34px;padding:0 9px;font-family:ui-monospace,monospace;font-size:11px}.runs-grid{grid-template-columns:minmax(280px,42%) 1fr;min-height:340px;display:grid}.run-list{border-right:1px solid #e4e4e7}.run-list button{text-align:left;background:#fff;border:0;border-bottom:1px solid #f0f0f1;grid-template-columns:1fr auto;width:100%;padding:12px 18px;display:grid}.run-list button.selected{background:#f4f4f5}.run-list button span{font-size:12px}.run-list button strong{font-size:11px}.run-list button small{color:#71717a;grid-column:1/-1;margin-top:5px;font-size:10px}.log-view{color:#d4d4d8;background:#18181b;max-height:430px;padding:10px 18px;overflow:auto}.log-view>div:not(.feature-empty){border-bottom:1px solid #27272a;grid-template-columns:90px 1fr;gap:10px;padding:7px 0;font:11px ui-monospace,monospace;display:grid}.log-view time{color:#71717a}.jobs-heading{justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:18px;display:flex}.jobs-heading h2{margin:0;font-size:18px}.jobs-heading p{color:#71717a;margin:6px 0 0;font-size:12px}.jobs-heading>span{color:#52525b;font-size:12px}.job-cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.job-card{background:#fff;border:1px solid #e4e4e7;border-radius:8px;min-width:0;padding:20px;box-shadow:0 1px 2px #00000005}.job-card-head{grid-template-columns:40px 1fr auto;align-items:start;gap:12px;min-height:88px;display:grid}.job-card-head h3{margin:2px 0 0;font-size:14px}.job-card-head p{color:#71717a;margin:6px 0 0;font-size:11px;line-height:1.55}.run-status{color:#52525b;white-space:nowrap;background:#f4f4f5;border-radius:999px;align-items:center;height:24px;padding:0 8px;font-size:10px;font-weight:600;display:inline-flex}.run-status.status-success{color:#166534;background:#dcfce7}.run-status.status-running,.run-status.status-queued{color:#1d4ed8;background:#dbeafe}.run-status.status-failed{color:#991b1b;background:#fee2e2}.run-status.status-partial_success{color:#92400e;background:#fef3c7}.job-latest{border-top:1px solid #f0f0f1;grid-template-columns:1.35fr 1fr;gap:10px;margin-top:15px;padding:13px 0;display:grid}.job-latest div{min-width:0}.job-latest span,.price-detail span{color:#71717a;margin-bottom:5px;font-size:10px;display:block}.job-latest strong{text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:600;display:block;overflow:hidden}.progress-track{background:#e4e4e7;border-radius:2px;height:3px;margin-bottom:15px;overflow:hidden}.progress-track i{background:#22c55e;height:100%;display:block}.job-schedule{background:#fafafa;border:1px solid #e4e4e7;border-radius:6px;padding:14px}.schedule-label{color:#52525b;align-items:center;gap:7px;margin-bottom:10px;font-size:11px;font-weight:600;display:flex}.schedule-controls{grid-template-columns:minmax(90px,1fr) auto 32px;align-items:center;gap:8px;display:grid}.switch{color:#52525b;white-space:nowrap;align-items:center;gap:6px;font-size:10px;display:inline-flex}.switch input{opacity:0;pointer-events:none;position:absolute}.switch span{background:#d4d4d8;border-radius:999px;width:28px;height:16px;transition:background .15s;position:relative}.switch span:after{content:"";background:#fff;border-radius:50%;width:12px;height:12px;transition:transform .15s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #0003}.switch input:checked+span{background:#18181b}.switch input:checked+span:after{transform:translate(12px)}.switch b{font-weight:500}.job-actions{justify-content:flex-end;gap:8px;margin-top:15px;display:flex}.history-overlay{z-index:30}.history-dialog{background:#fff;border-radius:8px;width:min(920px,100%);overflow:hidden;box-shadow:0 20px 55px #00000047}.history-head{border-bottom:1px solid #e4e4e7;justify-content:space-between;align-items:center;min-height:74px;padding:14px 18px 14px 22px;display:flex}.history-head span{color:#71717a;font-size:10px}.history-head h2{margin:4px 0 0;font-size:15px}.history-dialog .runs-grid{height:min(560px,70vh)}.history-dialog .run-list{overflow:auto}.empty-runs{color:#71717a;text-align:center;padding:30px 18px;font-size:12px}.feature-empty.dark{color:#71717a}.feature-empty.dark strong{color:#d4d4d8}.calendar-head{border-bottom:1px solid #e4e4e7;grid-template-columns:1fr auto auto;align-items:center;gap:24px;padding:18px 20px;display:grid}.calendar-head h3{margin:0;font-size:14px}.calendar-head p{color:#71717a;margin:5px 0 0;font-size:11px}.calendar-legend{color:#71717a;align-items:center;gap:12px;font-size:10px;display:flex}.calendar-legend span{align-items:center;gap:5px;display:flex}.calendar-legend i{background:#a1a1aa;border-radius:50%;width:7px;height:7px}.calendar-legend i.open{background:#22c55e}.calendar-legend i.pending{background:#f59e0b}.calendar-legend i.closed{background:#ef4444}.calendar-nav{align-items:center;gap:9px;display:flex}.calendar-nav strong{color:#3f3f46;text-align:center;min-width:164px;font-size:11px}.rate-matrix{background:#fff;max-height:590px;overflow:auto}.matrix-row{border-bottom:1px solid #f0f0f1;grid-template-columns:220px repeat(7,minmax(112px,1fr));min-width:1004px;display:grid}.matrix-row>div{border-right:1px solid #f0f0f1;min-width:0}.matrix-header{z-index:4;background:#fafafa;position:sticky;top:0}.matrix-header>div{text-align:center;place-content:center;min-height:55px;display:grid}.matrix-header .rate-label{text-align:left;place-content:center start}.matrix-header strong{font-size:11px}.matrix-header span{color:#71717a;margin-top:3px;font-size:10px}.rate-label{z-index:2;background:#fff;padding:12px 14px;position:sticky;left:0}.matrix-header .rate-label{z-index:5;color:#71717a;background:#fafafa;font-size:11px;font-weight:600}.rate-label strong,.rate-label span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.rate-label strong{font-size:11px}.rate-label span{color:#71717a;margin-top:5px;font-size:10px}.matrix-cell-wrap{place-items:stretch stretch;min-height:65px;padding:6px;display:grid}.price-cell{color:#27272a;text-align:left;background:#fafafa;border:1px solid #0000;border-left:3px solid #a1a1aa;border-radius:5px;place-content:center;gap:5px;width:100%;min-height:52px;display:grid}.price-cell:hover{border-color:#a1a1aa}.price-cell.selected{outline-offset:1px;outline:2px solid #18181b}.price-cell.status-2{background:#f0fdf4;border-left-color:#22c55e}.price-cell.status-1{background:#fffbeb;border-left-color:#f59e0b}.price-cell.status-3{background:#fef2f2;border-left-color:#ef4444}.price-cell strong{font-size:11px}.price-cell span{color:#71717a;font-size:10px}.no-rate{color:#d4d4d8;place-self:center}.price-detail{background:#fafafa;border-top:1px solid #e4e4e7;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;display:grid}.price-detail>div{border-bottom:1px solid #e4e4e7;border-right:1px solid #e4e4e7;min-width:0;padding:14px 18px}.price-detail strong{text-overflow:ellipsis;white-space:nowrap;font-size:11px;display:block;overflow:hidden}@media (width<=1150px){.job-cards{grid-template-columns:1fr}}@media (width<=850px){.candidate-grid{grid-template-columns:1fr}.info-grid{grid-template-columns:1fr 1fr}.info-grid>div:nth-child(3n){border-right:1px solid #f0f0f1}.link-row{grid-template-columns:1fr}.link-row .icon-button{display:none}.simple-table>div{grid-template-columns:1fr 1fr}.job-cards{grid-template-columns:1fr}.calendar-head{grid-template-columns:1fr;gap:12px}.calendar-nav{justify-content:space-between}.runs-grid{grid-template-columns:1fr}.history-dialog .runs-grid{grid-template-rows:minmax(170px,40%) 1fr;height:75vh}.price-detail,.overview-summary,.overview-grid{grid-template-columns:1fr 1fr}.overview-summary>div:nth-child(2n),.overview-grid>div:nth-child(2n){border-right:0}.overview-grid>div.wide{grid-column:1/-1}.policy-list{grid-template-columns:1fr}.policy-list>div{border-right:0}}.app-loading{color:#71717a;place-content:center;justify-items:center;gap:12px;min-height:100vh;font-size:12px;display:grid}.login-page{background:#f6f7f9;place-items:center;min-height:100vh;padding:24px;display:grid}.login-form{background:#fff;border:1px solid #e4e4e7;border-radius:8px;width:min(380px,100%);padding:30px;box-shadow:0 10px 30px #0000000f}.login-brand{align-items:center;gap:10px;font-size:14px;display:flex}.login-title{margin:28px 0 24px}.login-title h1{margin:0;font-size:20px}.login-title p{color:#71717a;margin:7px 0 0;font-size:12px}.login-form label,.user-dialog label{margin:15px 0 7px;font-size:11px;font-weight:600;display:block}.login-form input,.user-dialog input{border:1px solid #d4d4d8;border-radius:6px;outline:0;width:100%;height:40px;padding:0 11px}.login-form input:focus,.user-dialog input:focus{border-color:#71717a;box-shadow:0 0 0 2px #71717a1a}.login-form .dialog-error{margin:14px 0 0}.login-submit{width:100%;height:40px;margin-top:20px}.current-user{align-items:center;gap:10px;display:flex}.current-user>div{text-align:right}.current-user strong,.current-user span{display:block}.current-user strong{font-size:11px}.current-user>div span{color:#71717a;margin-top:3px;font-size:10px}.current-user .avatar{place-items:center;display:grid}.users-panel .panel-head{align-items:flex-start}.users-message{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:6px;margin:0 22px 16px;padding:10px;font-size:12px}.user-cell{align-items:center;gap:11px;display:flex}.user-cell>span{color:#334155;background:#f1f5f9;border-radius:50%;flex:none;place-items:center;width:34px;height:34px;font-size:10px;font-weight:700;display:grid}.user-cell strong{align-items:center;gap:7px;display:flex}.user-cell em{color:#52525b;background:#f4f4f5;border-radius:4px;padding:2px 5px;font-size:9px;font-style:normal;font-weight:500}.user-actions{align-items:center;gap:14px;min-width:210px;display:flex}.user-actions .switch input:disabled+span{opacity:.45}.dialog-head{justify-content:space-between;align-items:center;display:flex}.user-dialog>p{margin-bottom:18px}.dialog-actions{justify-content:flex-end;gap:8px;margin-top:22px;display:flex}@media (width<=720px){.current-user>div{display:none}.current-user{gap:6px}.login-form{padding:24px}}
