.homestay { min-height:100vh; font-size:14px; line-height:1.65; }
.homestay h1,.homestay h2,.homestay h3,.homestay p { margin:0; }
.homestay a { text-decoration:none; }
.homestay button { cursor:pointer; }
.homestay button:disabled { opacity:.4; cursor:not-allowed; }
.homestay img { display:block; width:100%; -o-object-fit:cover; object-fit:cover; }
.homestay .muted,.homestay-dialog .muted { color:hsl(var(--muted-foreground)); }
.homestay .eyebrow { display:flex; align-items:center; gap:7px; color:hsl(var(--primary)); font-size:11px; font-weight:600; letter-spacing:1.6px; }
.button { min-height:44px; display:inline-flex; align-items:center; justify-content:center; gap:9px; padding:10px 19px; border:1px solid transparent; border-radius:calc(var(--radius) - 4px); font-size:13px; font-weight:600; line-height:1.4; transition:transform 160ms ease-out,opacity 160ms ease-out; }
.button:hover { opacity:.9; }
.button:active { transform:translateY(1px); }
.button.primary { background:hsl(var(--primary)); color:hsl(var(--primary-foreground)); }
.button.secondary { background:hsl(var(--card)); color:hsl(var(--primary)); border-color:hsl(var(--border)); }
.full-width { width:100%; }
.text-link { display:inline-flex; align-items:center; gap:7px; color:hsl(var(--primary)); font-size:12px; font-weight:600; white-space:nowrap; }
.site-header { height:76px; background:hsl(var(--card)); border-bottom:1px solid hsl(var(--border) / .5); }
.header-inner { max-width:1240px; padding:0 20px; margin:auto; height:100%; display:flex; justify-content:space-between; align-items:center; gap:20px; }
.brand { display:flex; align-items:center; gap:9px; color:hsl(var(--primary)); flex-shrink:0; }
.brand img { width:40px; height:40px; border-radius:10px; }
.brand strong { display:block; font-size:19px; font-weight:650; line-height:1.4; letter-spacing:2px; }
.brand .brand-suffix { font-size:11px; font-weight:400; letter-spacing:1px; margin-left:5px; }
.brand small { display:block; font-size:9px; letter-spacing:1px; color:hsl(var(--muted-foreground)); margin-top:2px; }
.desktop-navigation { display:none; }
.contact-link { display:inline-flex; align-items:center; gap:6px; font-size:12px; color:hsl(var(--primary)); white-space:nowrap; }
.guest-main { max-width:1240px; padding:16px 16px 0; margin:0 auto; }
.hero { position:relative; height:470px; border-radius:calc(var(--radius) + 5px); overflow:hidden; background:hsl(var(--primary)); color:hsl(var(--primary-foreground)); }
.hero .hero-photo { position:absolute; inset:0; height:100%; -o-object-position:62% center; object-position:62% center; }
.hero-shade { position:absolute; inset:0; background:linear-gradient(90deg,hsl(var(--chart-3) / .68),hsl(var(--chart-3) / .24) 65%,hsl(var(--chart-3) / .08)),linear-gradient(0deg,hsl(var(--chart-3) / .35),transparent 35%); }
.hero-copy { position:relative; z-index:1; padding:32px 26px; }
.hero-location { display:inline-flex; align-items:center; gap:6px; border:1px solid hsl(var(--primary-foreground) / .35); border-radius:50px; padding:5px 10px; font-size:10px; letter-spacing:1px; }
.hero-kicker { font-size:11px; letter-spacing:2px; margin-top:26px!important; opacity:.85; }
.hero h1 { font-size:37px; line-height:1.36; letter-spacing:2px; font-weight:600; margin:12px 0 18px; }
.hero-description { font-size:11px; line-height:1.9; color:hsl(var(--primary-foreground) / .85); }
.hero-buttons { display:flex; align-items:center; gap:22px; margin-top:24px; }
.hero-primary { background:hsl(var(--card)); color:hsl(var(--primary)); padding:11px 16px; }
.hero-room-link { display:flex; gap:8px; align-items:center; font-size:11px; }
.hero-season { position:absolute; top:25px; right:28px; display:none; align-items:center; gap:8px; font-size:11px; }
.hero-bottom { position:absolute; bottom:19px; left:27px; right:27px; display:flex; align-items:center; gap:13px; font-size:9px; letter-spacing:1px; opacity:.85; }
.slide-line { width:60px; height:1px; background:hsl(var(--primary-foreground) / .6); margin-left:auto; }
.service-paths { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border:1px solid hsl(var(--border) / .7); background:hsl(var(--card)); border-radius:var(--radius); margin-top:15px; padding:6px; gap:4px; }
.service-path { min-width:0; display:flex; gap:10px; padding:16px 10px; align-items:center; border-radius:calc(var(--radius) - 4px); }
.service-path.featured { background:hsl(var(--secondary) / .52); }
.service-icon { color:hsl(var(--primary)); flex-shrink:0; }
.service-path h2 { font-size:11px; font-weight:600; line-height:1.5; }
.service-path h2 small { display:none; }
.service-path p { color:hsl(var(--muted-foreground)); font-size:9px; margin-top:3px; }
.service-arrow { display:none; flex-shrink:0; color:hsl(var(--primary)); margin-left:auto; }
.promo-banner { display:flex; align-items:center; gap:12px; justify-content:space-between; padding:16px 5px; border-bottom:1px solid hsl(var(--border)); }
.promo-banner>div { display:flex; flex-wrap:wrap; align-items:center; gap:5px 12px; }
.promo-label { display:inline-flex; align-items:center; gap:5px; color:hsl(var(--primary)); font-weight:600; font-size:10px; white-space:nowrap; }
.promo-banner p { font-size:11px; }
.promo-copy { font-size:10px; color:hsl(var(--muted-foreground)); width:100%; }
.promo-banner>a { display:flex; align-items:center; gap:6px; font-size:11px; color:hsl(var(--primary)); white-space:nowrap; }
.home-section { margin-top:38px; }
.section-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:12px; margin-bottom:19px; }
.section-heading h2 { font-size:20px; font-weight:600; letter-spacing:.2px; line-height:1.45; margin-top:6px; }
.section-heading .eyebrow { font-size:9px; }
.section-heading .text-link { font-size:10px; gap:2px; }
.food-feature { background:hsl(var(--card)); border:1px solid hsl(var(--border) / .55); border-radius:var(--radius); overflow:hidden; }
.food-feature-image { display:block; height:240px; position:relative; }
.food-feature-image>img { height:100%; }
.food-feature-image:after { content:''; position:absolute; inset:0; background:linear-gradient(0deg,hsl(var(--chart-3) / .55),transparent 65%); }
.photo-badge { position:absolute; top:15px; left:15px; padding:4px 10px; font-size:10px; border-radius:4px; background:hsl(var(--card) / .95); color:hsl(var(--primary)); z-index:1; }
.food-image-title { position:absolute; bottom:20px; left:23px; z-index:1; color:hsl(var(--primary-foreground)); }
.food-image-title span { font-size:10px; letter-spacing:1px; opacity:.9; }
.food-image-title h3 { font-size:23px; font-weight:500; margin-top:3px; }
.food-feature-copy { padding:26px; }
.food-feature-copy h3 { font-size:25px; line-height:1.5; font-weight:550; margin:13px 0; }
.food-feature-copy>p:not(.eyebrow) { color:hsl(var(--muted-foreground)); font-size:12px; line-height:1.9; }
.food-meta { display:flex; flex-wrap:wrap; gap:15px; color:hsl(var(--primary)); font-size:10px; margin:19px 0; }
.food-meta>span { display:flex; align-items:center; gap:5px; }
.feature-price { display:flex; justify-content:space-between; align-items:center; padding-top:18px; border-top:1px solid hsl(var(--border)); }
.feature-price small { font-size:10px; color:hsl(var(--muted-foreground)); margin-left:5px; }
.price { color:hsl(var(--accent)); font-size:24px; font-weight:600; font-variant-numeric:tabular-nums; letter-spacing:-.6px; white-space:nowrap; }
.price small { font-size:11px; font-weight:400; letter-spacing:0; color:hsl(var(--muted-foreground)); }
.room-grid { display:grid; gap:20px; }
.room-card { border:1px solid hsl(var(--border) / .7); background:hsl(var(--card)); border-radius:var(--radius); overflow:hidden; }
.media-box { position:relative; display:block; width:100%; aspect-ratio:1.65; overflow:hidden; }
.media-box img { width:100%; height:100%; }
.video-badge { display:flex; align-items:center; gap:5px; position:absolute; right:13px; bottom:13px; padding:4px 8px; background:hsl(var(--chart-3) / .55); color:hsl(var(--primary-foreground)); border-radius:30px; font-size:9px; }
.room-card-body { padding:19px; display:flex; align-items:center; justify-content:space-between; gap:10px; }
.room-card-body h3 { font-size:15px; font-weight:600; }
.room-card-body p { color:hsl(var(--muted-foreground)); font-size:10px; margin-top:6px; }
.room-price { display:flex; flex-direction:column; align-items:flex-end; }
.room-price small { font-size:9px; color:hsl(var(--muted-foreground)); }
.travel-home { border-radius:var(--radius); overflow:hidden; background:hsl(var(--secondary) / .5); }
.travel-home>img { height:260px; }
.travel-home-copy { padding:27px; }
.soft-tag { display:inline-flex; gap:6px; align-items:center; padding:5px 10px; border-radius:5px; background:hsl(var(--secondary)); color:hsl(var(--primary)); font-size:11px; width:-moz-fit-content; width:fit-content; }
.travel-home-copy h3 { font-size:25px; line-height:1.55; margin:16px 0 10px; font-weight:550; }
.travel-home-copy p { font-size:12px; color:hsl(var(--muted-foreground)); line-height:1.9; }
.trip-tags { display:flex; gap:7px; margin:20px 0; flex-wrap:wrap; }
.trip-tags span { border:1px solid hsl(var(--primary) / .18); font-size:10px; padding:3px 8px; border-radius:4px; color:hsl(var(--primary)); }
.product-feature { display:grid; border-radius:var(--radius); overflow:hidden; background:hsl(var(--card)); border:1px solid hsl(var(--border) / .7); }
.product-feature>img { height:220px; }
.product-feature>div { padding:25px; }
.product-feature h3 { font-size:21px; font-weight:550; margin:13px 0; }
.product-feature p { font-size:12px; color:hsl(var(--muted-foreground)); line-height:1.9; }
.product-bottom { display:flex; justify-content:space-between; align-items:center; margin-top:20px; }
.round-arrow { border:1px solid hsl(var(--border)); border-radius:50%; padding:11px; color:hsl(var(--primary)); }
.welcome-strip { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:17px; text-align:center; padding:36px 12px; margin:30px 0 8px; border-top:1px solid hsl(var(--border)); color:hsl(var(--primary)); }
.welcome-strip h3 { font-size:17px; font-weight:550; }
.welcome-strip p { color:hsl(var(--muted-foreground)); font-size:11px; margin-top:5px; }
.site-footer { background:hsl(var(--muted)); padding:25px 20px 94px; margin-top:22px; }
.footer-inner { max-width:1200px; margin:0 auto; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:23px; }
.footer-inner>span { display:flex; gap:5px; align-items:center; color:hsl(var(--muted-foreground)); font-size:11px; }
.demo-note { text-align:center; color:hsl(var(--muted-foreground)); font-size:10px; padding:22px 8px 0; }
.mobile-navigation { position:fixed; bottom:0; left:0; right:0; z-index:30; background:hsl(var(--card) / .97); border-top:1px solid hsl(var(--border)); display:grid; grid-template-columns:repeat(5,1fr); padding:9px 4px calc(9px + env(safe-area-inset-bottom)); backdrop-filter:blur(10px); }
.mobile-navigation a { display:flex; flex-direction:column; align-items:center; gap:3px; font-size:10px; color:hsl(var(--muted-foreground)); }
.mobile-navigation a.active { color:hsl(var(--primary)); font-weight:600; }
.mobile-navigation a.active svg { fill:hsl(var(--secondary)); }
.content-page { max-width:1140px; padding:30px 20px; margin:0 auto; min-height:65vh; }
.page-title { margin-bottom:28px; }
.page-title h1 { font-size:29px; line-height:1.45; font-weight:600; letter-spacing:.3px; margin:9px 0 12px; }
.page-title>p:last-child { font-size:12px; line-height:1.9; color:hsl(var(--muted-foreground)); max-width:670px; }
.room-detail-body { padding:22px; display:grid; gap:15px; }
.room-detail-body h2 { font-size:20px; font-weight:600; }
.room-detail-body>p { color:hsl(var(--muted-foreground)); font-size:12px; }
.row-between { display:flex; align-items:center; justify-content:space-between; gap:14px; }
.image-button { border:0; padding:0; }
.video-preview { position:relative; border-radius:var(--radius); overflow:hidden; }
.video-preview img { width:100%; aspect-ratio:1.5; -o-object-fit:cover; object-fit:cover; }
.video-preview>span { position:absolute; inset:0; display:flex; gap:12px; flex-direction:column; justify-content:center; align-items:center; background:hsl(var(--chart-3) / .5); color:hsl(var(--primary-foreground)); }
.homestay-dialog { max-height:88dvh; overflow-y:auto; border-radius:var(--radius); width:calc(100% - 32px); font-family:var(--font-sans); }
.modal-image { width:100%; max-height:240px; -o-object-fit:cover; object-fit:cover; border-radius:calc(var(--radius) - 4px); }
.contact-card { display:flex; gap:14px; align-items:center; background:hsl(var(--muted)); padding:18px; border-radius:var(--radius); }
.contact-card p { color:hsl(var(--muted-foreground)); font-size:12px; margin:4px 0 0; }
.travel-grid { display:grid; gap:24px; }
.travel-card { background:hsl(var(--card)); border:1px solid hsl(var(--border)); border-radius:var(--radius); overflow:hidden; }
.travel-card>img { aspect-ratio:3/4; }
.travel-card>div { padding:25px; }
.travel-card h2 { font-size:22px; font-weight:600; margin:15px 0 8px; }
.travel-card p { color:hsl(var(--muted-foreground)); font-size:12px; margin-bottom:21px; }
.notice { padding:20px; background:hsl(var(--secondary) / .5); border-radius:var(--radius); margin:25px 0; display:flex; gap:13px; align-items:center; font-size:12px; color:hsl(var(--primary)); }
.notice>svg { flex-shrink:0; }
.notice p { color:hsl(var(--muted-foreground)); font-size:11px; margin-top:5px; }
.category-tabs { display:flex; align-items:center; gap:8px; overflow-x:auto; padding:3px 2px 15px; margin-bottom:8px; scrollbar-width:none; }
.category-tabs button { white-space:nowrap; display:inline-flex; align-items:center; justify-content:center; gap:6px; padding:10px 17px; min-height:42px; border:1px solid hsl(var(--border)); border-radius:30px; font-size:12px; color:hsl(var(--muted-foreground)); background:hsl(var(--card)); }
.category-tabs button.active { background:hsl(var(--primary)); border-color:hsl(var(--primary)); color:hsl(var(--primary-foreground)); }
.product-image { aspect-ratio:1.5; }
.form-stack { display:grid; gap:18px; }
.form-stack label,.meal-schedule label { display:grid; gap:7px; color:hsl(var(--muted-foreground)); font-size:12px; }
.form-stack input,.form-stack select,.form-stack textarea,.meal-schedule input,.meal-schedule select { min-width:0; width:100%; background:hsl(var(--card)); color:hsl(var(--foreground)); border:1px solid hsl(var(--input)); min-height:44px; border-radius:7px; padding:10px 12px; font-size:13px; }
.form-stack textarea { min-height:90px; resize:vertical; }
.field-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.login-banner { display:flex; flex-wrap:wrap; align-items:center; gap:15px; padding:22px; background:hsl(var(--secondary) / .55); border-radius:var(--radius); margin-bottom:28px; color:hsl(var(--primary)); }
.login-banner>div { flex:1; min-width:190px; }
.login-banner p { font-size:11px; color:hsl(var(--muted-foreground)); margin-top:4px; }
.order-list { display:grid; gap:19px; }
.order-card { padding:22px; border:1px solid hsl(var(--border)); background:hsl(var(--card)); border-radius:var(--radius); }
.order-detail { display:flex; gap:15px; align-items:center; margin:23px 0; padding-bottom:22px; border-bottom:1px solid hsl(var(--border)); }
.order-detail img { width:64px; height:64px; border-radius:8px; flex-shrink:0; }
.order-detail>div { flex:1; }
.order-detail h3 { font-size:13px; }
.order-detail p { font-size:11px; color:hsl(var(--muted-foreground)); margin-top:5px; }
.order-detail .price { font-size:21px; }
.meal-schedule { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:15px; padding:21px; border:1px solid hsl(var(--border)); background:hsl(var(--card)); border-radius:var(--radius); margin-bottom:25px; }
.schedule-title { display:flex; gap:12px; align-items:center; grid-column:1/-1; color:hsl(var(--primary)); }
.schedule-title small { display:block; font-size:10px; color:hsl(var(--muted-foreground)); margin-top:4px; }
.meal-schedule label:first-of-type { grid-column:1/-1; }
.food-layout { display:grid; gap:26px; }
/* grid 子项默认 min-width:auto，会被 nowrap 的分类页签条撑开导致整页横向溢出；归零后页签条在自己的宽度内横滑 */
.food-layout>section { min-width:0; }
.dish-list { display:grid; gap:15px; }
.dish-card { display:flex; gap:15px; padding:14px; border:1px solid hsl(var(--border) / .8); border-radius:var(--radius); background:hsl(var(--card)); }
.dish-card>img,.dish-art { width:95px; min-height:125px; border-radius:8px; flex-shrink:0; }
.dish-art { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; background:hsl(var(--secondary) / .4); color:hsl(var(--primary) / .7); }
.dish-art small { font-size:9px; }
.dish-body { flex:1; min-width:0; }
.dish-tag { font-size:9px; color:hsl(var(--primary)); }
.dish-body h2 { font-size:16px; font-weight:600; margin:4px 0; }
.dish-body p { font-size:10px; color:hsl(var(--muted-foreground)); margin-bottom:15px; }
.dish-body .price { font-size:21px; }
.quantity { display:flex; gap:9px; align-items:center; }
.quantity button { display:flex; justify-content:center; align-items:center; height:32px; width:32px; border:1px solid hsl(var(--border)); border-radius:50%; color:hsl(var(--primary)); }
.quantity button.add { background:hsl(var(--primary)); border-color:hsl(var(--primary)); color:hsl(var(--primary-foreground)); }
.quantity span { min-width:12px; text-align:center; font-size:12px; }
.meal-sidebar { display:none; }
.mobile-cart { position:fixed; left:14px; right:14px; bottom:calc(73px + env(safe-area-inset-bottom)); z-index:25; border:1px solid hsl(var(--border)); border-radius:var(--radius); padding:12px 15px; background:hsl(var(--card)); box-shadow:var(--shadow-lg); display:flex; justify-content:space-between; align-items:center; }
.mobile-cart>div { display:flex; gap:9px; align-items:center; color:hsl(var(--primary)); }
.food-page { padding-bottom:110px; }
.checkout-items { display:grid; gap:9px; font-size:13px; border-bottom:1px solid hsl(var(--border)); padding-bottom:15px; }
.host-label { font-size:11px; color:hsl(var(--muted-foreground)); border:1px solid hsl(var(--border)); border-radius:30px; padding:4px 10px; white-space:nowrap; }
.host-side .host-label { display:none; }
.host-shell { max-width:1440px; margin:0 auto; }
.host-navigation { display:flex; gap:7px; overflow-x:auto; padding:14px 17px; border-bottom:1px solid hsl(var(--border)); background:hsl(var(--card)); scrollbar-width:none; }
.host-navigation>.eyebrow,.host-nav-note { display:none; }
.host-navigation a { flex-shrink:0; display:flex; align-items:center; gap:8px; font-size:12px; padding:10px 13px; color:hsl(var(--muted-foreground)); border-radius:8px; }
.host-navigation a.active { background:hsl(var(--secondary)); color:hsl(var(--primary)); font-weight:600; }
.host-main { padding:27px 17px 40px; min-width:0; }
.host-heading { display:flex; gap:14px; align-items:flex-start; justify-content:space-between; flex-wrap:wrap; margin-bottom:25px; }
.host-heading h1 { font-size:25px; font-weight:600; margin:7px 0 8px; line-height:1.5; }
.host-heading p { color:hsl(var(--muted-foreground)); font-size:12px; }
.host-stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin-bottom:20px; }
.host-stats>div,.host-stats>a { display:grid; gap:8px; padding:16px 12px; border:1px solid hsl(var(--border)); border-radius:var(--radius); background:hsl(var(--card)); }
.host-stats>a { background:hsl(var(--primary)); color:hsl(var(--primary-foreground)); border-color:hsl(var(--primary)); }
.host-stats span { font-size:10px; }
.host-stats strong { font-size:31px; font-weight:500; line-height:1.2; }
.host-stats small { font-size:11px; margin-left:5px; font-weight:400; }
.host-stats span:last-child { display:none; }
.host-shortcuts { display:grid; gap:10px; margin-bottom:24px; }
.host-shortcuts a { padding:16px; display:flex; align-items:center; gap:13px; border:1px solid hsl(var(--border)); border-radius:var(--radius); background:hsl(var(--card)); color:hsl(var(--primary)); }
.host-shortcuts a>div { flex:1; }
.host-shortcuts strong { font-size:12px; }
.host-shortcuts small { display:block; font-size:10px; color:hsl(var(--muted-foreground)); margin-top:3px; }
.host-panel { background:hsl(var(--card)); border:1px solid hsl(var(--border)); border-radius:var(--radius); overflow:hidden; }
.host-panel.form-stack { padding:22px; }
.host-panel h2 { font-size:17px; font-weight:600; }
.host-panel-heading { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:8px; padding:21px; border-bottom:1px solid hsl(var(--border)); }
.host-dishes article { display:flex; flex-wrap:wrap; gap:12px; padding:17px; align-items:center; border-bottom:1px solid hsl(var(--border) / .65); }
.host-dishes article:last-child { border:0; }
.host-dishes img,.host-dish-icon { width:51px; height:51px; border-radius:7px; }
.host-dish-icon { display:grid; place-items:center; color:hsl(var(--primary)); background:hsl(var(--secondary) / .5); }
.host-dish-info { flex:1; min-width:150px; }
.host-dish-info h3 { font-size:14px; font-weight:600; }
.host-dish-info p { font-size:10px; color:hsl(var(--muted-foreground)); margin-top:3px; }
.host-price { font-size:14px; font-weight:500; color:hsl(var(--primary)); }
.sale-toggle { display:flex; gap:7px; align-items:center; font-size:11px; margin-left:63px; }
.sale-toggle i { display:block; background:hsl(var(--primary)); width:32px; height:19px; border-radius:20px; position:relative; }
.sale-toggle i:after { content:''; position:absolute; width:13px; height:13px; right:3px; top:3px; border-radius:50%; background:hsl(var(--card)); }
.sale-toggle.off { color:hsl(var(--muted-foreground)); }
.sale-toggle.off i { background:hsl(var(--input)); }
.sale-toggle.off i:after { right:auto; left:3px; }
.edit-icon { width:38px; height:38px; border:1px solid hsl(var(--border)); display:grid; place-items:center; border-radius:7px; color:hsl(var(--muted-foreground)); margin-left:auto; }
.host-content-list article { display:flex; align-items:center; gap:15px; padding:20px; flex-wrap:wrap; border-bottom:1px solid hsl(var(--border)); }
.host-content-list article:last-child { border-bottom:0; }
.host-content-list img { width:95px; height:85px; border-radius:8px; }
.host-content-list article>div { flex:1; min-width:135px; }
.host-content-list h3 { font-size:15px; font-weight:600; }
.host-content-list p { font-size:11px; color:hsl(var(--muted-foreground)); margin:5px 0; }
.host-content-list .price { font-size:18px; }
.host-content-list .button { margin-left:auto; }
.image-editor { position:relative; overflow:hidden; border-radius:var(--radius); }
.image-editor img { width:100%; max-height:340px; -o-object-fit:cover; object-fit:cover; }
.upload-button { position:absolute; right:15px; bottom:15px; display:flex!important; flex-direction:row; align-items:center; background:hsl(var(--card)); border-radius:7px; color:hsl(var(--primary))!important; padding:10px 13px; cursor:pointer; }
.host-order-date { display:flex; align-items:center; gap:9px; font-size:19px; font-weight:600; margin:20px 0 7px!important; }
.empty-state { padding:60px 20px; border:1px dashed hsl(var(--border)); border-radius:var(--radius); text-align:center; color:hsl(var(--muted-foreground)); }
@media(min-width:640px) {
  .guest-main { padding:22px 24px 0; }
  .hero h1 { font-size:45px; }
  .hero-copy { padding:38px 40px; }
  .hero-description { font-size:12px; }
  .hero-season { display:flex; }
  .hero-bottom { left:40px; right:40px; }
  .hero-kicker { margin-top:24px!important; }
  .room-grid,.travel-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .room-card-body { padding:18px; }
  .room-card-body h3 { font-size:14px; }
  .section-heading h2 { font-size:25px; }
  .section-heading .text-link { font-size:12px; }
  .section-heading .eyebrow { font-size:10px; }
  .home-section { margin-top:46px; }
  .product-feature { grid-template-columns:1fr 1.2fr; }
  .product-feature>img { height:100%; }
  .product-feature>div { padding:34px; }
  .welcome-strip { justify-content:space-between; text-align:left; }
  .welcome-strip>div { flex:1; }
  .dish-card>img,.dish-art { width:140px; min-height:130px; }
  .dish-body h2 { font-size:19px; }
  .dish-body p { font-size:12px; }
  .dish-card { padding:17px; gap:20px; }
  .host-shortcuts { grid-template-columns:1fr 1fr; }
  .host-side .host-label { display:inline-block; }
  .sale-toggle { margin-left:14px; }
  .host-stats span:last-child { display:flex; align-items:center; justify-content:space-between; font-size:10px; opacity:.8; }
}
@media(min-width:900px) {
  .site-header { height:88px; }
  .header-inner { padding:0 24px; }
  .brand strong { font-size:21px; }
  .brand img { width:45px; height:45px; }
  .brand small { font-size:9px; }
  .desktop-navigation { display:flex; align-self:stretch; gap:30px; align-items:center; }
  .desktop-navigation a { display:flex; align-items:center; height:100%; color:hsl(var(--muted-foreground)); font-size:12px; position:relative; }
  .desktop-navigation a.active { color:hsl(var(--primary)); font-weight:600; }
  .desktop-navigation a.active:after { content:''; position:absolute; bottom:19px; width:18px; height:2px; background:hsl(var(--primary)); left:calc(50% - 9px); }
  .contact-link { font-size:12px; }
  .header-inner>.contact-link { border:1px solid hsl(var(--border)); border-radius:30px; padding:9px 14px; }
  .hero { height:445px; }
  .hero-copy { padding:40px 54px; }
  .hero h1 { font-size:48px; line-height:1.27; margin:14px 0 20px; }
  .hero-location { font-size:10px; }
  .hero-kicker { margin-top:23px!important; }
  .hero-buttons { margin-top:23px; }
  .hero-bottom { left:auto; right:33px; bottom:24px; width:280px; }
  .hero-season { top:29px; right:35px; }
  .hero-shade { background:linear-gradient(90deg,hsl(var(--chart-3) / .72),hsl(var(--chart-3) / .23) 52%,hsl(var(--chart-3) / .02)),linear-gradient(0deg,hsl(var(--chart-3) / .23),transparent 35%); }
  .service-paths { grid-template-columns:repeat(4,minmax(0,1fr)); padding:8px; gap:0; margin-top:18px; }
  .service-path { padding:21px 17px; gap:13px; min-height:98px; }
  .service-path:not(:last-child):not(.featured) { border-right:1px solid hsl(var(--border) / .65); border-radius:0; }
  .service-path h2 { font-size:13px; }
  .service-path p { font-size:10px; margin-top:5px; }
  .service-icon { padding:8px; }
  .service-arrow { display:block; }
  .promo-banner { padding:19px 4px; }
  .promo-banner p { font-size:12px; }
  .promo-copy { width:auto; padding-left:13px; border-left:1px solid hsl(var(--border)); }
  .promo-label { font-size:11px; }
  .food-feature { display:grid; grid-template-columns:1.13fr 1fr; }
  .food-feature-image { height:auto; min-height:340px; }
  .food-feature-copy { padding:34px 40px; }
  .food-feature-copy h3 { font-size:29px; margin:15px 0; }
  .food-feature-copy>p:not(.eyebrow) { font-size:12px; }
  .food-image-title { bottom:29px; left:30px; }
  .food-image-title h3 { font-size:26px; }
  .photo-badge { top:20px; left:20px; }
  .room-grid { gap:25px; }
  .media-box { aspect-ratio:1.94; }
  .room-card-body { padding:23px 25px; }
  .room-card-body h3 { font-size:17px; }
  .room-card-body p { font-size:11px; }
  .room-price { flex-direction:row; gap:7px; align-items:baseline; }
  .travel-home { display:grid; grid-template-columns:1.13fr 1fr; }
  .travel-home>img { height:100%; min-height:340px; }
  .travel-home-copy { padding:35px 40px; }
  .travel-home-copy h3 { font-size:28px; }
  .product-feature { grid-template-columns:.85fr 1.2fr; }
  .product-feature>div { padding:38px 48px; }
  .product-feature>img { max-height:305px; }
  .product-feature h3 { font-size:26px; }
  .welcome-strip { padding:39px 20px; margin:46px 0 0; }
  .site-footer { padding:30px 24px 20px; }
  .mobile-navigation { display:none; }
  .content-page { padding:45px 28px 50px; }
  .page-title { margin-bottom:33px; }
  .page-title h1 { font-size:35px; }
  .meal-schedule { grid-template-columns:1.3fr 1fr 1fr .7fr; align-items:center; gap:23px; padding:24px; }
  .schedule-title { grid-column:auto; }
  .meal-schedule label:first-of-type { grid-column:auto; }
  .food-layout { grid-template-columns:minmax(0,1fr) 300px; align-items:start; gap:27px; }
  .meal-sidebar { display:block; position:sticky; top:24px; padding:24px; border:1px solid hsl(var(--border)); background:hsl(var(--card)); border-radius:var(--radius); }
  .meal-sidebar h2 { font-size:19px; margin:17px 0 5px; }
  .meal-sidebar>p { font-size:11px; color:hsl(var(--muted-foreground)); }
  .cart-items { padding:24px 0; margin-bottom:15px; border-bottom:1px solid hsl(var(--border)); }
  .cart-items>div { display:flex; justify-content:space-between; gap:10px; font-size:11px; margin:12px 0; }
  .cart-items .cart-empty { display:flex; flex-direction:column; align-items:center; padding:15px 0; text-align:center; color:hsl(var(--muted-foreground)); line-height:1.9; }
  .meal-sidebar>.button { margin-top:20px; }
  .meal-sidebar>small { display:flex; gap:5px; align-items:center; justify-content:center; font-size:9px; margin-top:13px; color:hsl(var(--muted-foreground)); }
  .mobile-cart { display:none; }
  .host-shell { display:grid; grid-template-columns:220px minmax(0,1fr); }
  .host-navigation { display:flex; flex-direction:column; gap:7px; padding:30px 18px; min-height:calc(100vh - 88px); border-right:1px solid hsl(var(--border)); border-bottom:0; }
  .host-navigation>.eyebrow { display:block; padding:0 14px 16px; color:hsl(var(--muted-foreground)); font-size:10px; }
  .host-navigation a { padding:13px 15px; font-size:13px; gap:11px; }
  .host-nav-note { display:block; color:hsl(var(--muted-foreground)); font-size:11px; margin:30px 15px; line-height:2; }
  .host-main { padding:38px; }
  .host-heading { align-items:center; margin-bottom:30px; }
  .host-heading h1 { font-size:29px; }
  .host-stats { gap:17px; }
  .host-stats>a,.host-stats>div { padding:23px; gap:11px; }
  .host-stats span { font-size:12px; }
  .host-stats strong { font-size:37px; }
  .host-stats span:last-child { font-size:11px; }
  .host-shortcuts { gap:17px; }
  .host-shortcuts a { padding:20px; }
  .host-shortcuts strong { font-size:13px; }
  .host-dishes article { padding:19px 23px; flex-wrap:nowrap; gap:17px; }
  .host-dishes img,.host-dish-icon { width:60px; height:60px; }
  .host-dish-info { min-width:0; }
  .host-dish-info h3 { font-size:15px; }
  .host-price { margin:0 12px; }
  .sale-toggle { margin-left:4px; white-space:nowrap; }
  .edit-icon { margin-left:9px; flex-shrink:0; }
  .host-panel.form-stack { padding:30px; }
  .host-content-list article { flex-wrap:nowrap; padding:24px; }
  .host-content-list img { width:130px; height:90px; }
}
@media(min-width:1200px) {
  .desktop-navigation { gap:37px; }
  .hero { height:465px; }
  .hero-copy { padding:42px 60px; }
  .hero h1 { font-size:51px; }
  .hero-description { font-size:13px; }
  .hero-buttons { margin-top:26px; }
  .service-path h2 small { display:inline-block; font-size:8px; margin-left:6px; color:hsl(var(--primary)); padding:1px 4px; border:1px solid hsl(var(--primary) / .2); border-radius:3px; vertical-align:2px; }
  .home-section { margin-top:50px; }
  .food-feature-copy { padding:36px 48px; }
  .food-feature-image { min-height:356px; }
}
.brand-mark { display:grid; place-items:center; width:40px; height:40px; border-radius:10px; background:hsl(var(--secondary)); color:hsl(var(--primary)); flex-shrink:0; }
.media-placeholder { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px; width:100%; aspect-ratio:1.5; background:hsl(var(--secondary) / .45); color:hsl(var(--primary) / .7); }
.media-placeholder small { font-size:9px; }
.media-box .media-placeholder { height:100%; aspect-ratio:auto; }
.food-feature-image>.media-placeholder { height:100%; min-height:240px; }
.travel-home>.media-placeholder { height:260px; aspect-ratio:auto; }
.product-feature>.media-placeholder { height:220px; aspect-ratio:auto; }
.travel-card>.media-placeholder { aspect-ratio:3/4; }
.image-editor .media-placeholder { min-height:220px; }
.modal-image.media-placeholder { max-height:240px; border-radius:calc(var(--radius) - 4px); }
.order-detail .media-placeholder { width:64px; height:64px; aspect-ratio:auto; border-radius:8px; flex-shrink:0; }
.host-content-list .media-placeholder { width:95px; height:85px; aspect-ratio:auto; border-radius:8px; flex-shrink:0; }
.host-dishes .media-placeholder { width:51px; height:51px; aspect-ratio:auto; border-radius:7px; flex-shrink:0; }
.room-video { width:100%; aspect-ratio:1.5; border-radius:var(--radius); background:hsl(var(--chart-3)); }
.auth-page { min-height:calc(100vh - 76px); display:grid; place-items:center; padding:40px 18px; }
.auth-card { width:100%; max-width:420px; background:hsl(var(--card)); border:1px solid hsl(var(--border)); border-radius:var(--radius); padding:28px 24px; display:grid; gap:16px; }
.auth-card h1 { font-size:24px; font-weight:600; letter-spacing:.3px; }
.auth-card>.muted { font-size:12px; line-height:1.9; }
.auth-error { color:hsl(var(--destructive)); font-size:12px; background:hsl(var(--destructive) / .08); border-radius:7px; padding:10px 12px; }
.auth-switch { background:none; border:0; color:hsl(var(--primary)); font-size:12px; text-align:center; }
.auth-note { display:flex; gap:7px; align-items:flex-start; color:hsl(var(--muted-foreground)); font-size:11px; line-height:1.8; }
.auth-note svg { flex-shrink:0; margin-top:2px; }
.auth-note>span { min-width:0; overflow-wrap:anywhere; }
@media(min-width:900px) {
  .brand-mark { width:45px; height:45px; }
  .auth-page { min-height:calc(100vh - 88px); }
}
@media(prefers-reduced-motion:reduce) { .homestay *, .homestay-dialog *, .ask-sheet * { scroll-behavior:auto!important; transition:none!important; animation:none!important; } }
.upload-field { display:grid; gap:8px; }
.upload-label { color:hsl(var(--muted-foreground)); font-size:12px; }
.upload-button input[type=file],
.gallery-add input[type=file] { position:absolute; width:1px; height:1px; opacity:0; overflow:hidden; }
.upload-button:focus-within { outline:2px solid hsl(var(--ring)); outline-offset:2px; }
.upload-button.is-busy { opacity:.8; cursor:progress; }
.upload-video { width:100%; max-height:340px; border-radius:calc(var(--radius) - 4px); background:hsl(var(--chart-3)); }
.image-editor .upload-video { border-radius:0; }
.upload-progress { height:4px; border-radius:30px; overflow:hidden; background:hsl(var(--secondary)); }
.upload-progress i { display:block; height:100%; background:hsl(var(--primary)); transition:width 200ms ease-out; }
.upload-error { display:flex; flex-wrap:wrap; align-items:center; gap:10px; color:hsl(var(--destructive)); font-size:11px; }
.upload-foot { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px; }
.upload-hint { color:hsl(var(--muted-foreground)); font-size:10px; }
.spin { animation:upload-spin 900ms linear infinite; }
@keyframes upload-spin { from { transform:rotate(0deg); } to { transform:rotate(360deg); } }
.dish-card>.media-placeholder { width:95px; min-height:125px; aspect-ratio:auto; border-radius:8px; flex-shrink:0; }
@media(min-width:640px) { .dish-card>.media-placeholder { width:140px; min-height:130px; } }
/* ---------- 问答小助手：住客端「问一问」 ---------- */
.ask-dock { position:fixed; right:16px; bottom:calc(84px + env(safe-area-inset-bottom)); z-index:28; }
.ask-dock.above-cart { bottom:calc(152px + env(safe-area-inset-bottom)); }
.ask-fab { width:62px; height:62px; border-radius:50%; border:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; background:hsl(var(--primary)); color:hsl(var(--primary-foreground)); box-shadow:var(--shadow-lg); font-size:9px; font-weight:600; letter-spacing:.5px; cursor:pointer; }
.ask-fab:hover { opacity:.92; }
.ask-fab:active { transform:translateY(1px); }
.ask-sheet { max-width:520px; margin-inline:auto; max-height:88dvh; display:flex; flex-direction:column; border-radius:calc(var(--radius) + 6px) calc(var(--radius) + 6px) 0 0; font-family:var(--font-sans); }
.ask-body { padding:22px 20px calc(22px + env(safe-area-inset-bottom)); display:grid; gap:16px; overflow-y:auto; }
.ask-head { display:flex; gap:12px; align-items:flex-start; padding-right:26px; }
.ask-head-icon { width:38px; height:38px; border-radius:50%; display:grid; place-items:center; background:hsl(var(--secondary)); color:hsl(var(--primary)); flex-shrink:0; }
.ask-head h2 { font-size:18px; font-weight:600; letter-spacing:.3px; }
.ask-head p { font-size:11px; color:hsl(var(--muted-foreground)); margin-top:5px; line-height:1.8; }
.ask-block { display:grid; gap:9px; }
.ask-section-label { font-size:10px; letter-spacing:1.4px; color:hsl(var(--primary)); font-weight:600; }
.ask-quick { display:flex; flex-wrap:wrap; gap:8px; }
.ask-chip { min-height:40px; padding:9px 14px; border:1px solid hsl(var(--border)); border-radius:30px; background:hsl(var(--card)); color:hsl(var(--primary)); font-size:12px; line-height:1.5; text-align:left; cursor:pointer; }
.ask-chip:hover { background:hsl(var(--secondary) / .55); }
.ask-empty { padding:18px; border:1px dashed hsl(var(--border)); border-radius:var(--radius); display:grid; gap:8px; }
.ask-empty p { font-size:12px; line-height:1.9; }
.ask-answer { padding:18px; border-radius:var(--radius); background:hsl(var(--secondary) / .5); display:grid; gap:9px; }
.ask-answer h3 { font-size:14px; font-weight:600; color:hsl(var(--primary)); }
.ask-answer p { font-size:13px; line-height:1.95; }
.ask-source { font-size:10px; color:hsl(var(--muted-foreground)); }
.ask-unknown { padding:18px; border-radius:var(--radius); border:1px dashed hsl(var(--border)); background:hsl(var(--muted) / .6); display:flex; gap:12px; align-items:flex-start; color:hsl(var(--primary)); }
.ask-unknown svg { flex-shrink:0; margin-top:2px; }
.ask-unknown h3 { font-size:13px; font-weight:600; }
.ask-unknown p { font-size:12px; line-height:1.9; color:hsl(var(--foreground)); margin-top:5px; }
.ask-note { font-size:10px; color:hsl(var(--muted-foreground)); }
.ask-actions { display:flex; flex-wrap:wrap; gap:10px; }
.ask-actions .button { flex:1; min-width:140px; }
.ask-form { display:flex; gap:9px; align-items:center; }
.ask-form input { flex:1; min-width:0; min-height:46px; border:1px solid hsl(var(--input)); border-radius:30px; padding:10px 16px; background:hsl(var(--card)); color:hsl(var(--foreground)); font-size:13px; }
.ask-form button { flex-shrink:0; width:46px; height:46px; border-radius:50%; border:0; display:grid; place-items:center; background:hsl(var(--primary)); color:hsl(var(--primary-foreground)); cursor:pointer; }
.ask-form button:disabled { opacity:.4; cursor:not-allowed; }

/* 首页底部问答入口与页内次入口 */
.ask-strip-icon { color:hsl(var(--primary)); }
.ask-chips { display:flex; flex-wrap:wrap; gap:8px; margin-top:13px; justify-content:center; }
.ask-strip-actions { display:flex; flex-wrap:wrap; gap:10px; justify-content:center; }
.ask-inline { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px; margin:-8px 0 24px; padding:13px 16px; border:1px solid hsl(var(--border)); border-radius:var(--radius); background:hsl(var(--card)); }
.ask-inline span { font-size:12px; color:hsl(var(--muted-foreground)); }
.room-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }

/* ---------- 问答小助手：老板端问答助手 ---------- */
.qa-list article { padding:19px; display:grid; gap:9px; border-bottom:1px solid hsl(var(--border)); }
.qa-list article:last-child { border-bottom:0; }
.qa-list header { display:flex; gap:10px; align-items:flex-start; justify-content:space-between; }
.qa-list h3 { font-size:14px; font-weight:600; line-height:1.6; }
.qa-list p { font-size:12px; line-height:1.9; color:hsl(var(--muted-foreground)); }
.qa-list .qa-meta { display:flex; align-items:center; gap:6px; font-size:10px; }
.qa-list .qa-meta svg { flex-shrink:0; }
.qa-keywords { display:flex; flex-wrap:wrap; gap:6px; }
.qa-keywords span { font-size:10px; padding:3px 10px; border-radius:20px; background:hsl(var(--secondary)); color:hsl(var(--primary)); }
.qa-status { flex-shrink:0; font-size:10px; padding:3px 10px; border-radius:20px; background:hsl(var(--muted)); color:hsl(var(--muted-foreground)); white-space:nowrap; }
.qa-status.done { background:hsl(var(--secondary)); color:hsl(var(--primary)); }
.qa-actions { display:flex; flex-wrap:wrap; gap:9px; }
.qa-actions .button { min-height:38px; padding:8px 14px; font-size:12px; }
.qa-pin { display:inline-flex; align-items:center; gap:6px; flex-shrink:0; min-height:36px; padding:8px 12px; border:1px solid hsl(var(--border)); border-radius:30px; background:hsl(var(--card)); color:hsl(var(--muted-foreground)); font-size:11px; white-space:nowrap; cursor:pointer; }
.qa-pin.on { color:hsl(var(--primary)); border-color:hsl(var(--primary) / .35); background:hsl(var(--secondary) / .6); }
.qa-filters { display:flex; flex-wrap:wrap; gap:8px; padding:16px 19px 0; }
.qa-filters button { min-height:38px; padding:8px 16px; border:1px solid hsl(var(--border)); border-radius:30px; background:hsl(var(--card)); color:hsl(var(--muted-foreground)); font-size:12px; cursor:pointer; }
.qa-filters button.active { background:hsl(var(--primary)); border-color:hsl(var(--primary)); color:hsl(var(--primary-foreground)); }
.qa-more { padding:19px; display:flex; justify-content:center; border-top:1px solid hsl(var(--border)); }
@media(min-width:640px) {
  .ask-chips,.ask-strip-actions { justify-content:flex-start; }
}
@media(min-width:900px) {
  .ask-dock,.ask-dock.above-cart { right:28px; bottom:28px; }
  .ask-sheet { bottom:22px; border-radius:calc(var(--radius) + 8px); max-height:min(660px,84dvh); }
  .qa-list article { padding:22px; }
}

/* ---------- 首页模块排序（老板端）与模块间距 ---------- */
.promo-banner.promo-spaced { margin-top:38px; }
.module-presets { display:flex; flex-wrap:wrap; align-items:center; gap:9px; }
.module-presets .button { min-height:38px; padding:8px 14px; font-size:12px; }
.module-index { flex-shrink:0; width:26px; height:26px; display:grid; place-items:center; border-radius:50%; background:hsl(var(--secondary)); color:hsl(var(--primary)); font-size:12px; font-weight:600; }
.module-hidden { opacity:.62; }
.host-content-list article>.module-actions { flex:0 0 auto; margin-left:auto; display:flex; align-items:center; gap:8px; }
.module-actions .sale-toggle { margin-left:0; }
@media(min-width:640px) { .promo-banner.promo-spaced { margin-top:46px; } }
@media(min-width:1200px) { .promo-banner.promo-spaced { margin-top:50px; } }

/* ---------- 首页大图 / 房型照片：多图轮播与多图上传 ---------- */
.photo-carousel { position:relative; touch-action:pan-y pinch-zoom; }
.photo-carousel [data-slot="carousel"] { height:100%; }
.photo-carousel [data-slot="carousel-content"] { height:100%; }
.photo-carousel-track { height:100%; margin-left:0; touch-action:pan-y pinch-zoom; }
.photo-carousel-item { height:100%; padding-left:0; }
.photo-slide-photo { width:100%; height:100%; -o-object-fit:cover; object-fit:cover; }
.photo-slide-ghost { display:block; width:100%; height:100%; background:hsl(var(--secondary) / .35); }
.photo-count { position:absolute; right:13px; bottom:13px; z-index:2; padding:4px 9px; border-radius:30px; background:hsl(var(--chart-3) / .5); color:hsl(var(--primary-foreground)); font-size:9px; letter-spacing:1px; font-variant-numeric:tabular-nums; }
.hero-gallery { position:absolute; inset:0; }
.hero-gallery .photo-slide-photo { -o-object-position:62% center; object-position:62% center; }
/* 遮罩与文案层只做展示，让左右滑动能落到下面的大图轮播；两个按钮保持可点。 */
.hero-shade,.hero-copy,.hero-season,.hero-bottom { pointer-events:none; }
.hero-copy a { pointer-events:auto; }
.hero-photo-count { font-variant-numeric:tabular-nums; }
.modal-gallery { aspect-ratio:1.5; border-radius:calc(var(--radius) - 4px); overflow:hidden; }
.modal-gallery .media-placeholder { height:100%; aspect-ratio:auto; }
/* 周边玩法详情：照片改竖版大图（3:4）。弹层 DialogContent 是 grid，带 aspect-ratio 的 grid 项
   在 overflow:hidden 下不会把行高撑开（行高塌成 0），照片会溢出盖住下面的标签 / 价格 / 正文；
   所以用 padding-top 直接给出盒高（= 宽 × 4/3），图片层绝对定位铺满。 */
.trip-gallery { position:relative; aspect-ratio:auto; height:0; padding-top:133.3333%; }
.trip-gallery>[data-slot="carousel"],
.trip-gallery>.media-placeholder { position:absolute; inset:0; height:auto; }
.gallery-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; list-style:none; margin:0; padding:0; }
.gallery-item { position:relative; border:1px solid hsl(var(--border)); border-radius:calc(var(--radius) - 4px); overflow:hidden; background:hsl(var(--card)); }
.gallery-thumb { aspect-ratio:1; background:hsl(var(--secondary) / .45); }
.gallery-thumb img { width:100%; height:100%; -o-object-fit:cover; object-fit:cover; }
.gallery-thumb .media-placeholder { height:100%; aspect-ratio:auto; }
.gallery-thumb-pending { display:grid; place-items:center; color:hsl(var(--primary) / .7); }
.gallery-index { position:absolute; top:6px; left:6px; padding:1px 7px; border-radius:20px; background:hsl(var(--chart-3) / .55); color:hsl(var(--primary-foreground)); font-size:10px; font-variant-numeric:tabular-nums; }
.gallery-item-actions { position:absolute; right:5px; bottom:5px; display:flex; gap:4px; }
.gallery-item-actions button { width:26px; height:26px; display:grid; place-items:center; border:0; border-radius:6px; background:hsl(var(--card) / .92); color:hsl(var(--primary)); cursor:pointer; }
.gallery-item-actions button:disabled { opacity:.35; cursor:not-allowed; }
.gallery-item.is-failed { border-color:hsl(var(--destructive) / .55); }
.gallery-progress { padding:8px 9px; display:grid; gap:6px; }
.gallery-progress .upload-error { font-size:10px; }
.gallery-add { display:inline-flex; align-items:center; gap:7px; flex-shrink:0; white-space:nowrap; min-height:42px; padding:10px 14px; border:1px dashed hsl(var(--border)); border-radius:calc(var(--radius) - 4px); color:hsl(var(--primary)); font-size:12px; font-weight:600; cursor:pointer; }
.gallery-add:focus-within { outline:2px solid hsl(var(--ring)); outline-offset:2px; }
.gallery-add.is-full { opacity:.5; cursor:not-allowed; }
@media(min-width:640px) { .gallery-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(min-width:900px) { .gallery-grid { grid-template-columns:repeat(4,minmax(0,1fr)); } }

/* ---------- 住客端菜单：按人套餐卡片与购物车（只追加，不改既有 token） ---------- */
.package-card { align-items:flex-start; }
.package-card .price { display:inline-flex; align-items:baseline; }
.package-card .price small { margin-left:3px; }
.package-tier { display:grid; gap:3px; padding:10px 12px; margin:11px 0 0; border:1px solid hsl(var(--border) / .8); border-radius:calc(var(--radius) - 5px); background:hsl(var(--secondary) / .35); }
.package-tier strong { font-size:11px; font-weight:600; color:hsl(var(--primary)); }
.package-tier p { font-size:11px; line-height:1.8; color:hsl(var(--muted-foreground)); margin:0; }
.package-tier strong.package-warn { color:hsl(var(--destructive)); }
.package-toggle { display:inline-flex; align-items:center; gap:5px; min-height:34px; margin-top:6px; padding:0; border:0; background:none; color:hsl(var(--primary)); font-size:11px; font-weight:600; }
.package-tier-list { display:grid; gap:7px; margin:7px 0 0; padding:0; list-style:none; }
.package-tier-row { display:grid; gap:2px; padding:9px 11px; border:1px solid hsl(var(--border) / .7); border-radius:calc(var(--radius) - 6px); }
.package-tier-row.current { border-color:hsl(var(--primary) / .45); background:hsl(var(--secondary) / .45); }
.package-tier-row span { font-size:11px; font-weight:600; color:hsl(var(--primary)); }
.package-tier-row small { font-size:10px; color:hsl(var(--muted-foreground)); }
.package-actions { display:flex; flex-wrap:wrap; align-items:center; gap:9px; margin-top:10px; }
.package-actions .soft-tag { font-size:10px; }
.meal-warn { grid-column:1/-1; font-size:11px; line-height:1.8; color:hsl(var(--destructive)); margin:0; }
.cart-package>span { min-width:0; }
.order-detail .order-item-detail { font-size:11px; line-height:1.8; color:hsl(var(--primary)); margin-top:4px; }
@media(min-width:640px) {
  .package-tier { padding:12px 15px; }
  .package-tier strong,.package-tier p,.package-tier-row span { font-size:12px; }
  .package-toggle { font-size:12px; }
}

/* ---------- 老板端：菜单两种卖法（按份单点 / 按人套餐） ---------- */
.field-block { display:grid; gap:8px; }
.field-label { color:hsl(var(--muted-foreground)); font-size:12px; }
.field-hint { color:hsl(var(--muted-foreground)); font-size:10px; line-height:1.8; }
.form-error { color:hsl(var(--destructive)); background:hsl(var(--destructive) / .08); border-radius:7px; padding:10px 12px; font-size:12px; }
.dish-mode-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
.dish-mode-option { min-height:44px; min-width:0; padding:10px 12px; border:1px solid hsl(var(--border)); border-radius:calc(var(--radius) - 4px); background:hsl(var(--card)); color:hsl(var(--muted-foreground)); font-size:13px; font-weight:600; }
.dish-mode-option.active { background:hsl(var(--secondary)); border-color:hsl(var(--primary) / .35); color:hsl(var(--primary)); }
.dish-title { display:flex; align-items:center; flex-wrap:wrap; gap:7px; }
.dish-mode-tag { flex-shrink:0; padding:2px 8px; border-radius:20px; background:hsl(var(--muted)); color:hsl(var(--muted-foreground)); font-size:10px; white-space:nowrap; }
.dish-mode-tag.package { background:hsl(var(--secondary)); color:hsl(var(--primary)); }
.tier-row { display:grid; gap:12px; padding:14px; border:1px dashed hsl(var(--border)); border-radius:calc(var(--radius) - 4px); background:hsl(var(--secondary) / .18); }
.tier-row-head { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.tier-row-label { font-size:11px; font-weight:600; letter-spacing:1px; color:hsl(var(--primary)); }
.tier-remove { display:inline-flex; align-items:center; gap:5px; min-height:34px; padding:6px 11px; border:1px solid hsl(var(--border)); border-radius:30px; background:hsl(var(--card)); color:hsl(var(--muted-foreground)); font-size:11px; white-space:nowrap; }
.tier-remove:hover { color:hsl(var(--primary)); }
.tier-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.tier-actions { display:flex; flex-wrap:wrap; align-items:center; gap:10px; }
.tier-actions .button { min-height:40px; }
.tier-actions .field-hint { flex:1; min-width:170px; }
.host-dishes .host-price { white-space:nowrap; }
@media(min-width:640px) {
  .tier-row { padding:16px; }
}
@media(min-width:900px) {
  .dish-mode-row { gap:12px; }
  .tier-row { padding:18px; }
  .dish-mode-tag { font-size:11px; padding:3px 10px; }
}

/* ---------- 住客端房型：详情「房间信息」栏（只追加，沿用既有 token） ---------- */
.room-info { display:grid; gap:15px; padding:16px; border:1px solid hsl(var(--border) / .8); border-radius:var(--radius); background:hsl(var(--secondary) / .3); }
.room-info-title { font-size:13px; font-weight:600; letter-spacing:.3px; color:hsl(var(--primary)); }
.room-info-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 14px; margin:0; }
.room-info-item { display:grid; gap:3px; min-width:0; }
.room-info-item dt { font-size:10px; letter-spacing:1px; color:hsl(var(--muted-foreground)); }
.room-info-item dd { margin:0; font-size:13px; font-weight:600; color:hsl(var(--foreground)); overflow-wrap:anywhere; }
.room-info-amenities { display:grid; gap:8px; }
.room-info-amenities-label { font-size:10px; letter-spacing:1px; color:hsl(var(--muted-foreground)); }
.room-info-tags { display:flex; flex-wrap:wrap; gap:7px; }
.room-info-tag { padding:3px 9px; border:1px solid hsl(var(--primary) / .18); border-radius:4px; color:hsl(var(--primary)); font-size:10px; }
@media(min-width:640px) {
  .room-info { padding:18px; }
  .room-info-item dd { font-size:14px; }
  .room-info-tag { font-size:11px; padding:4px 10px; }
}

/* ---------- 老板端：房型结构化点选（床型 / 面积 / 可住人数 / 早餐 / 设施）与复制房型 ---------- */
.room-choice-row { display:flex; flex-wrap:wrap; gap:8px; }
.room-choice { min-height:44px; min-width:0; padding:9px 14px; border:1px solid hsl(var(--border)); border-radius:30px; background:hsl(var(--card)); color:hsl(var(--muted-foreground)); font-size:12px; line-height:1.5; text-align:left; }
.room-choice.active { background:hsl(var(--secondary)); border-color:hsl(var(--primary) / .35); color:hsl(var(--primary)); font-weight:600; }
.room-quick-row { display:flex; flex-wrap:wrap; gap:8px; }
.room-quick { min-height:44px; padding:8px 12px; border:1px solid hsl(var(--border)); border-radius:calc(var(--radius) - 4px); background:hsl(var(--card)); color:hsl(var(--primary)); font-size:12px; font-variant-numeric:tabular-nums; }
.room-quick.active { background:hsl(var(--secondary)); border-color:hsl(var(--primary) / .35); font-weight:600; }
.room-amenity-grid { display:flex; flex-wrap:wrap; gap:8px; }
.form-stack .room-amenity { display:inline-flex; align-items:center; gap:8px; min-height:44px; padding:9px 13px; border:1px solid hsl(var(--border)); border-radius:calc(var(--radius) - 4px); background:hsl(var(--card)); color:hsl(var(--muted-foreground)); font-size:12px; cursor:pointer; }
.form-stack .room-amenity input[type=checkbox] { width:16px; height:16px; min-height:0; margin:0; padding:0; border:0; border-radius:0; background:none; accent-color:hsl(var(--primary)); flex:0 0 auto; }
.form-stack .room-amenity.active { background:hsl(var(--secondary)); border-color:hsl(var(--primary) / .35); color:hsl(var(--primary)); font-weight:600; }
.room-summary { overflow-wrap:anywhere; }
/* 并排字段的格子会互相撑高：不加这行，价格输入框和可住人数下拉会被拉成整行高度 */
.room-field-grid>* { align-content:start; }
.host-content-list article>.room-list-actions { flex:0 0 auto; margin-left:auto; display:flex; flex-wrap:wrap; align-items:center; gap:8px; min-width:0; }
.room-list-actions .button { margin-left:0; min-height:38px; padding:8px 13px; font-size:12px; }
.room-list-actions .sale-toggle { margin-left:0; }
@media(max-width:639px) {
  .room-field-grid { grid-template-columns:1fr; }
  .room-list-actions { width:100%; }
}

/* ---------- 住客端周边玩法：系列导语 / 图片数徽标 / 价格行 / 包含与须知（只追加，沿用既有 token） ---------- */
.travel-intro { display:grid; gap:9px; margin:0 0 26px; padding:17px 20px; border:1px solid hsl(var(--border) / .7); border-left:3px solid hsl(var(--primary) / .35); border-radius:var(--radius); background:hsl(var(--secondary) / .35); }
.travel-intro h2 { font-size:15px; font-weight:600; letter-spacing:.3px; color:hsl(var(--primary)); }
.travel-intro p { font-size:12px; line-height:1.95; color:hsl(var(--muted-foreground)); overflow-wrap:anywhere; }

/* 图片数徽标浮在封面上，卡片只是被加了个锚点，不改既有布局 */
.travel-card { position:relative; }
.trip-image-count { position:absolute; top:15px; right:15px; z-index:1; padding:4px 10px; border-radius:4px; background:hsl(var(--card) / .95); color:hsl(var(--primary)); font-size:10px; letter-spacing:.5px; font-variant-numeric:tabular-nums; }

/* 卡片/首页的价格行要盖过 .travel-card p 与 .travel-home-copy p，所以选择器带上父级 */
.trip-price,.travel-card p.trip-price,.travel-home-copy p.trip-price { color:hsl(var(--accent)); font-size:13px; font-weight:600; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.travel-card p.trip-price { margin:-8px 0 18px; }
.travel-home-copy p.trip-price { margin-top:9px; }
/* 时长可以留空；补上 auto 让单独的「查看安排」仍在右侧，与旧卡片一致 */
.travel-card .row-between .text-link { margin-left:auto; }

.trip-price-line { display:flex; flex-wrap:wrap; align-items:baseline; gap:6px 10px; }
.trip-price-label { font-size:10px; letter-spacing:1px; color:hsl(var(--muted-foreground)); }

.trip-info-block { display:grid; gap:9px; padding:14px 15px; border:1px solid hsl(var(--border) / .8); border-radius:calc(var(--radius) - 4px); background:hsl(var(--secondary) / .3); }
.trip-info-block h3 { font-size:11px; font-weight:600; letter-spacing:1px; color:hsl(var(--primary)); }
.trip-info-block ul { display:grid; gap:6px; margin:0; padding:0; list-style:none; }
.trip-info-block li { position:relative; padding-left:14px; font-size:12px; line-height:1.7; color:hsl(var(--foreground)); overflow-wrap:anywhere; }
.trip-info-block li:before { content:''; position:absolute; left:2px; top:.62em; width:4px; height:4px; border-radius:50%; background:hsl(var(--primary) / .55); }
.trip-notice-block { background:hsl(var(--muted) / .5); }
.trip-notice-block li:before { background:hsl(var(--muted-foreground) / .65); }
@media(min-width:640px) {
  .travel-intro { padding:19px 23px; }
  .travel-intro h2 { font-size:16px; }
  .trip-info-block { padding:16px 18px; }
  .trip-info-block h3 { font-size:12px; }
  .trip-info-block li,.trip-price { font-size:13px; }
}
@media(min-width:900px) {
  .trip-image-count { top:20px; right:20px; }
}

/* ---------- 老板端：周边线路与研学（多图 / 价格 / 包含 / 须知 / 排序，只追加不改既有 token） ---------- */
.trip-fields { display:grid; gap:16px; padding:15px; border:1px solid hsl(var(--border) / .8); border-radius:var(--radius); background:hsl(var(--secondary) / .22); }
.trip-fields label>small { display:block; }
.trip-lines-input { min-height:122px; }
.trip-list-meta { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.trip-list-price { min-width:0; font-size:12px; font-weight:600; color:hsl(var(--primary)); overflow-wrap:anywhere; }
.trip-list-count { flex-shrink:0; font-size:10px; padding:2px 9px; border-radius:30px; background:hsl(var(--secondary)); color:hsl(var(--primary)); white-space:nowrap; }
.host-content-list article>.trip-list-actions { flex:0 0 auto; margin-left:auto; display:flex; flex-wrap:wrap; align-items:center; gap:8px; min-width:0; }
.trip-list-actions .button { margin-left:0; min-height:38px; padding:8px 13px; font-size:12px; }
.trip-list-actions .edit-icon { margin-left:0; }
.trip-list-actions .sale-toggle { margin-left:0; }
@media(min-width:640px) {
  .trip-fields { gap:18px; padding:18px; }
}
@media(max-width:639px) {
  .trip-list-actions { width:100%; }
}

/* ---------- 老板端订单卡：已收 / 到店收余款、发货与「已付待处理」标注（只追加，不改既有 token） ---------- */
.order-amounts { display:flex; flex-wrap:wrap; gap:9px; margin:-8px 0 16px; }
.order-amount { display:inline-flex; align-items:baseline; gap:6px; min-width:0; padding:7px 12px; border:1px solid hsl(var(--border)); border-radius:calc(var(--radius) - 4px); background:hsl(var(--secondary) / .35); }
.order-amount>span { font-size:10px; letter-spacing:1px; color:hsl(var(--muted-foreground)); }
.order-amount strong { font-size:15px; font-weight:600; color:hsl(var(--accent)); font-variant-numeric:tabular-nums; }
.order-amount.due { background:hsl(var(--card)); border-style:dashed; }
.order-amount.due strong { color:hsl(var(--primary)); }
.paid-pending { display:inline-flex; align-items:center; margin:14px 0 0; padding:8px 12px; border-radius:calc(var(--radius) - 4px); background:hsl(var(--destructive) / .08); color:hsl(var(--destructive)); font-size:12px; font-weight:600; }
.ship-toggle { margin:16px 0 18px; }
.ship-form { gap:16px; margin:16px 0 18px; padding:15px; border:1px dashed hsl(var(--border)); border-radius:calc(var(--radius) - 4px); background:hsl(var(--secondary) / .18); }
.ship-note { display:grid; gap:3px; margin:14px 0 18px; padding:12px 14px; border:1px solid hsl(var(--border) / .8); border-left:3px solid hsl(var(--primary) / .35); border-radius:calc(var(--radius) - 4px); background:hsl(var(--secondary) / .3); }
.ship-note-label { display:inline-flex; align-items:center; gap:6px; font-size:11px; font-weight:600; letter-spacing:1px; color:hsl(var(--primary)); }
.ship-note p { font-size:13px; font-weight:600; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.ship-note small { font-size:10px; color:hsl(var(--muted-foreground)); overflow-wrap:anywhere; }
@media(min-width:640px) {
  .order-amount strong { font-size:16px; }
  .ship-form { padding:18px; }
}

/* ---------- 住客端菜单：提交后的定金与到店余款说明（只追加，沿用既有 token） ---------- */
.meal-pay-plan { font-size:12px; line-height:1.9; color:hsl(var(--muted-foreground)); }
.meal-pay-plan strong { color:hsl(var(--accent)); font-weight:600; font-variant-numeric:tabular-nums; white-space:nowrap; }

/* ---------- 住客端「我的订单」：在线支付状态与发货信息（只追加，沿用既有 token） ---------- */
/* 两个状态标签并排在卡片右上；窄屏时允许换行，不撑破卡片 */
.order-tags { display:flex; flex-wrap:wrap; gap:6px; justify-content:flex-end; }
.pay-tag { white-space:nowrap; }
.pay-tag.pay-unpaid { background:hsl(var(--accent) / .12); color:hsl(var(--accent)); }
.pay-tag.pay-paying { background:hsl(var(--secondary)); color:hsl(var(--primary)); }
.pay-tag.pay-paid { background:hsl(var(--primary)); color:hsl(var(--primary-foreground)); }
.pay-tag.pay-expired { background:hsl(var(--muted)); color:hsl(var(--muted-foreground)); }

.pay-block { display:grid; gap:10px; margin:18px 0 16px; padding:14px 15px; border:1px solid hsl(var(--border) / .8); border-radius:calc(var(--radius) - 4px); background:hsl(var(--secondary) / .28); }
.pay-window { font-size:11px; color:hsl(var(--muted-foreground)); }
.pay-amount { font-size:13px; font-weight:600; color:hsl(var(--accent)); font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.pay-notice { padding:9px 11px; border-radius:calc(var(--radius) - 6px); background:hsl(var(--accent) / .1); color:hsl(var(--accent)); font-size:12px; font-weight:600; overflow-wrap:anywhere; }

.ship-block { display:grid; gap:9px; margin:16px 0; padding:14px 15px; border:1px solid hsl(var(--border) / .8); border-radius:calc(var(--radius) - 4px); background:hsl(var(--card)); }
.ship-title { display:flex; align-items:center; gap:7px; font-size:11px; font-weight:600; letter-spacing:1px; color:hsl(var(--primary)); }
.ship-line { display:flex; align-items:center; flex-wrap:wrap; gap:8px 12px; }
.ship-line>span { flex-shrink:0; font-size:11px; color:hsl(var(--muted-foreground)); }
.ship-line>strong { flex:1; min-width:0; font-size:13px; font-weight:600; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.ship-copy { flex-shrink:0; min-height:40px; padding:8px 13px; font-size:12px; }

/* 弹层挂在 body 下、不在 .homestay 里，边距要自己写 */
.cancel-paid-note { margin:10px 0 0; padding:10px 12px; border-radius:calc(var(--radius) - 6px); background:hsl(var(--accent) / .1); color:hsl(var(--accent)); font-size:12px; line-height:1.7; }
@media(min-width:640px) {
  .pay-block,.ship-block { padding:16px 18px; }
  .pay-amount,.ship-line>strong { font-size:14px; }
}

/* ---------- 老板端：收款记录（合计 / 筛选 / 每笔已收，只追加，沿用既有 token） ---------- */
.receipt-summary { display:grid; gap:10px; margin-bottom:18px; }
.receipt-cell { display:grid; gap:6px; min-width:0; padding:16px; border:1px solid hsl(var(--border)); border-radius:var(--radius); background:hsl(var(--card)); }
.receipt-label { font-size:11px; letter-spacing:.5px; color:hsl(var(--muted-foreground)); }
.receipt-amount { font-size:23px; font-weight:600; color:hsl(var(--accent)); font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.receipt-count { font-size:23px; font-weight:600; color:hsl(var(--primary)); font-variant-numeric:tabular-nums; }
.receipt-count small { margin-left:4px; font-size:11px; font-weight:400; color:hsl(var(--muted-foreground)); }
.receipt-cell small { font-size:10px; line-height:1.7; color:hsl(var(--muted-foreground)); }
.receipt-note { margin:0 0 16px; font-size:11px; line-height:1.8; color:hsl(var(--muted-foreground)); }

.receipt-filters { display:grid; gap:12px; margin-bottom:18px; }
.receipt-filters label { display:grid; gap:7px; font-size:12px; color:hsl(var(--muted-foreground)); }
.receipt-filters select { min-width:0; width:100%; min-height:44px; padding:10px 12px; border:1px solid hsl(var(--input)); border-radius:7px; background:hsl(var(--card)); color:hsl(var(--foreground)); font-size:13px; }

.receipt-list { display:grid; gap:12px; }
.receipt-row { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px 14px; min-width:0; padding:15px 17px; border:1px solid hsl(var(--border)); border-radius:var(--radius); background:hsl(var(--card)); }
.receipt-main { display:grid; gap:5px; flex:1 1 150px; min-width:0; }
.receipt-time { font-size:12px; font-weight:600; color:hsl(var(--foreground)); font-variant-numeric:tabular-nums; }
.receipt-order { font-size:11px; color:hsl(var(--muted-foreground)); overflow-wrap:anywhere; }
.receipt-side { display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-end; gap:9px; margin-left:auto; }
.receipt-row-amount { font-size:19px; font-weight:600; color:hsl(var(--accent)); font-variant-numeric:tabular-nums; white-space:nowrap; }
.receipt-status { display:inline-flex; align-items:center; padding:3px 9px; border-radius:5px; background:hsl(var(--secondary)); color:hsl(var(--primary)); font-size:11px; white-space:nowrap; }
.receipt-status.failed { background:hsl(var(--destructive) / .1); color:hsl(var(--destructive)); }
.receipt-fail { flex-basis:100%; font-size:11px; color:hsl(var(--muted-foreground)); overflow-wrap:anywhere; }

@media(min-width:640px) {
  .receipt-summary { grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
  .receipt-amount,.receipt-count { font-size:27px; }
  .receipt-row { padding:17px 20px; }
  .receipt-filters { grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
}

/* ---------- 住客端：特产结账与在线支付（只追加，沿用既有 token） ---------- */
.purchase-notice { display:grid; gap:6px; padding:14px 15px; border:1px solid hsl(var(--border) / .8); border-radius:calc(var(--radius) - 4px); background:hsl(var(--muted) / .55); }
.purchase-notice h3 { font-size:12px; font-weight:600; letter-spacing:.3px; color:hsl(var(--primary)); }
.purchase-notice p { font-size:12px; line-height:1.9; color:hsl(var(--muted-foreground)); overflow-wrap:anywhere; white-space:pre-wrap; }
.pay-summary { display:grid; gap:9px; padding:15px 16px; border:1px solid hsl(var(--border) / .8); border-radius:calc(var(--radius) - 4px); background:hsl(var(--secondary) / .3); }
.pay-line { display:flex; align-items:baseline; justify-content:space-between; gap:12px; font-size:12px; color:hsl(var(--muted-foreground)); }
.pay-line strong { color:hsl(var(--foreground)); font-size:13px; font-weight:600; font-variant-numeric:tabular-nums; white-space:nowrap; }
.pay-line.total { padding-top:10px; border-top:1px solid hsl(var(--border)); font-size:13px; color:hsl(var(--foreground)); }
.pay-line.total strong { color:hsl(var(--accent)); font-size:20px; letter-spacing:-.4px; }
.pay-hint { display:flex; flex-wrap:wrap; align-items:center; gap:6px; font-size:11px; line-height:1.8; color:hsl(var(--primary)); }
.pay-hint.warn { color:hsl(var(--destructive)); }
.pay-layout { display:grid; gap:18px; }
.pay-panel { display:grid; gap:14px; align-content:start; padding:18px; border:1px solid hsl(var(--border)); border-radius:var(--radius); background:hsl(var(--card)); }
.pay-panel .muted { font-size:12px; }
.pay-result { display:grid; gap:12px; justify-items:center; text-align:center; }
.pay-result>svg { color:hsl(var(--primary)); }
.pay-result h2 { font-size:18px; font-weight:600; line-height:1.5; }
.pay-result p { font-size:12px; line-height:1.9; color:hsl(var(--muted-foreground)); overflow-wrap:anywhere; }
.pay-result.paid h2 { color:hsl(var(--primary)); }
.pay-qr { display:grid; justify-items:center; gap:10px; width:100%; padding:14px 12px; border:1px solid hsl(var(--border) / .8); border-radius:calc(var(--radius) - 4px); background:hsl(var(--card)); }
.pay-qr svg { border-radius:8px; }
.pay-qr .pay-hint { justify-content:center; text-align:center; }
.pay-actions { display:flex; flex-wrap:wrap; gap:10px; width:100%; margin-top:4px; }
.pay-actions .button { flex:1; min-width:130px; }
.pay-spin { animation:upload-spin 900ms linear infinite; }
@media(min-width:900px) {
  .pay-layout { grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:start; gap:22px; }
  .pay-panel { padding:22px; }
  .pay-result h2 { font-size:20px; }
}

/* ---------- 住客端：运费缺口高亮（只追加，沿用既有 token） ---------- */
.pay-nudge { display:flex; align-items:center; gap:8px; padding:10px 12px; border-radius:calc(var(--radius) - 4px); background:hsl(var(--secondary) / .6); color:hsl(var(--primary)); font-size:12px; line-height:1.7; }
.pay-nudge>svg { flex-shrink:0; }
.pay-nudge strong { color:hsl(var(--accent)); font-weight:700; font-size:13px; font-variant-numeric:tabular-nums; white-space:nowrap; }
.notice strong { font-weight:700; }

/* ---------- 住客端菜单：套餐详情弹层（只追加，沿用既有 token） ---------- */
.package-actions .text-link { margin-left:auto; min-height:34px; }
.package-tier-lines { display:grid; gap:4px; margin:0; padding:0; list-style:none; }
.package-tier-lines li { position:relative; padding-left:12px; font-size:11px; line-height:1.7; color:hsl(var(--muted-foreground)); overflow-wrap:anywhere; }
.package-tier-lines li:before { content:''; position:absolute; left:1px; top:.6em; width:4px; height:4px; border-radius:50%; background:hsl(var(--primary) / .5); }
.package-tier-empty { font-size:11px; line-height:1.8; color:hsl(var(--muted-foreground)); margin:0; }
.package-detail { display:grid; gap:14px; }
.package-detail-art { width:100%; min-height:150px; border-radius:calc(var(--radius) - 4px); overflow-wrap:anywhere; }
.package-detail .price { font-size:22px; }
.package-detail-note { margin:0; font-size:12px; line-height:1.9; color:hsl(var(--muted-foreground)); overflow-wrap:anywhere; }
.package-detail-tiers { display:grid; gap:10px; }
.package-detail-tiers h3 { margin:0; font-size:12px; font-weight:600; letter-spacing:1px; color:hsl(var(--primary)); }
.package-detail-tiers>ul { display:grid; gap:10px; margin:0; padding:0; list-style:none; }
.package-detail-tier { display:grid; gap:7px; min-width:0; padding:12px 13px; border:1px solid hsl(var(--border) / .8); border-radius:calc(var(--radius) - 5px); background:hsl(var(--secondary) / .3); }
.package-detail-tier.current { border-color:hsl(var(--primary) / .45); background:hsl(var(--secondary) / .55); }
.package-detail-tier-head { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:6px; }
.package-detail-tier-head strong { font-size:12px; font-weight:600; color:hsl(var(--primary)); overflow-wrap:anywhere; }
.package-detail-current { flex-shrink:0; padding:2px 9px; border:1px solid hsl(var(--primary) / .35); border-radius:30px; background:hsl(var(--card)); color:hsl(var(--primary)); font-size:10px; white-space:nowrap; }
.package-detail-lines { display:grid; gap:5px; margin:0; padding:0; list-style:none; }
.package-detail-lines li { position:relative; padding-left:13px; font-size:12px; line-height:1.7; color:hsl(var(--foreground)); overflow-wrap:anywhere; }
.package-detail-lines li:before { content:''; position:absolute; left:2px; top:.62em; width:4px; height:4px; border-radius:50%; background:hsl(var(--primary) / .55); }
.package-detail-empty { margin:0; font-size:11px; line-height:1.8; color:hsl(var(--muted-foreground)); }
.package-detail-warn { margin:0; font-size:11px; line-height:1.8; color:hsl(var(--destructive)); }
.package-detail-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:4px; }
.package-detail-actions .button { flex:1; min-width:150px; }
@media(max-width:430px) {
  .package-detail .modal-image { max-height:190px; }
  .package-detail-actions .button { flex:1 1 100%; }
}
@media(min-width:640px) {
  .package-detail { gap:16px; }
  .package-tier-lines li { font-size:12px; }
  .package-detail-note,.package-detail-lines li { font-size:13px; }
  .package-detail-tier-head strong { font-size:13px; }
}

/* ---------- 住客端菜单：按人套餐多图封面与详情轮播（只追加，沿用既有 token） ---------- */
/* 封面盒固定宽高比，图片加载前后不跳动；包在盒内的图片不再匹配 .dish-card>img */
.package-cover { position:relative; flex-shrink:0; width:95px; aspect-ratio:95/125; border-radius:8px; overflow:hidden; background:hsl(var(--secondary) / .4); }
.package-cover img,.package-cover .dish-art { width:100%; height:100%; min-height:0; border-radius:0; }
.package-cover img { -o-object-fit:cover; object-fit:cover; }
.package-image-count { position:absolute; top:6px; right:6px; z-index:1; padding:2px 8px; border-radius:4px; background:hsl(var(--card) / .95); color:hsl(var(--primary)); font-size:9px; letter-spacing:.5px; font-variant-numeric:tabular-nums; }
/* 详情弹层轮播沿用 .modal-gallery 的固定比例盒；0 张/加载失败的占位铺满盒面 */
.package-detail-gallery { aspect-ratio:1.5; }
.package-detail-gallery .package-detail-art { height:100%; min-height:0; }
@media(min-width:640px) {
  .package-cover { width:140px; aspect-ratio:140/130; }
  .package-image-count { top:8px; right:8px; font-size:10px; }
}

/* ---------- 住客端首页：民宿荣誉徽章行（只追加，沿用既有 token） ---------- */
.honor-row { margin-top:14px; }
.honor-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 14px; margin:0; padding:0; list-style:none; }
.honor-item { display:inline-flex; align-items:center; gap:9px; min-width:0; }
.honor-icon { flex-shrink:0; display:grid; place-items:center; width:30px; height:30px; border-radius:50%; border:1px solid hsl(var(--primary) / .26); background:hsl(var(--secondary) / .5); box-shadow:inset 0 0 0 2px hsl(var(--card) / .6); color:hsl(var(--primary)); }
.honor-copy { display:grid; gap:1px; min-width:0; }
.honor-copy strong { font-size:12px; font-weight:600; letter-spacing:.2px; color:hsl(var(--foreground)); overflow-wrap:anywhere; }
.honor-copy small { font-size:10px; line-height:1.6; color:hsl(var(--muted-foreground)); overflow-wrap:anywhere; }
@media(min-width:640px) {
  .honor-row { margin-top:18px; }
  .honor-list { grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px 28px; }
  .honor-icon { width:32px; height:32px; }
  .honor-copy strong { font-size:13px; }
  .honor-copy small { font-size:11px; }
}

/* ---------- 老板端「民宿信息」：民宿荣誉编辑（只追加，沿用既有 token） ---------- */
.honor-editor { display:grid; gap:12px; padding:15px; border:1px solid hsl(var(--border) / .8); border-radius:var(--radius); background:hsl(var(--secondary) / .22); }
.honor-editor-head { display:grid; gap:5px; }
.honor-editor-head h2 { font-size:15px; }
.honor-editor-list { display:grid; gap:12px; margin:0; padding:0; list-style:none; }
.honor-row { display:grid; gap:10px; padding:13px; border:1px solid hsl(var(--border) / .8); border-radius:calc(var(--radius) - 4px); background:hsl(var(--card)); }
.honor-row-icons { display:grid; grid-template-columns:repeat(auto-fill,minmax(40px,1fr)); gap:7px 6px; }
.honor-icon-choice { width:100%; max-width:44px; aspect-ratio:1; height:auto; justify-self:center; display:grid; place-items:center; border:1px solid hsl(var(--border)); border-radius:50%; background:hsl(var(--card)); color:hsl(var(--muted-foreground)); cursor:pointer; }
.honor-icon-choice:hover { border-color:hsl(var(--primary) / .35); color:hsl(var(--primary)); }
.honor-icon-choice.active { border-color:hsl(var(--primary) / .45); background:hsl(var(--secondary)); color:hsl(var(--primary)); }
.honor-row-fields { display:grid; gap:9px; }
.honor-row-actions { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.honor-row-actions .edit-icon { margin-left:0; }
@media(min-width:640px) {
  .honor-editor { padding:18px; gap:14px; }
  .honor-row { padding:15px; gap:12px; }
  .honor-row-fields { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
}

/* ---------- 荣誉墙：首页「查看全部荣誉」入口与弹层（只追加，沿用既有 token） ---------- */
.honor-more { display:flex; align-items:center; gap:4px; width:-moz-fit-content; width:fit-content; margin:12px auto 0; padding:6px 13px; border:1px solid hsl(var(--border) / .8); border-radius:999px; background:hsl(var(--card)); color:hsl(var(--muted-foreground)); font-size:11px; cursor:pointer; }
.honor-more:hover { color:hsl(var(--primary)); border-color:hsl(var(--primary) / .32); }
.honor-wall { display:grid; gap:10px; margin:0; padding:0; list-style:none; }
.honor-wall-item { display:flex; align-items:center; gap:10px; padding:9px 11px; border:1px solid hsl(var(--border) / .7); border-radius:calc(var(--radius) - 4px); background:hsl(var(--secondary) / .25); }

/* ---------- 住客端特产结账：默认寄送与运费规则提示（只追加，沿用既有 token） ---------- */
.method-note { display:flex; align-items:flex-start; gap:8px; padding:10px 12px; border-radius:calc(var(--radius) - 4px); background:hsl(var(--secondary) / .6); color:hsl(var(--primary)); font-size:12px; line-height:1.7; }
.method-note>svg { flex-shrink:0; margin-top:2px; }
.method-note>span { min-width:0; overflow-wrap:anywhere; }

/* ---------- 住客端「联系老板」弹层：微信二维码（只追加，沿用既有 token） ---------- */
.contact-qr { display:grid; justify-items:center; gap:8px; padding:4px 0 2px; text-align:center; }
.contact-qr-image { width:min(200px, 68vw); aspect-ratio:1; -o-object-fit:contain; object-fit:contain; box-sizing:border-box; padding:6px; border:1px solid hsl(var(--border)); border-radius:calc(var(--radius) - 4px); background:hsl(var(--card)); }
.contact-qr-hint { font-size:11px; line-height:1.7; }

/* ---------- 老板端菜单：菜品分类多标签（可加可去）与首页主推（只追加，沿用既有 token） ---------- */
.dish-category-tags { display:flex; flex-wrap:wrap; gap:7px; }
.dish-category-chip { display:inline-flex; align-items:center; gap:6px; padding:5px 6px 5px 11px; border:1px solid hsl(var(--primary) / .3); border-radius:999px; background:hsl(var(--secondary) / .5); color:hsl(var(--primary)); font-size:12px; line-height:1.5; }
.dish-category-chip button { display:grid; place-items:center; width:22px; height:22px; border-radius:50%; color:hsl(var(--muted-foreground)); }
.dish-category-chip button:hover { color:hsl(var(--destructive)); background:hsl(var(--destructive) / .12); }
.dish-category-add { display:flex; gap:8px; align-items:stretch; }
.dish-category-add input { flex:1; min-width:0; }
.dish-category-add .button { margin-left:0; min-height:44px; white-space:nowrap; }
.dish-category-suggest { display:flex; flex-wrap:wrap; align-items:center; gap:7px; }
.dish-category-quick { min-height:32px; padding:5px 12px; border:1px dashed hsl(var(--border)); border-radius:999px; background:hsl(var(--card)); color:hsl(var(--muted-foreground)); font-size:12px; }
.dish-category-quick:hover { border-color:hsl(var(--primary) / .4); color:hsl(var(--primary)); }

/* ---------- 住客端点菜页：手机端左侧竖排分类 + 右侧菜品（只追加，沿用既有 token） ---------- */
/* 分类栏贴在左列、随页面滚动一直可点；≥900px 不进入这些规则，横排胶囊与桌面侧栏保持原样 */
@media(max-width:899px) {
  /* 无分类栏时（纯套餐店 / 无分类的单点店）只剩菜品列，自动占满整行 */
  .food-page .menu-split { display:flex; align-items:flex-start; gap:8px; margin-inline:-8px; }
  .food-page .menu-category-nav {
    flex:0 0 68px; width:68px;
    position:sticky; top:12px; z-index:5;
    flex-direction:column; align-items:stretch; gap:4px;
    padding:2px; margin:0;
    overflow-x:hidden; overflow-y:auto;
    -webkit-overflow-scrolling:touch;
    /* 扣掉手机底部购物车与导航栏（约 143px + 安全区）自己的高度，保证竖栏内最下面的分类也能点到 */
    max-height:calc(100vh - 155px);
    max-height:calc(100dvh - 155px - env(safe-area-inset-bottom));
  }
  .food-page .menu-category-nav button {
    display:flex; width:100%; min-height:48px; padding:6px 4px;
    border:1px solid transparent; border-left:3px solid transparent; border-radius:6px;
    background:transparent; color:hsl(var(--muted-foreground));
    font-size:11px; line-height:1.35; white-space:normal; overflow-wrap:anywhere;
  }
  .food-page .menu-category-nav button.active {
    background:hsl(var(--secondary)); border-color:transparent; border-left-color:hsl(var(--primary));
    color:hsl(var(--primary)); font-weight:600;
  }
  .food-page .menu-category-nav button:focus-visible { outline:2px solid hsl(var(--ring)); outline-offset:-2px; }
  .food-page .menu-split .dish-list { flex:1 1 0%; min-width:0; scroll-margin-top:12px; }
}
/* 右侧列更窄：卡片内边距与字号收一点，介绍文字不裁切；缩略图统一为 96×96 方形（居中裁切、浅描边），价签行折行后加减控件靠右下，加减按钮保留 44px 可点区 */
@media(max-width:639px) {
  .food-page .dish-card { gap:10px; padding:10px; }
  /* min-height:0 必须显式声明：覆盖更早的 .dish-card>img / .media-placeholder 的 min-height，否则会压过 height 把图拉高 */
  .food-page .dish-card>img,
  .food-page .dish-art,
  .food-page .dish-card>.media-placeholder { width:96px; height:96px; min-height:0; border-radius:10px; border:1px solid hsl(var(--border) / .6); }
  .food-page .dish-body h2 { font-size:14px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
  .food-page .dish-body p { margin-bottom:10px; }
  .food-page .dish-body .price { font-size:17px; }
  .food-page .dish-body .row-between { flex-wrap:wrap; gap:8px; }
  .food-page .dish-body .quantity { margin-left:auto; }
  .food-page .dish-tag { overflow-wrap:anywhere; }
  .food-page .quantity { gap:6px; }
  .food-page .quantity button { width:44px; height:44px; }
  .food-page .quantity span { min-width:16px; }
  /* 套餐卡改纵向：封面铺满整行，正文与操作按钮占满列宽 */
  .food-page .package-card { flex-direction:column; align-items:stretch; }
  .food-page .package-cover { width:100%; aspect-ratio:16/9; }
  .food-page .package-actions .button { flex:1 1 100%; }
}

/* ---------- 住客端周边玩法详情：长文保留换行按段落显示（只追加，沿用既有 token） ---------- */
.trip-detail-text { white-space:pre-line; }
*, ::before, ::after {
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x:  ;
  --tw-pan-y:  ;
  --tw-pinch-zoom:  ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position:  ;
  --tw-gradient-via-position:  ;
  --tw-gradient-to-position:  ;
  --tw-ordinal:  ;
  --tw-slashed-zero:  ;
  --tw-numeric-figure:  ;
  --tw-numeric-spacing:  ;
  --tw-numeric-fraction:  ;
  --tw-ring-inset:  ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur:  ;
  --tw-brightness:  ;
  --tw-contrast:  ;
  --tw-grayscale:  ;
  --tw-hue-rotate:  ;
  --tw-invert:  ;
  --tw-saturate:  ;
  --tw-sepia:  ;
  --tw-drop-shadow:  ;
  --tw-backdrop-blur:  ;
  --tw-backdrop-brightness:  ;
  --tw-backdrop-contrast:  ;
  --tw-backdrop-grayscale:  ;
  --tw-backdrop-hue-rotate:  ;
  --tw-backdrop-invert:  ;
  --tw-backdrop-opacity:  ;
  --tw-backdrop-saturate:  ;
  --tw-backdrop-sepia:  ;
  --tw-contain-size:  ;
  --tw-contain-layout:  ;
  --tw-contain-paint:  ;
  --tw-contain-style:  ;
}

::backdrop {
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x:  ;
  --tw-pan-y:  ;
  --tw-pinch-zoom:  ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position:  ;
  --tw-gradient-via-position:  ;
  --tw-gradient-to-position:  ;
  --tw-ordinal:  ;
  --tw-slashed-zero:  ;
  --tw-numeric-figure:  ;
  --tw-numeric-spacing:  ;
  --tw-numeric-fraction:  ;
  --tw-ring-inset:  ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur:  ;
  --tw-brightness:  ;
  --tw-contrast:  ;
  --tw-grayscale:  ;
  --tw-hue-rotate:  ;
  --tw-invert:  ;
  --tw-saturate:  ;
  --tw-sepia:  ;
  --tw-drop-shadow:  ;
  --tw-backdrop-blur:  ;
  --tw-backdrop-brightness:  ;
  --tw-backdrop-contrast:  ;
  --tw-backdrop-grayscale:  ;
  --tw-backdrop-hue-rotate:  ;
  --tw-backdrop-invert:  ;
  --tw-backdrop-opacity:  ;
  --tw-backdrop-saturate:  ;
  --tw-backdrop-sepia:  ;
  --tw-contain-size:  ;
  --tw-contain-layout:  ;
  --tw-contain-paint:  ;
  --tw-contain-style:  ;
}/*
! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com
*//*
1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)
*/

*,
::before,
::after {
  box-sizing: border-box; /* 1 */
  border-width: 0; /* 2 */
  border-style: solid; /* 2 */
  border-color: #e5e7eb; /* 2 */
}

::before,
::after {
  --tw-content: '';
}

/*
1. Use a consistent sensible line-height in all browsers.
2. Prevent adjustments of font size after orientation changes in iOS.
3. Use a more readable tab size.
4. Use the user's configured `sans` font-family by default.
5. Use the user's configured `sans` font-feature-settings by default.
6. Use the user's configured `sans` font-variation-settings by default.
7. Disable tap highlights on iOS
*/

html,
:host {
  line-height: 1.5; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
  -moz-tab-size: 4; /* 3 */
  -o-tab-size: 4;
     tab-size: 4; /* 3 */
  font-family: var(--font-sans); /* 4 */
  font-feature-settings: normal; /* 5 */
  font-variation-settings: normal; /* 6 */
  -webkit-tap-highlight-color: transparent; /* 7 */
}

/*
1. Remove the margin in all browsers.
2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.
*/

body {
  margin: 0; /* 1 */
  line-height: inherit; /* 2 */
}

/*
1. Add the correct height in Firefox.
2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
3. Ensure horizontal rules are visible by default.
*/

hr {
  height: 0; /* 1 */
  color: inherit; /* 2 */
  border-top-width: 1px; /* 3 */
}

/*
Add the correct text decoration in Chrome, Edge, and Safari.
*/

abbr:where([title]) {
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted;
}

/*
Remove the default font size and weight for headings.
*/

h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: inherit;
  font-weight: inherit;
}

/*
Reset links to optimize for opt-in styling instead of opt-out.
*/

a {
  color: inherit;
  text-decoration: inherit;
}

/*
Add the correct font weight in Edge and Safari.
*/

b,
strong {
  font-weight: bolder;
}

/*
1. Use the user's configured `mono` font-family by default.
2. Use the user's configured `mono` font-feature-settings by default.
3. Use the user's configured `mono` font-variation-settings by default.
4. Correct the odd `em` font sizing in all browsers.
*/

code,
kbd,
samp,
pre {
  font-family: var(--font-mono); /* 1 */
  font-feature-settings: normal; /* 2 */
  font-variation-settings: normal; /* 3 */
  font-size: 1em; /* 4 */
}

/*
Add the correct font size in all browsers.
*/

small {
  font-size: 80%;
}

/*
Prevent `sub` and `sup` elements from affecting the line height in all browsers.
*/

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/*
1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
3. Remove gaps between table borders by default.
*/

table {
  text-indent: 0; /* 1 */
  border-color: inherit; /* 2 */
  border-collapse: collapse; /* 3 */
}

/*
1. Change the font styles in all browsers.
2. Remove the margin in Firefox and Safari.
3. Remove default padding in all browsers.
*/

button,
input,
optgroup,
select,
textarea {
  font-family: inherit; /* 1 */
  font-feature-settings: inherit; /* 1 */
  font-variation-settings: inherit; /* 1 */
  font-size: 100%; /* 1 */
  font-weight: inherit; /* 1 */
  line-height: inherit; /* 1 */
  letter-spacing: inherit; /* 1 */
  color: inherit; /* 1 */
  margin: 0; /* 2 */
  padding: 0; /* 3 */
}

/*
Remove the inheritance of text transform in Edge and Firefox.
*/

button,
select {
  text-transform: none;
}

/*
1. Correct the inability to style clickable types in iOS and Safari.
2. Remove default button styles.
*/

button,
input:where([type='button']),
input:where([type='reset']),
input:where([type='submit']) {
  -webkit-appearance: button; /* 1 */
  background-color: transparent; /* 2 */
  background-image: none; /* 2 */
}

/*
Use the modern Firefox focus style for all focusable elements.
*/

:-moz-focusring {
  outline: auto;
}

/*
Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)
*/

:-moz-ui-invalid {
  box-shadow: none;
}

/*
Add the correct vertical alignment in Chrome and Firefox.
*/

progress {
  vertical-align: baseline;
}

/*
Correct the cursor style of increment and decrement buttons in Safari.
*/

::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
  height: auto;
}

/*
1. Correct the odd appearance in Chrome and Safari.
2. Correct the outline style in Safari.
*/

[type='search'] {
  -webkit-appearance: textfield; /* 1 */
  outline-offset: -2px; /* 2 */
}

/*
Remove the inner padding in Chrome and Safari on macOS.
*/

::-webkit-search-decoration {
  -webkit-appearance: none;
}

/*
1. Correct the inability to style clickable types in iOS and Safari.
2. Change font properties to `inherit` in Safari.
*/

::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}

/*
Add the correct display in Chrome and Safari.
*/

summary {
  display: list-item;
}

/*
Removes the default spacing and border for appropriate elements.
*/

blockquote,
dl,
dd,
h1,
h2,
h3,
h4,
h5,
h6,
hr,
figure,
p,
pre {
  margin: 0;
}

fieldset {
  margin: 0;
  padding: 0;
}

legend {
  padding: 0;
}

ol,
ul,
menu {
  list-style: none;
  margin: 0;
  padding: 0;
}

/*
Reset default styling for dialogs.
*/
dialog {
  padding: 0;
}

/*
Prevent resizing textareas horizontally by default.
*/

textarea {
  resize: vertical;
}

/*
1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)
2. Set the default placeholder color to the user's configured gray 400 color.
*/

input::-moz-placeholder, textarea::-moz-placeholder {
  opacity: 1; /* 1 */
  color: #9ca3af; /* 2 */
}

input::placeholder,
textarea::placeholder {
  opacity: 1; /* 1 */
  color: #9ca3af; /* 2 */
}

/*
Set the default cursor for buttons.
*/

button,
[role="button"] {
  cursor: pointer;
}

/*
Make sure disabled buttons don't get the pointer cursor.
*/
:disabled {
  cursor: default;
}

/*
1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)
2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)
   This can trigger a poorly considered lint error in some tools but is included by design.
*/

img,
svg,
video,
canvas,
audio,
iframe,
embed,
object {
  display: block; /* 1 */
  vertical-align: middle; /* 2 */
}

/*
Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)
*/

img,
video {
  max-width: 100%;
  height: auto;
}

/* Make elements with the HTML hidden attribute stay hidden by default */
[hidden]:where(:not([hidden="until-found"])) {
  display: none;
}
  :root {
    --background: 150 18% 96%;
    --foreground: 160 24% 14%;
    --card: 150 20% 99%;
    --card-foreground: 160 24% 14%;
    --popover: 150 20% 99%;
    --popover-foreground: 160 24% 14%;
    --primary: 162 44% 22%;
    --primary-foreground: 150 20% 98%;
    --secondary: 158 26% 88%;
    --secondary-foreground: 162 44% 22%;
    --muted: 150 16% 93%;
    --muted-foreground: 158 10% 38%;
    --accent: 338 58% 42%;
    --accent-foreground: 150 20% 98%;
    --destructive: 352 55% 42%;
    --destructive-foreground: 150 20% 98%;
    --border: 158 14% 85%;
    --input: 158 14% 80%;
    --ring: 178 62% 30%;
    --chart-1: 150 52% 28%;
    --chart-2: 158 26% 88%;
    --chart-3: 160 28% 10%;
    --chart-4: 338 58% 42%;
    --chart-5: 38 35% 92%;
    --sidebar: 150 20% 99%;
    --sidebar-foreground: 160 24% 14%;
    --sidebar-primary: 162 44% 22%;
    --sidebar-primary-foreground: 150 20% 98%;
    --sidebar-accent: 158 26% 88%;
    --sidebar-accent-foreground: 162 44% 22%;
    --sidebar-border: 158 14% 85%;
    --sidebar-ring: 178 62% 30%;
    --font-sans: "PingFang SC", "Microsoft YaHei", "Noto Sans SC", sans-serif;
    --font-serif: Georgia, serif;
    --font-mono: Menlo, monospace;
    --radius: 0.8rem;
    --shadow-2xs: 0 1px 2px hsl(160 30% 12% / .03);
    --shadow-xs: 0 2px 5px hsl(160 30% 12% / .04);
    --shadow-sm: 0 3px 10px hsl(160 30% 12% / .04);
    --shadow: 0 4px 15px hsl(160 30% 12% / .06);
    --shadow-md: 0 8px 24px hsl(160 30% 12% / .07);
    --shadow-lg: 0 12px 32px hsl(160 30% 12% / .12);
    --shadow-xl: 0 18px 48px hsl(160 30% 12% / .15);
    --shadow-2xl: 0 24px 60px hsl(160 30% 12% / .18);
  }
  * {
  border-color: hsl(var(--border));
}
  body {
  margin: 0px;
  background-color: hsl(var(--background));
  font-family: var(--font-sans);
  color: hsl(var(--foreground));
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
  button, input, select, textarea { font: inherit; }
  button, a, input, select, textarea { -webkit-tap-highlight-color: transparent; }
  button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 2px solid hsl(var(--ring)); outline-offset: 4px; }
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0;
}
.pointer-events-none {
  pointer-events: none;
}
.visible {
  visibility: visible;
}
.invisible {
  visibility: hidden;
}
.fixed {
  position: fixed;
}
.absolute {
  position: absolute;
}
.relative {
  position: relative;
}
.inset-0 {
  inset: 0px;
}
.inset-x-0 {
  left: 0px;
  right: 0px;
}
.inset-y-0 {
  top: 0px;
  bottom: 0px;
}
.-bottom-12 {
  bottom: -3rem;
}
.-left-12 {
  left: -3rem;
}
.-right-12 {
  right: -3rem;
}
.-top-12 {
  top: -3rem;
}
.bottom-0 {
  bottom: 0px;
}
.left-0 {
  left: 0px;
}
.left-1\/2 {
  left: 50%;
}
.left-2 {
  left: 0.5rem;
}
.left-\[50\%\] {
  left: 50%;
}
.right-0 {
  right: 0px;
}
.right-4 {
  right: 1rem;
}
.top-0 {
  top: 0px;
}
.top-1\/2 {
  top: 50%;
}
.top-4 {
  top: 1rem;
}
.top-\[1px\] {
  top: 1px;
}
.top-\[50\%\] {
  top: 50%;
}
.top-\[60\%\] {
  top: 60%;
}
.top-full {
  top: 100%;
}
.isolate {
  isolation: isolate;
}
.z-10 {
  z-index: 10;
}
.z-50 {
  z-index: 50;
}
.z-\[1\] {
  z-index: 1;
}
.col-start-2 {
  grid-column-start: 2;
}
.-mx-1 {
  margin-left: -0.25rem;
  margin-right: -0.25rem;
}
.mx-auto {
  margin-left: auto;
  margin-right: auto;
}
.my-1 {
  margin-top: 0.25rem;
  margin-bottom: 0.25rem;
}
.-ml-4 {
  margin-left: -1rem;
}
.-mt-4 {
  margin-top: -1rem;
}
.mb-2 {
  margin-bottom: 0.5rem;
}
.mb-4 {
  margin-bottom: 1rem;
}
.mb-5 {
  margin-bottom: 1.25rem;
}
.ml-1 {
  margin-left: 0.25rem;
}
.ml-auto {
  margin-left: auto;
}
.mr-2 {
  margin-right: 0.5rem;
}
.mt-1\.5 {
  margin-top: 0.375rem;
}
.mt-2 {
  margin-top: 0.5rem;
}
.mt-3 {
  margin-top: 0.75rem;
}
.mt-4 {
  margin-top: 1rem;
}
.mt-5 {
  margin-top: 1.25rem;
}
.mt-6 {
  margin-top: 1.5rem;
}
.mt-7 {
  margin-top: 1.75rem;
}
.mt-8 {
  margin-top: 2rem;
}
.mt-9 {
  margin-top: 2.25rem;
}
.mt-auto {
  margin-top: auto;
}
.line-clamp-1 {
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
}
.block {
  display: block;
}
.flex {
  display: flex;
}
.inline-flex {
  display: inline-flex;
}
.table {
  display: table;
}
.grid {
  display: grid;
}
.hidden {
  display: none;
}
.aspect-square {
  aspect-ratio: 1 / 1;
}
.size-2 {
  width: 0.5rem;
  height: 0.5rem;
}
.size-2\.5 {
  width: 0.625rem;
  height: 0.625rem;
}
.size-3 {
  width: 0.75rem;
  height: 0.75rem;
}
.size-3\.5 {
  width: 0.875rem;
  height: 0.875rem;
}
.size-4 {
  width: 1rem;
  height: 1rem;
}
.size-8 {
  width: 2rem;
  height: 2rem;
}
.size-9 {
  width: 2.25rem;
  height: 2.25rem;
}
.size-full {
  width: 100%;
  height: 100%;
}
.h-1\.5 {
  height: 0.375rem;
}
.h-10 {
  height: 2.5rem;
}
.h-11 {
  height: 2.75rem;
}
.h-12 {
  height: 3rem;
}
.h-2 {
  height: 0.5rem;
}
.h-2\.5 {
  height: 0.625rem;
}
.h-3\.5 {
  height: 0.875rem;
}
.h-4 {
  height: 1rem;
}
.h-5 {
  height: 1.25rem;
}
.h-8 {
  height: 2rem;
}
.h-9 {
  height: 2.25rem;
}
.h-\[1\.15rem\] {
  height: 1.15rem;
}
.h-\[var\(--cell-size\)\] {
  height: var(--cell-size);
}
.h-\[var\(--radix-navigation-menu-viewport-height\)\] {
  height: var(--radix-navigation-menu-viewport-height);
}
.h-\[var\(--radix-select-trigger-height\)\] {
  height: var(--radix-select-trigger-height);
}
.h-auto {
  height: auto;
}
.h-full {
  height: 100%;
}
.h-px {
  height: 1px;
}
.max-h-\[--radix-select-content-available-height\] {
  max-height: var(--radix-select-content-available-height);
}
.max-h-\[300px\] {
  max-height: 300px;
}
.max-h-\[var\(--radix-context-menu-content-available-height\)\] {
  max-height: var(--radix-context-menu-content-available-height);
}
.min-h-16 {
  min-height: 4rem;
}
.min-h-4 {
  min-height: 1rem;
}
.min-h-\[44px\] {
  min-height: 44px;
}
.min-h-screen {
  min-height: 100vh;
}
.w-10 {
  width: 2.5rem;
}
.w-2 {
  width: 0.5rem;
}
.w-2\.5 {
  width: 0.625rem;
}
.w-3 {
  width: 0.75rem;
}
.w-3\.5 {
  width: 0.875rem;
}
.w-3\/4 {
  width: 75%;
}
.w-4 {
  width: 1rem;
}
.w-60 {
  width: 15rem;
}
.w-64 {
  width: 16rem;
}
.w-72 {
  width: 18rem;
}
.w-8 {
  width: 2rem;
}
.w-9 {
  width: 2.25rem;
}
.w-\[280px\] {
  width: 280px;
}
.w-\[var\(--cell-size\)\] {
  width: var(--cell-size);
}
.w-auto {
  width: auto;
}
.w-fit {
  width: -moz-fit-content;
  width: fit-content;
}
.w-full {
  width: 100%;
}
.w-max {
  width: -moz-max-content;
  width: max-content;
}
.w-px {
  width: 1px;
}
.min-w-0 {
  min-width: 0px;
}
.min-w-\[12rem\] {
  min-width: 12rem;
}
.min-w-\[20px\] {
  min-width: 20px;
}
.min-w-\[8rem\] {
  min-width: 8rem;
}
.min-w-\[var\(--cell-size\)\] {
  min-width: var(--cell-size);
}
.min-w-\[var\(--radix-select-trigger-width\)\] {
  min-width: var(--radix-select-trigger-width);
}
.max-w-\[480px\] {
  max-width: 480px;
}
.max-w-\[760px\] {
  max-width: 760px;
}
.max-w-\[calc\(100\%-2rem\)\] {
  max-width: calc(100% - 2rem);
}
.max-w-lg {
  max-width: 32rem;
}
.max-w-max {
  max-width: -moz-max-content;
  max-width: max-content;
}
.max-w-md {
  max-width: 28rem;
}
.flex-1 {
  flex: 1 1 0%;
}
.shrink-0 {
  flex-shrink: 0;
}
.grow {
  flex-grow: 1;
}
.grow-0 {
  flex-grow: 0;
}
.basis-full {
  flex-basis: 100%;
}
.caption-bottom {
  caption-side: bottom;
}
.border-collapse {
  border-collapse: collapse;
}
.origin-\[--radix-popover-content-transform-origin\] {
  transform-origin: var(--radix-popover-content-transform-origin);
}
.origin-\[--radix-select-content-transform-origin\] {
  transform-origin: var(--radix-select-content-transform-origin);
}
.-translate-x-1\/2 {
  --tw-translate-x: -50%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.-translate-y-1\/2 {
  --tw-translate-y: -50%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.translate-x-\[-50\%\] {
  --tw-translate-x: -50%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.translate-y-0\.5 {
  --tw-translate-y: 0.125rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.translate-y-\[-50\%\] {
  --tw-translate-y: -50%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.translate-y-\[calc\(-50\%_-_2px\)\] {
  --tw-translate-y: calc(-50% - 2px);
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.rotate-45 {
  --tw-rotate: 45deg;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.rotate-90 {
  --tw-rotate: 90deg;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.transform {
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
@keyframes caret-blink {

  0%,70%,100% {
    opacity: 1;
  }

  20%,50% {
    opacity: 0;
  }
}
.animate-caret-blink {
  animation: caret-blink 1.25s ease-out infinite;
}
@keyframes pulse {

  50% {
    opacity: .5;
  }
}
.animate-pulse {
  animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}
@keyframes spin {

  to {
    transform: rotate(360deg);
  }
}
.animate-spin {
  animation: spin 1s linear infinite;
}
.cursor-default {
  cursor: default;
}
.touch-none {
  touch-action: none;
}
.select-none {
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}
.scroll-py-1 {
  scroll-padding-top: 0.25rem;
  scroll-padding-bottom: 0.25rem;
}
.list-disc {
  list-style-type: disc;
}
.list-none {
  list-style-type: none;
}
.grid-cols-\[0_1fr\] {
  grid-template-columns: 0 1fr;
}
.flex-row {
  flex-direction: row;
}
.flex-col {
  flex-direction: column;
}
.flex-col-reverse {
  flex-direction: column-reverse;
}
.flex-wrap {
  flex-wrap: wrap;
}
.items-start {
  align-items: flex-start;
}
.items-end {
  align-items: flex-end;
}
.items-center {
  align-items: center;
}
.items-baseline {
  align-items: baseline;
}
.justify-start {
  justify-content: flex-start;
}
.justify-center {
  justify-content: center;
}
.justify-between {
  justify-content: space-between;
}
.justify-items-start {
  justify-items: start;
}
.gap-0 {
  gap: 0px;
}
.gap-1 {
  gap: 0.25rem;
}
.gap-1\.5 {
  gap: 0.375rem;
}
.gap-2 {
  gap: 0.5rem;
}
.gap-2\.5 {
  gap: 0.625rem;
}
.gap-3 {
  gap: 0.75rem;
}
.gap-4 {
  gap: 1rem;
}
.gap-y-0\.5 {
  row-gap: 0.125rem;
}
.space-y-1\.5 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.375rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.375rem * var(--tw-space-y-reverse));
}
.space-y-2 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));
}
.space-y-2\.5 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.625rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.625rem * var(--tw-space-y-reverse));
}
.overflow-auto {
  overflow: auto;
}
.overflow-hidden {
  overflow: hidden;
}
.overflow-y-auto {
  overflow-y: auto;
}
.overflow-x-hidden {
  overflow-x: hidden;
}
.whitespace-nowrap {
  white-space: nowrap;
}
.text-balance {
  text-wrap: balance;
}
.break-words {
  overflow-wrap: break-word;
}
.rounded {
  border-radius: 0.25rem;
}
.rounded-\[2px\] {
  border-radius: 2px;
}
.rounded-\[calc\(var\(--radius\)\+6px\)\] {
  border-radius: calc(var(--radius) + 6px);
}
.rounded-\[calc\(var\(--radius\)-2px\)\] {
  border-radius: calc(var(--radius) - 2px);
}
.rounded-\[inherit\] {
  border-radius: inherit;
}
.rounded-\[var\(--radius\)\] {
  border-radius: var(--radius);
}
.rounded-full {
  border-radius: 9999px;
}
.rounded-lg {
  border-radius: var(--radius);
}
.rounded-md {
  border-radius: calc(var(--radius) - 2px);
}
.rounded-none {
  border-radius: 0px;
}
.rounded-sm {
  border-radius: calc(var(--radius) - 4px);
}
.rounded-l-md {
  border-top-left-radius: calc(var(--radius) - 2px);
  border-bottom-left-radius: calc(var(--radius) - 2px);
}
.rounded-r-md {
  border-top-right-radius: calc(var(--radius) - 2px);
  border-bottom-right-radius: calc(var(--radius) - 2px);
}
.rounded-tl-sm {
  border-top-left-radius: calc(var(--radius) - 4px);
}
.border {
  border-width: 1px;
}
.border-\[6px\] {
  border-width: 6px;
}
.border-y {
  border-top-width: 1px;
  border-bottom-width: 1px;
}
.border-b {
  border-bottom-width: 1px;
}
.border-l {
  border-left-width: 1px;
}
.border-r {
  border-right-width: 1px;
}
.border-t {
  border-top-width: 1px;
}
.border-border {
  border-color: hsl(var(--border));
}
.border-input {
  border-color: hsl(var(--input));
}
.border-primary {
  border-color: hsl(var(--primary));
}
.border-transparent {
  border-color: transparent;
}
.border-l-transparent {
  border-left-color: transparent;
}
.border-t-transparent {
  border-top-color: transparent;
}
.bg-\[hsl\(var\(--primary\)\/\.05\)\] {
  background-color: hsl(var(--primary)/.05);
}
.bg-\[hsl\(var\(--primary\)\/\.06\)\] {
  background-color: hsl(var(--primary)/.06);
}
.bg-\[hsl\(var\(--secondary\)\/\.45\)\] {
  background-color: hsl(var(--secondary)/.45);
}
.bg-accent {
  background-color: hsl(var(--accent));
}
.bg-background {
  background-color: hsl(var(--background));
}
.bg-background\/80 {
  background-color: hsl(var(--background) / 0.8);
}
.bg-black\/50 {
  background-color: rgb(0 0 0 / 0.5);
}
.bg-border {
  background-color: hsl(var(--border));
}
.bg-card {
  background-color: hsl(var(--card));
}
.bg-destructive {
  background-color: hsl(var(--destructive));
}
.bg-foreground {
  background-color: hsl(var(--foreground));
}
.bg-muted {
  background-color: hsl(var(--muted));
}
.bg-muted\/50 {
  background-color: hsl(var(--muted) / 0.5);
}
.bg-popover {
  background-color: hsl(var(--popover));
}
.bg-primary {
  background-color: hsl(var(--primary));
}
.bg-primary\/20 {
  background-color: hsl(var(--primary) / 0.2);
}
.bg-secondary {
  background-color: hsl(var(--secondary));
}
.bg-transparent {
  background-color: transparent;
}
.bg-white {
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
}
.fill-current {
  fill: currentColor;
}
.fill-foreground {
  fill: hsl(var(--foreground));
}
.object-contain {
  -o-object-fit: contain;
     object-fit: contain;
}
.p-0 {
  padding: 0px;
}
.p-1 {
  padding: 0.25rem;
}
.p-2 {
  padding: 0.5rem;
}
.p-3 {
  padding: 0.75rem;
}
.p-3\.5 {
  padding: 0.875rem;
}
.p-4 {
  padding: 1rem;
}
.p-5 {
  padding: 1.25rem;
}
.p-6 {
  padding: 1.5rem;
}
.p-8 {
  padding: 2rem;
}
.p-px {
  padding: 1px;
}
.px-1\.5 {
  padding-left: 0.375rem;
  padding-right: 0.375rem;
}
.px-2 {
  padding-left: 0.5rem;
  padding-right: 0.5rem;
}
.px-2\.5 {
  padding-left: 0.625rem;
  padding-right: 0.625rem;
}
.px-3 {
  padding-left: 0.75rem;
  padding-right: 0.75rem;
}
.px-4 {
  padding-left: 1rem;
  padding-right: 1rem;
}
.px-5 {
  padding-left: 1.25rem;
  padding-right: 1.25rem;
}
.px-8 {
  padding-left: 2rem;
  padding-right: 2rem;
}
.px-\[var\(--cell-size\)\] {
  padding-left: var(--cell-size);
  padding-right: var(--cell-size);
}
.py-0\.5 {
  padding-top: 0.125rem;
  padding-bottom: 0.125rem;
}
.py-1 {
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
}
.py-1\.5 {
  padding-top: 0.375rem;
  padding-bottom: 0.375rem;
}
.py-10 {
  padding-top: 2.5rem;
  padding-bottom: 2.5rem;
}
.py-12 {
  padding-top: 3rem;
  padding-bottom: 3rem;
}
.py-2 {
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}
.py-3 {
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
}
.py-4 {
  padding-top: 1rem;
  padding-bottom: 1rem;
}
.py-6 {
  padding-top: 1.5rem;
  padding-bottom: 1.5rem;
}
.py-8 {
  padding-top: 2rem;
  padding-bottom: 2rem;
}
.pb-4 {
  padding-bottom: 1rem;
}
.pl-2 {
  padding-left: 0.5rem;
}
.pl-2\.5 {
  padding-left: 0.625rem;
}
.pl-4 {
  padding-left: 1rem;
}
.pl-5 {
  padding-left: 1.25rem;
}
.pl-8 {
  padding-left: 2rem;
}
.pr-1 {
  padding-right: 0.25rem;
}
.pr-2 {
  padding-right: 0.5rem;
}
.pr-2\.5 {
  padding-right: 0.625rem;
}
.pt-0 {
  padding-top: 0px;
}
.pt-4 {
  padding-top: 1rem;
}
.pt-5 {
  padding-top: 1.25rem;
}
.text-left {
  text-align: left;
}
.text-center {
  text-align: center;
}
.align-middle {
  vertical-align: middle;
}
.text-2xl {
  font-size: 1.5rem;
  line-height: 2rem;
}
.text-3xl {
  font-size: 1.875rem;
  line-height: 2.25rem;
}
.text-\[0\.8rem\] {
  font-size: 0.8rem;
}
.text-\[11px\] {
  font-size: 11px;
}
.text-\[14px\] {
  font-size: 14px;
}
.text-\[17px\] {
  font-size: 17px;
}
.text-\[34px\] {
  font-size: 34px;
}
.text-base {
  font-size: 1rem;
  line-height: 1.5rem;
}
.text-lg {
  font-size: 1.125rem;
  line-height: 1.75rem;
}
.text-sm {
  font-size: 0.875rem;
  line-height: 1.25rem;
}
.text-xs {
  font-size: 0.75rem;
  line-height: 1rem;
}
.font-bold {
  font-weight: 700;
}
.font-medium {
  font-weight: 500;
}
.font-normal {
  font-weight: 400;
}
.font-semibold {
  font-weight: 600;
}
.tabular-nums {
  --tw-numeric-spacing: tabular-nums;
  font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction);
}
.leading-\[1\.95\] {
  line-height: 1.95;
}
.leading-\[1\.9\] {
  line-height: 1.9;
}
.leading-none {
  line-height: 1;
}
.leading-relaxed {
  line-height: 1.625;
}
.tracking-tight {
  letter-spacing: -0.025em;
}
.tracking-wide {
  letter-spacing: 0.025em;
}
.tracking-widest {
  letter-spacing: 0.1em;
}
.text-accent {
  color: hsl(var(--accent));
}
.text-accent-foreground {
  color: hsl(var(--accent-foreground));
}
.text-background {
  color: hsl(var(--background));
}
.text-blue-500 {
  --tw-text-opacity: 1;
  color: rgb(59 130 246 / var(--tw-text-opacity, 1));
}
.text-card-foreground {
  color: hsl(var(--card-foreground));
}
.text-current {
  color: currentColor;
}
.text-destructive {
  color: hsl(var(--destructive));
}
.text-destructive-foreground {
  color: hsl(var(--destructive-foreground));
}
.text-foreground {
  color: hsl(var(--foreground));
}
.text-gray-700 {
  --tw-text-opacity: 1;
  color: rgb(55 65 81 / var(--tw-text-opacity, 1));
}
.text-muted-foreground {
  color: hsl(var(--muted-foreground));
}
.text-popover-foreground {
  color: hsl(var(--popover-foreground));
}
.text-primary {
  color: hsl(var(--primary));
}
.text-primary-foreground {
  color: hsl(var(--primary-foreground));
}
.text-secondary-foreground {
  color: hsl(var(--secondary-foreground));
}
.underline {
  text-decoration-line: underline;
}
.underline-offset-4 {
  text-underline-offset: 4px;
}
.opacity-0 {
  opacity: 0;
}
.opacity-50 {
  opacity: 0.5;
}
.opacity-60 {
  opacity: 0.6;
}
.opacity-70 {
  opacity: 0.7;
}
.opacity-80 {
  opacity: 0.8;
}
.shadow {
  --tw-shadow: var(--shadow);
  --tw-shadow-colored: var(--shadow);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-lg {
  --tw-shadow: var(--shadow-lg);
  --tw-shadow-colored: var(--shadow-lg);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-md {
  --tw-shadow: var(--shadow-md);
  --tw-shadow-colored: var(--shadow-md);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-sm {
  --tw-shadow: var(--shadow-sm);
  --tw-shadow-colored: var(--shadow-sm);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-xs {
  --tw-shadow: var(--shadow-xs);
  --tw-shadow-colored: var(--shadow-xs);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.outline-none {
  outline: 2px solid transparent;
  outline-offset: 2px;
}
.outline {
  outline-style: solid;
}
.ring-0 {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.ring-ring\/50 {
  --tw-ring-color: hsl(var(--ring) / 0.5);
}
.ring-offset-background {
  --tw-ring-offset-color: hsl(var(--background));
}
.filter {
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.backdrop-blur-sm {
  --tw-backdrop-blur: blur(4px);
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}
.transition {
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-\[color\2c box-shadow\] {
  transition-property: color,box-shadow;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-all {
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-colors {
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-opacity {
  transition-property: opacity;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-transform {
  transition-property: transform;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.duration-1000 {
  transition-duration: 1000ms;
}
.duration-200 {
  transition-duration: 200ms;
}
.duration-300 {
  transition-duration: 300ms;
}
.ease-in-out {
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}
@keyframes enter {

  from {
    opacity: var(--tw-enter-opacity, 1);
    transform: translate3d(var(--tw-enter-translate-x, 0), var(--tw-enter-translate-y, 0), 0) scale3d(var(--tw-enter-scale, 1), var(--tw-enter-scale, 1), var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0));
  }
}
@keyframes exit {

  to {
    opacity: var(--tw-exit-opacity, 1);
    transform: translate3d(var(--tw-exit-translate-x, 0), var(--tw-exit-translate-y, 0), 0) scale3d(var(--tw-exit-scale, 1), var(--tw-exit-scale, 1), var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0));
  }
}
.animate-in {
  animation-name: enter;
  animation-duration: 150ms;
  --tw-enter-opacity: initial;
  --tw-enter-scale: initial;
  --tw-enter-rotate: initial;
  --tw-enter-translate-x: initial;
  --tw-enter-translate-y: initial;
}
.fade-in-0 {
  --tw-enter-opacity: 0;
}
.zoom-in-95 {
  --tw-enter-scale: .95;
}
.duration-1000 {
  animation-duration: 1000ms;
}
.duration-200 {
  animation-duration: 200ms;
}
.duration-300 {
  animation-duration: 300ms;
}
.ease-in-out {
  animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}
.\[--cell-size\:calc\(var\(--spacing\)\*8\)\] {
  --cell-size: calc(var(--spacing) * 8);
}
.\[transform-origin\:var\(--radix-tooltip-content-transform-origin\)\] {
  transform-origin: var(--radix-tooltip-content-transform-origin);
}
.marker\:text-primary *::marker {
  color: hsl(var(--primary));
}
.marker\:text-primary::marker {
  color: hsl(var(--primary));
}
.file\:border-0::file-selector-button {
  border-width: 0px;
}
.file\:bg-transparent::file-selector-button {
  background-color: transparent;
}
.file\:text-sm::file-selector-button {
  font-size: 0.875rem;
  line-height: 1.25rem;
}
.file\:font-medium::file-selector-button {
  font-weight: 500;
}
.file\:text-foreground::file-selector-button {
  color: hsl(var(--foreground));
}
.placeholder\:text-muted-foreground::-moz-placeholder {
  color: hsl(var(--muted-foreground));
}
.placeholder\:text-muted-foreground::placeholder {
  color: hsl(var(--muted-foreground));
}
.after\:absolute::after {
  content: var(--tw-content);
  position: absolute;
}
.after\:inset-y-0::after {
  content: var(--tw-content);
  top: 0px;
  bottom: 0px;
}
.after\:left-1\/2::after {
  content: var(--tw-content);
  left: 50%;
}
.after\:w-1::after {
  content: var(--tw-content);
  width: 0.25rem;
}
.after\:-translate-x-1\/2::after {
  content: var(--tw-content);
  --tw-translate-x: -50%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.first\:mt-6:first-child {
  margin-top: 1.5rem;
}
.first\:rounded-l-md:first-child {
  border-top-left-radius: calc(var(--radius) - 2px);
  border-bottom-left-radius: calc(var(--radius) - 2px);
}
.first\:border-l:first-child {
  border-left-width: 1px;
}
.last\:rounded-r-md:last-child {
  border-top-right-radius: calc(var(--radius) - 2px);
  border-bottom-right-radius: calc(var(--radius) - 2px);
}
.last\:border-b-0:last-child {
  border-bottom-width: 0px;
}
.hover\:border-primary\/40:hover {
  border-color: hsl(var(--primary) / 0.4);
}
.hover\:bg-accent:hover {
  background-color: hsl(var(--accent));
}
.hover\:bg-destructive\/80:hover {
  background-color: hsl(var(--destructive) / 0.8);
}
.hover\:bg-destructive\/90:hover {
  background-color: hsl(var(--destructive) / 0.9);
}
.hover\:bg-muted:hover {
  background-color: hsl(var(--muted));
}
.hover\:bg-muted\/50:hover {
  background-color: hsl(var(--muted) / 0.5);
}
.hover\:bg-primary\/80:hover {
  background-color: hsl(var(--primary) / 0.8);
}
.hover\:bg-primary\/90:hover {
  background-color: hsl(var(--primary) / 0.9);
}
.hover\:bg-secondary\/80:hover {
  background-color: hsl(var(--secondary) / 0.8);
}
.hover\:text-accent-foreground:hover {
  color: hsl(var(--accent-foreground));
}
.hover\:text-blue-700:hover {
  --tw-text-opacity: 1;
  color: rgb(29 78 216 / var(--tw-text-opacity, 1));
}
.hover\:text-foreground:hover {
  color: hsl(var(--foreground));
}
.hover\:text-muted-foreground:hover {
  color: hsl(var(--muted-foreground));
}
.hover\:text-primary:hover {
  color: hsl(var(--primary));
}
.hover\:underline:hover {
  text-decoration-line: underline;
}
.hover\:opacity-100:hover {
  opacity: 1;
}
.hover\:ring-4:hover {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.focus\:bg-accent:focus {
  background-color: hsl(var(--accent));
}
.focus\:text-accent-foreground:focus {
  color: hsl(var(--accent-foreground));
}
.focus\:outline-none:focus {
  outline: 2px solid transparent;
  outline-offset: 2px;
}
.focus\:ring-2:focus {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.focus\:ring-ring:focus {
  --tw-ring-color: hsl(var(--ring));
}
.focus\:ring-offset-2:focus {
  --tw-ring-offset-width: 2px;
}
.focus-visible\:border-ring:focus-visible {
  border-color: hsl(var(--ring));
}
.focus-visible\:outline-none:focus-visible {
  outline: 2px solid transparent;
  outline-offset: 2px;
}
.focus-visible\:outline-1:focus-visible {
  outline-width: 1px;
}
.focus-visible\:ring-1:focus-visible {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.focus-visible\:ring-2:focus-visible {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.focus-visible\:ring-4:focus-visible {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.focus-visible\:ring-\[3px\]:focus-visible {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.focus-visible\:ring-ring:focus-visible {
  --tw-ring-color: hsl(var(--ring));
}
.focus-visible\:ring-ring\/50:focus-visible {
  --tw-ring-color: hsl(var(--ring) / 0.5);
}
.focus-visible\:ring-offset-1:focus-visible {
  --tw-ring-offset-width: 1px;
}
.focus-visible\:ring-offset-2:focus-visible {
  --tw-ring-offset-width: 2px;
}
.disabled\:pointer-events-none:disabled {
  pointer-events: none;
}
.disabled\:cursor-not-allowed:disabled {
  cursor: not-allowed;
}
.disabled\:opacity-50:disabled {
  opacity: 0.5;
}
.disabled\:opacity-60:disabled {
  opacity: 0.6;
}
.peer:disabled ~ .peer-disabled\:cursor-not-allowed {
  cursor: not-allowed;
}
.peer:disabled ~ .peer-disabled\:opacity-70 {
  opacity: 0.7;
}
.has-\[\>svg\]\:grid-cols-\[calc\(var\(--spacing\)\*4\)_1fr\]:has(>svg) {
  grid-template-columns: calc(var(--spacing) * 4) 1fr;
}
.has-\[\>svg\]\:gap-x-3:has(>svg) {
  -moz-column-gap: 0.75rem;
       column-gap: 0.75rem;
}
.has-\[\:focus\]\:border-ring:has(:focus) {
  border-color: hsl(var(--ring));
}
.has-\[\:disabled\]\:opacity-50:has(:disabled) {
  opacity: 0.5;
}
.has-\[\:focus\]\:ring-\[3px\]:has(:focus) {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.has-\[\:focus\]\:ring-ring\/50:has(:focus) {
  --tw-ring-color: hsl(var(--ring) / 0.5);
}
.aria-disabled\:opacity-50[aria-disabled="true"] {
  opacity: 0.5;
}
.aria-selected\:text-muted-foreground[aria-selected="true"] {
  color: hsl(var(--muted-foreground));
}
.data-\[disabled\=true\]\:pointer-events-none[data-disabled="true"] {
  pointer-events: none;
}
.data-\[disabled\]\:pointer-events-none[data-disabled] {
  pointer-events: none;
}
.data-\[active\=true\]\:z-10[data-active="true"] {
  z-index: 10;
}
.data-\[orientation\=horizontal\]\:h-1\.5[data-orientation="horizontal"] {
  height: 0.375rem;
}
.data-\[orientation\=horizontal\]\:h-full[data-orientation="horizontal"] {
  height: 100%;
}
.data-\[orientation\=horizontal\]\:h-px[data-orientation="horizontal"] {
  height: 1px;
}
.data-\[orientation\=vertical\]\:h-full[data-orientation="vertical"] {
  height: 100%;
}
.data-\[panel-group-direction\=vertical\]\:h-px[data-panel-group-direction="vertical"] {
  height: 1px;
}
.data-\[orientation\=vertical\]\:min-h-44[data-orientation="vertical"] {
  min-height: 11rem;
}
.data-\[orientation\=horizontal\]\:w-full[data-orientation="horizontal"] {
  width: 100%;
}
.data-\[orientation\=vertical\]\:w-1\.5[data-orientation="vertical"] {
  width: 0.375rem;
}
.data-\[orientation\=vertical\]\:w-auto[data-orientation="vertical"] {
  width: auto;
}
.data-\[orientation\=vertical\]\:w-full[data-orientation="vertical"] {
  width: 100%;
}
.data-\[orientation\=vertical\]\:w-px[data-orientation="vertical"] {
  width: 1px;
}
.data-\[panel-group-direction\=vertical\]\:w-full[data-panel-group-direction="vertical"] {
  width: 100%;
}
.data-\[side\=bottom\]\:translate-y-1[data-side="bottom"] {
  --tw-translate-y: 0.25rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.data-\[side\=left\]\:-translate-x-1[data-side="left"] {
  --tw-translate-x: -0.25rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.data-\[side\=right\]\:translate-x-1[data-side="right"] {
  --tw-translate-x: 0.25rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.data-\[side\=top\]\:-translate-y-1[data-side="top"] {
  --tw-translate-y: -0.25rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.data-\[state\=checked\]\:translate-x-\[calc\(100\%-2px\)\][data-state="checked"] {
  --tw-translate-x: calc(100% - 2px);
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.data-\[state\=unchecked\]\:translate-x-0[data-state="unchecked"] {
  --tw-translate-x: 0px;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
@keyframes accordion-up {

  from {
    height: var(--radix-accordion-content-height);
  }

  to {
    height: 0;
  }
}
.data-\[state\=closed\]\:animate-accordion-up[data-state="closed"] {
  animation: accordion-up 0.2s ease-out;
}
@keyframes accordion-down {

  from {
    height: 0;
  }

  to {
    height: var(--radix-accordion-content-height);
  }
}
.data-\[state\=open\]\:animate-accordion-down[data-state="open"] {
  animation: accordion-down 0.2s ease-out;
}
.data-\[orientation\=vertical\]\:flex-col[data-orientation="vertical"] {
  flex-direction: column;
}
.data-\[panel-group-direction\=vertical\]\:flex-col[data-panel-group-direction="vertical"] {
  flex-direction: column;
}
.data-\[range-end\=true\]\:rounded-md[data-range-end="true"] {
  border-radius: calc(var(--radius) - 2px);
}
.data-\[range-middle\=true\]\:rounded-none[data-range-middle="true"] {
  border-radius: 0px;
}
.data-\[range-start\=true\]\:rounded-md[data-range-start="true"] {
  border-radius: calc(var(--radius) - 2px);
}
.data-\[selected\=true\]\:rounded-none[data-selected="true"] {
  border-radius: 0px;
}
.data-\[range-end\=true\]\:rounded-r-md[data-range-end="true"] {
  border-top-right-radius: calc(var(--radius) - 2px);
  border-bottom-right-radius: calc(var(--radius) - 2px);
}
.data-\[range-start\=true\]\:rounded-l-md[data-range-start="true"] {
  border-top-left-radius: calc(var(--radius) - 2px);
  border-bottom-left-radius: calc(var(--radius) - 2px);
}
.data-\[active\=true\]\:border-ring[data-active="true"] {
  border-color: hsl(var(--ring));
}
.data-\[active\=true\]\:bg-accent\/50[data-active="true"] {
  background-color: hsl(var(--accent) / 0.5);
}
.data-\[range-end\=true\]\:bg-primary[data-range-end="true"] {
  background-color: hsl(var(--primary));
}
.data-\[range-middle\=true\]\:bg-accent[data-range-middle="true"] {
  background-color: hsl(var(--accent));
}
.data-\[range-start\=true\]\:bg-primary[data-range-start="true"] {
  background-color: hsl(var(--primary));
}
.data-\[selected-single\=true\]\:bg-primary[data-selected-single="true"] {
  background-color: hsl(var(--primary));
}
.data-\[selected\=true\]\:bg-accent[data-selected="true"] {
  background-color: hsl(var(--accent));
}
.data-\[state\=active\]\:bg-background[data-state="active"] {
  background-color: hsl(var(--background));
}
.data-\[state\=checked\]\:bg-primary[data-state="checked"] {
  background-color: hsl(var(--primary));
}
.data-\[state\=on\]\:bg-accent[data-state="on"] {
  background-color: hsl(var(--accent));
}
.data-\[state\=open\]\:bg-accent[data-state="open"] {
  background-color: hsl(var(--accent));
}
.data-\[state\=open\]\:bg-accent\/50[data-state="open"] {
  background-color: hsl(var(--accent) / 0.5);
}
.data-\[state\=open\]\:bg-secondary[data-state="open"] {
  background-color: hsl(var(--secondary));
}
.data-\[state\=selected\]\:bg-muted[data-state="selected"] {
  background-color: hsl(var(--muted));
}
.data-\[state\=unchecked\]\:bg-input[data-state="unchecked"] {
  background-color: hsl(var(--input));
}
.data-\[inset\]\:pl-8[data-inset] {
  padding-left: 2rem;
}
.data-\[active\=true\]\:text-accent-foreground[data-active="true"] {
  color: hsl(var(--accent-foreground));
}
.data-\[error\=true\]\:text-destructive[data-error="true"] {
  color: hsl(var(--destructive));
}
.data-\[placeholder\]\:text-muted-foreground[data-placeholder] {
  color: hsl(var(--muted-foreground));
}
.data-\[range-end\=true\]\:text-primary-foreground[data-range-end="true"] {
  color: hsl(var(--primary-foreground));
}
.data-\[range-middle\=true\]\:text-accent-foreground[data-range-middle="true"] {
  color: hsl(var(--accent-foreground));
}
.data-\[range-start\=true\]\:text-primary-foreground[data-range-start="true"] {
  color: hsl(var(--primary-foreground));
}
.data-\[selected-single\=true\]\:text-primary-foreground[data-selected-single="true"] {
  color: hsl(var(--primary-foreground));
}
.data-\[selected\=true\]\:text-accent-foreground[data-selected="true"] {
  color: hsl(var(--accent-foreground));
}
.data-\[state\=active\]\:text-foreground[data-state="active"] {
  color: hsl(var(--foreground));
}
.data-\[state\=checked\]\:text-primary-foreground[data-state="checked"] {
  color: hsl(var(--primary-foreground));
}
.data-\[state\=on\]\:text-accent-foreground[data-state="on"] {
  color: hsl(var(--accent-foreground));
}
.data-\[state\=open\]\:text-accent-foreground[data-state="open"] {
  color: hsl(var(--accent-foreground));
}
.data-\[state\=open\]\:text-muted-foreground[data-state="open"] {
  color: hsl(var(--muted-foreground));
}
.data-\[variant\=destructive\]\:text-destructive[data-variant="destructive"] {
  color: hsl(var(--destructive));
}
.data-\[disabled\=true\]\:opacity-50[data-disabled="true"] {
  opacity: 0.5;
}
.data-\[disabled\]\:opacity-50[data-disabled] {
  opacity: 0.5;
}
.data-\[state\=active\]\:shadow-sm[data-state="active"] {
  --tw-shadow: var(--shadow-sm);
  --tw-shadow-colored: var(--shadow-sm);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.data-\[active\=true\]\:ring-\[3px\][data-active="true"] {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.data-\[active\=true\]\:ring-ring\/50[data-active="true"] {
  --tw-ring-color: hsl(var(--ring) / 0.5);
}
.data-\[state\=closed\]\:duration-300[data-state="closed"] {
  transition-duration: 300ms;
}
.data-\[state\=open\]\:duration-500[data-state="open"] {
  transition-duration: 500ms;
}
.data-\[motion\^\=from-\]\:animate-in[data-motion^="from-"] {
  animation-name: enter;
  animation-duration: 150ms;
  --tw-enter-opacity: initial;
  --tw-enter-scale: initial;
  --tw-enter-rotate: initial;
  --tw-enter-translate-x: initial;
  --tw-enter-translate-y: initial;
}
.data-\[state\=open\]\:animate-in[data-state="open"] {
  animation-name: enter;
  animation-duration: 150ms;
  --tw-enter-opacity: initial;
  --tw-enter-scale: initial;
  --tw-enter-rotate: initial;
  --tw-enter-translate-x: initial;
  --tw-enter-translate-y: initial;
}
.data-\[state\=visible\]\:animate-in[data-state="visible"] {
  animation-name: enter;
  animation-duration: 150ms;
  --tw-enter-opacity: initial;
  --tw-enter-scale: initial;
  --tw-enter-rotate: initial;
  --tw-enter-translate-x: initial;
  --tw-enter-translate-y: initial;
}
.data-\[motion\^\=to-\]\:animate-out[data-motion^="to-"] {
  animation-name: exit;
  animation-duration: 150ms;
  --tw-exit-opacity: initial;
  --tw-exit-scale: initial;
  --tw-exit-rotate: initial;
  --tw-exit-translate-x: initial;
  --tw-exit-translate-y: initial;
}
.data-\[state\=closed\]\:animate-out[data-state="closed"] {
  animation-name: exit;
  animation-duration: 150ms;
  --tw-exit-opacity: initial;
  --tw-exit-scale: initial;
  --tw-exit-rotate: initial;
  --tw-exit-translate-x: initial;
  --tw-exit-translate-y: initial;
}
.data-\[state\=hidden\]\:animate-out[data-state="hidden"] {
  animation-name: exit;
  animation-duration: 150ms;
  --tw-exit-opacity: initial;
  --tw-exit-scale: initial;
  --tw-exit-rotate: initial;
  --tw-exit-translate-x: initial;
  --tw-exit-translate-y: initial;
}
.data-\[motion\^\=from-\]\:fade-in[data-motion^="from-"] {
  --tw-enter-opacity: 0;
}
.data-\[motion\^\=to-\]\:fade-out[data-motion^="to-"] {
  --tw-exit-opacity: 0;
}
.data-\[state\=closed\]\:fade-out-0[data-state="closed"] {
  --tw-exit-opacity: 0;
}
.data-\[state\=hidden\]\:fade-out[data-state="hidden"] {
  --tw-exit-opacity: 0;
}
.data-\[state\=open\]\:fade-in-0[data-state="open"] {
  --tw-enter-opacity: 0;
}
.data-\[state\=visible\]\:fade-in[data-state="visible"] {
  --tw-enter-opacity: 0;
}
.data-\[state\=closed\]\:zoom-out-95[data-state="closed"] {
  --tw-exit-scale: .95;
}
.data-\[state\=open\]\:zoom-in-90[data-state="open"] {
  --tw-enter-scale: .9;
}
.data-\[state\=open\]\:zoom-in-95[data-state="open"] {
  --tw-enter-scale: .95;
}
.data-\[motion\=from-end\]\:slide-in-from-right-52[data-motion="from-end"] {
  --tw-enter-translate-x: 13rem;
}
.data-\[motion\=from-start\]\:slide-in-from-left-52[data-motion="from-start"] {
  --tw-enter-translate-x: -13rem;
}
.data-\[motion\=to-end\]\:slide-out-to-right-52[data-motion="to-end"] {
  --tw-exit-translate-x: 13rem;
}
.data-\[motion\=to-start\]\:slide-out-to-left-52[data-motion="to-start"] {
  --tw-exit-translate-x: -13rem;
}
.data-\[side\=bottom\]\:slide-in-from-top-2[data-side="bottom"] {
  --tw-enter-translate-y: -0.5rem;
}
.data-\[side\=left\]\:slide-in-from-right-2[data-side="left"] {
  --tw-enter-translate-x: 0.5rem;
}
.data-\[side\=right\]\:slide-in-from-left-2[data-side="right"] {
  --tw-enter-translate-x: -0.5rem;
}
.data-\[side\=top\]\:slide-in-from-bottom-2[data-side="top"] {
  --tw-enter-translate-y: 0.5rem;
}
.data-\[state\=closed\]\:slide-out-to-bottom[data-state="closed"] {
  --tw-exit-translate-y: 100%;
}
.data-\[state\=closed\]\:slide-out-to-left[data-state="closed"] {
  --tw-exit-translate-x: -100%;
}
.data-\[state\=closed\]\:slide-out-to-left-1\/2[data-state="closed"] {
  --tw-exit-translate-x: -50%;
}
.data-\[state\=closed\]\:slide-out-to-right[data-state="closed"] {
  --tw-exit-translate-x: 100%;
}
.data-\[state\=closed\]\:slide-out-to-top[data-state="closed"] {
  --tw-exit-translate-y: -100%;
}
.data-\[state\=closed\]\:slide-out-to-top-\[48\%\][data-state="closed"] {
  --tw-exit-translate-y: -48%;
}
.data-\[state\=open\]\:slide-in-from-bottom[data-state="open"] {
  --tw-enter-translate-y: 100%;
}
.data-\[state\=open\]\:slide-in-from-left[data-state="open"] {
  --tw-enter-translate-x: -100%;
}
.data-\[state\=open\]\:slide-in-from-left-1\/2[data-state="open"] {
  --tw-enter-translate-x: -50%;
}
.data-\[state\=open\]\:slide-in-from-right[data-state="open"] {
  --tw-enter-translate-x: 100%;
}
.data-\[state\=open\]\:slide-in-from-top[data-state="open"] {
  --tw-enter-translate-y: -100%;
}
.data-\[state\=open\]\:slide-in-from-top-\[48\%\][data-state="open"] {
  --tw-enter-translate-y: -48%;
}
.data-\[state\=closed\]\:duration-300[data-state="closed"] {
  animation-duration: 300ms;
}
.data-\[state\=open\]\:duration-500[data-state="open"] {
  animation-duration: 500ms;
}
.\*\:data-\[slot\=alert-description\]\:text-destructive\/90[data-slot="alert-description"] > * {
  color: hsl(var(--destructive) / 0.9);
}
.data-\[panel-group-direction\=vertical\]\:after\:left-0[data-panel-group-direction="vertical"]::after {
  content: var(--tw-content);
  left: 0px;
}
.data-\[panel-group-direction\=vertical\]\:after\:h-1[data-panel-group-direction="vertical"]::after {
  content: var(--tw-content);
  height: 0.25rem;
}
.data-\[panel-group-direction\=vertical\]\:after\:w-full[data-panel-group-direction="vertical"]::after {
  content: var(--tw-content);
  width: 100%;
}
.data-\[panel-group-direction\=vertical\]\:after\:-translate-y-1\/2[data-panel-group-direction="vertical"]::after {
  content: var(--tw-content);
  --tw-translate-y: -50%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.data-\[panel-group-direction\=vertical\]\:after\:translate-x-0[data-panel-group-direction="vertical"]::after {
  content: var(--tw-content);
  --tw-translate-x: 0px;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.data-\[active\=true\]\:hover\:bg-accent:hover[data-active="true"] {
  background-color: hsl(var(--accent));
}
.data-\[state\=open\]\:hover\:bg-accent:hover[data-state="open"] {
  background-color: hsl(var(--accent));
}
.data-\[active\=true\]\:focus\:bg-accent:focus[data-active="true"] {
  background-color: hsl(var(--accent));
}
.data-\[state\=open\]\:focus\:bg-accent:focus[data-state="open"] {
  background-color: hsl(var(--accent));
}
.data-\[variant\=destructive\]\:focus\:bg-destructive\/10:focus[data-variant="destructive"] {
  background-color: hsl(var(--destructive) / 0.1);
}
.data-\[variant\=destructive\]\:focus\:text-destructive:focus[data-variant="destructive"] {
  color: hsl(var(--destructive));
}
.group\/day[data-focused="true"] .group-data-\[focused\=true\]\/day\:relative {
  position: relative;
}
.group\/navigation-menu[data-viewport="false"] .group-data-\[viewport\=false\]\/navigation-menu\:top-full {
  top: 100%;
}
.group\/day[data-focused="true"] .group-data-\[focused\=true\]\/day\:z-10 {
  z-index: 10;
}
.group\/navigation-menu[data-viewport="false"] .group-data-\[viewport\=false\]\/navigation-menu\:mt-1\.5 {
  margin-top: 0.375rem;
}
.group[data-state="open"] .group-data-\[state\=open\]\:rotate-180 {
  --tw-rotate: 180deg;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.group\/navigation-menu[data-viewport="false"] .group-data-\[viewport\=false\]\/navigation-menu\:overflow-hidden {
  overflow: hidden;
}
.group\/navigation-menu[data-viewport="false"] .group-data-\[viewport\=false\]\/navigation-menu\:rounded-md {
  border-radius: calc(var(--radius) - 2px);
}
.group\/navigation-menu[data-viewport="false"] .group-data-\[viewport\=false\]\/navigation-menu\:border {
  border-width: 1px;
}
.group\/day[data-focused="true"] .group-data-\[focused\=true\]\/day\:border-ring {
  border-color: hsl(var(--ring));
}
.group\/navigation-menu[data-viewport="false"] .group-data-\[viewport\=false\]\/navigation-menu\:bg-popover {
  background-color: hsl(var(--popover));
}
.group\/navigation-menu[data-viewport="false"] .group-data-\[viewport\=false\]\/navigation-menu\:text-popover-foreground {
  color: hsl(var(--popover-foreground));
}
.group\/navigation-menu[data-viewport="false"] .group-data-\[viewport\=false\]\/navigation-menu\:shadow {
  --tw-shadow: var(--shadow);
  --tw-shadow-colored: var(--shadow);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.group\/day[data-focused="true"] .group-data-\[focused\=true\]\/day\:ring-\[3px\] {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.group\/day[data-focused="true"] .group-data-\[focused\=true\]\/day\:ring-ring\/50 {
  --tw-ring-color: hsl(var(--ring) / 0.5);
}
.group\/navigation-menu[data-viewport="false"] .group-data-\[viewport\=false\]\/navigation-menu\:duration-200 {
  transition-duration: 200ms;
  animation-duration: 200ms;
}
.group\/navigation-menu[data-viewport="false"] .group-data-\[viewport\=false\]\/navigation-menu\:data-\[state\=open\]\:animate-in[data-state="open"] {
  animation-name: enter;
  animation-duration: 150ms;
  --tw-enter-opacity: initial;
  --tw-enter-scale: initial;
  --tw-enter-rotate: initial;
  --tw-enter-translate-x: initial;
  --tw-enter-translate-y: initial;
}
.group\/navigation-menu[data-viewport="false"] .group-data-\[viewport\=false\]\/navigation-menu\:data-\[state\=closed\]\:animate-out[data-state="closed"] {
  animation-name: exit;
  animation-duration: 150ms;
  --tw-exit-opacity: initial;
  --tw-exit-scale: initial;
  --tw-exit-rotate: initial;
  --tw-exit-translate-x: initial;
  --tw-exit-translate-y: initial;
}
.group\/navigation-menu[data-viewport="false"] .group-data-\[viewport\=false\]\/navigation-menu\:data-\[state\=closed\]\:fade-out-0[data-state="closed"] {
  --tw-exit-opacity: 0;
}
.group\/navigation-menu[data-viewport="false"] .group-data-\[viewport\=false\]\/navigation-menu\:data-\[state\=open\]\:fade-in-0[data-state="open"] {
  --tw-enter-opacity: 0;
}
.group\/navigation-menu[data-viewport="false"] .group-data-\[viewport\=false\]\/navigation-menu\:data-\[state\=closed\]\:zoom-out-95[data-state="closed"] {
  --tw-exit-scale: .95;
}
.group\/navigation-menu[data-viewport="false"] .group-data-\[viewport\=false\]\/navigation-menu\:data-\[state\=open\]\:zoom-in-95[data-state="open"] {
  --tw-enter-scale: .95;
}
.dark\:bg-input\/30:is(.dark *) {
  background-color: hsl(var(--input) / 0.3);
}
.dark\:hover\:text-accent-foreground:hover:is(.dark *) {
  color: hsl(var(--accent-foreground));
}
.dark\:data-\[state\=checked\]\:bg-primary-foreground[data-state="checked"]:is(.dark *) {
  background-color: hsl(var(--primary-foreground));
}
.dark\:data-\[state\=unchecked\]\:bg-foreground[data-state="unchecked"]:is(.dark *) {
  background-color: hsl(var(--foreground));
}
.dark\:data-\[state\=unchecked\]\:bg-input\/80[data-state="unchecked"]:is(.dark *) {
  background-color: hsl(var(--input) / 0.8);
}
.dark\:data-\[variant\=destructive\]\:focus\:bg-destructive\/20:focus[data-variant="destructive"]:is(.dark *) {
  background-color: hsl(var(--destructive) / 0.2);
}
@media (min-width: 640px) {

  .sm\:max-w-lg {
    max-width: 32rem;
  }

  .sm\:max-w-sm {
    max-width: 24rem;
  }

  .sm\:flex-row {
    flex-direction: row;
  }

  .sm\:justify-end {
    justify-content: flex-end;
  }

  .sm\:gap-2\.5 {
    gap: 0.625rem;
  }

  .sm\:space-x-2 > :not([hidden]) ~ :not([hidden]) {
    --tw-space-x-reverse: 0;
    margin-right: calc(0.5rem * var(--tw-space-x-reverse));
    margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse)));
  }

  .sm\:rounded-lg {
    border-radius: var(--radius);
  }

  .sm\:px-8 {
    padding-left: 2rem;
    padding-right: 2rem;
  }

  .sm\:py-12 {
    padding-top: 3rem;
    padding-bottom: 3rem;
  }

  .sm\:py-9 {
    padding-top: 2.25rem;
    padding-bottom: 2.25rem;
  }

  .sm\:text-left {
    text-align: left;
  }

  .sm\:text-\[15px\] {
    font-size: 15px;
  }

  .sm\:text-\[18px\] {
    font-size: 18px;
  }
}
@media (min-width: 768px) {

  .md\:absolute {
    position: absolute;
  }

  .md\:w-\[var\(--radix-navigation-menu-viewport-width\)\] {
    width: var(--radix-navigation-menu-viewport-width);
  }

  .md\:w-auto {
    width: auto;
  }

  .md\:flex-row {
    flex-direction: row;
  }

  .md\:text-sm {
    font-size: 0.875rem;
    line-height: 1.25rem;
  }
}
.\[\&\:first-child\[data-selected\=true\]_button\]\:rounded-l-md:first-child[data-selected=true] button {
  border-top-left-radius: calc(var(--radius) - 2px);
  border-bottom-left-radius: calc(var(--radius) - 2px);
}
.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]) {
  padding-right: 0px;
}
.\[\&\:last-child\[data-selected\=true\]_button\]\:rounded-r-md:last-child[data-selected=true] button {
  border-top-right-radius: calc(var(--radius) - 2px);
  border-bottom-right-radius: calc(var(--radius) - 2px);
}
.\[\&\:nth-child\(2\)\[data-selected\=true\]_button\]\:rounded-l-md:nth-child(2)[data-selected=true] button {
  border-top-left-radius: calc(var(--radius) - 2px);
  border-bottom-left-radius: calc(var(--radius) - 2px);
}
.\[\&\>span\]\:line-clamp-1>span {
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
}
.\[\&\>span\]\:text-xs>span {
  font-size: 0.75rem;
  line-height: 1rem;
}
.\[\&\>span\]\:opacity-70>span {
  opacity: 0.7;
}
.\[\&\>svg\]\:size-3\.5>svg {
  width: 0.875rem;
  height: 0.875rem;
}
.\[\&\>svg\]\:size-4>svg {
  width: 1rem;
  height: 1rem;
}
.\[\&\>svg\]\:h-3\.5>svg {
  height: 0.875rem;
}
.\[\&\>svg\]\:w-3\.5>svg {
  width: 0.875rem;
}
.\[\&\>svg\]\:translate-y-0\.5>svg {
  --tw-translate-y: 0.125rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.\[\&\>svg\]\:text-current>svg {
  color: currentColor;
}
.\[\&\>svg\]\:text-muted-foreground>svg {
  color: hsl(var(--muted-foreground));
}
.\[\&\>tr\]\:last\:border-b-0:last-child>tr {
  border-bottom-width: 0px;
}
.\[\&\[data-panel-group-direction\=vertical\]\>div\]\:rotate-90[data-panel-group-direction=vertical]>div {
  --tw-rotate: 90deg;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.\[\&\[data-state\=open\]\>svg\]\:rotate-180[data-state=open]>svg {
  --tw-rotate: 180deg;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.\[\&_\[cmdk-group-heading\]\]\:px-2 [cmdk-group-heading] {
  padding-left: 0.5rem;
  padding-right: 0.5rem;
}
.\[\&_\[cmdk-group-heading\]\]\:py-1\.5 [cmdk-group-heading] {
  padding-top: 0.375rem;
  padding-bottom: 0.375rem;
}
.\[\&_\[cmdk-group-heading\]\]\:text-xs [cmdk-group-heading] {
  font-size: 0.75rem;
  line-height: 1rem;
}
.\[\&_\[cmdk-group-heading\]\]\:font-medium [cmdk-group-heading] {
  font-weight: 500;
}
.\[\&_\[cmdk-group-heading\]\]\:text-muted-foreground [cmdk-group-heading] {
  color: hsl(var(--muted-foreground));
}
.\[\&_\[cmdk-group\]\:not\(\[hidden\]\)_\~\[cmdk-group\]\]\:pt-0 [cmdk-group]:not([hidden]) ~[cmdk-group] {
  padding-top: 0px;
}
.\[\&_\[cmdk-group\]\]\:px-2 [cmdk-group] {
  padding-left: 0.5rem;
  padding-right: 0.5rem;
}
.\[\&_\[cmdk-input-wrapper\]_svg\]\:h-5 [cmdk-input-wrapper] svg {
  height: 1.25rem;
}
.\[\&_\[cmdk-input-wrapper\]_svg\]\:w-5 [cmdk-input-wrapper] svg {
  width: 1.25rem;
}
.\[\&_\[cmdk-input\]\]\:h-12 [cmdk-input] {
  height: 3rem;
}
.\[\&_\[cmdk-item\]\]\:px-2 [cmdk-item] {
  padding-left: 0.5rem;
  padding-right: 0.5rem;
}
.\[\&_\[cmdk-item\]\]\:py-3 [cmdk-item] {
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
}
.\[\&_\[cmdk-item\]_svg\]\:h-5 [cmdk-item] svg {
  height: 1.25rem;
}
.\[\&_\[cmdk-item\]_svg\]\:w-5 [cmdk-item] svg {
  width: 1.25rem;
}
.\[\&_p\]\:leading-relaxed p {
  line-height: 1.625;
}
.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*='size-']) {
  width: 1rem;
  height: 1rem;
}
.\[\&_svg\:not\(\[class\*\=\'text-\'\]\)\]\:text-muted-foreground svg:not([class*='text-']) {
  color: hsl(var(--muted-foreground));
}
.\[\&_svg\]\:pointer-events-none svg {
  pointer-events: none;
}
.\[\&_svg\]\:size-4 svg {
  width: 1rem;
  height: 1rem;
}
.\[\&_svg\]\:shrink-0 svg {
  flex-shrink: 0;
}
.\[\&_tr\:last-child\]\:border-0 tr:last-child {
  border-width: 0px;
}
.\[\&_tr\]\:border-b tr {
  border-bottom-width: 1px;
}
[data-slot=card-content] .\[\[data-slot\=card-content\]_\&\]\:bg-transparent {
  background-color: transparent;
}
[data-slot=popover-content] .\[\[data-slot\=popover-content\]_\&\]\:bg-transparent {
  background-color: transparent;
}
