/* ============================================================
   BestKtown — Modern Korean Tech
   정제된 클린 룩: 넉넉한 여백, 또렷한 한글 타이포, 절제된 블루 포인트
   ============================================================ */

@font-face {
    font-family: "Pretendard Variable";
    font-weight: 45 920;
    font-style: normal;
    font-display: swap;
    src: url("fonts/PretendardVariable.woff2") format("woff2-variations");
}

/* ============================================
   Public marketing pages / shared footer
   ============================================ */
.footer.site-footer { margin-top: 0; padding: 54px 24px 24px; background: #111827; border: 0; color: #cbd5e1; }
.site-footer-inner { align-items: flex-start; padding-bottom: 38px; }
.site-footer .footer-company { max-width: 300px; text-align: left; }
.site-footer .footer-brand { display: inline-block; margin-bottom: 13px; color: #fff; font-size: 21px; }
.site-footer .footer-company p { color: #94a3b8; text-align: left; line-height: 1.7; }
.footer-nav { display: grid; grid-template-columns: repeat(3, minmax(110px, 1fr)); gap: 52px; text-align: left; }
.footer-nav > div { display: flex; flex-direction: column; gap: 10px; }
.footer-nav strong { margin-bottom: 4px; color: #fff; font-size: 13px; }
.site-footer .footer-nav a, .site-footer .footer-legal a { color: #94a3b8; }
.site-footer .footer-nav a:hover, .site-footer .footer-legal a:hover { color: #fff; }
.footer-bottom { max-width: 1120px; margin: 0 auto; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.1); display: flex; justify-content: space-between; gap: 20px; }
.site-footer .footer-bottom p { color: #64748b; }
.footer-legal { display: flex; gap: 18px; }

.marketing-page { overflow: hidden; background: #fff; color: var(--ink-900); }
.marketing-page em { color: var(--primary); font-style: normal; }
.marketing-hero { width: min(1180px, calc(100% - 48px)); min-height: 650px; margin: 0 auto; padding: 92px 0 78px; display: grid; grid-template-columns: 1.02fr .98fr; align-items: center; gap: 72px; }
.marketing-hero-copy { position: relative; z-index: 2; }
.marketing-eyebrow { display: block; margin-bottom: 16px; color: var(--primary); font-size: 12px; font-weight: 850; letter-spacing: .13em; }
.marketing-hero h2 { max-width: 720px; font-size: clamp(42px, 5vw, 68px); line-height: 1.08; letter-spacing: -.055em; }
.marketing-hero-copy > p { max-width: 610px; margin-top: 25px; color: var(--ink-600); font-size: 18px; line-height: 1.8; word-break: keep-all; }
.marketing-actions { display: flex; align-items: center; gap: 12px; margin-top: 34px; }
.marketing-primary, .marketing-secondary { min-height: 50px; display: inline-flex; align-items: center; justify-content: center; padding: 0 22px; border-radius: 12px; font-size: 14px; font-weight: 800; text-decoration: none; transition: transform .2s ease, box-shadow .2s ease, background .2s ease; }
.marketing-primary { border: 0; background: var(--primary); color: #fff; box-shadow: 0 12px 28px rgba(27,100,218,.22); cursor: pointer; }
.marketing-primary:hover { transform: translateY(-2px); box-shadow: 0 16px 34px rgba(27,100,218,.28); }
.marketing-secondary { border: 1px solid var(--line-200); background: #fff; color: var(--ink-700); }

.service-hero-board { min-height: 460px; display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 1fr auto auto; gap: 14px; padding: 26px; border-radius: 34px; background: #edf4ff; transform: rotate(1deg); box-shadow: inset 0 0 0 1px rgba(27,100,218,.08); }
.hero-board-main { grid-column: 1 / -1; display: flex; flex-direction: column; justify-content: flex-end; padding: 34px; border-radius: 24px; background: linear-gradient(145deg,#1762d9,#0c3f98); color: #fff; box-shadow: 0 20px 50px rgba(18,73,158,.25); }
.hero-board-main span { margin-bottom: 12px; color: #bfd7ff; font-size: 14px; font-weight: 700; }
.hero-board-main strong { font-size: clamp(28px,3vw,42px); line-height: 1.12; letter-spacing: -.04em; }
.hero-board-stat { display: flex; align-items: center; gap: 12px; padding: 15px 18px; border-radius: 17px; background: #fff; color: var(--ink-700); box-shadow: 0 8px 22px rgba(33,62,104,.08); }
.hero-board-stat b { color: var(--primary); font-size: 12px; }
.hero-board-stat span { font-size: 13px; font-weight: 750; }
.hero-board-stat:last-child { grid-column: 1 / -1; }

.marketing-section { width: min(1120px, calc(100% - 48px)); margin: 0 auto; padding: 100px 0; }
.promise-strip { padding: 32px; display: grid; grid-template-columns: repeat(3,1fr); gap: 0; border-radius: 22px; background: #f7f9fc; }
.promise-strip > div { padding: 6px 28px; border-right: 1px solid var(--line-200); }
.promise-strip > div:last-child { border: 0; }
.promise-strip strong, .promise-strip span { display: block; }
.promise-strip strong { margin-bottom: 7px; font-size: 15px; }
.promise-strip span { color: var(--ink-500); font-size: 13px; line-height: 1.6; }
.marketing-section-head { max-width: 680px; margin-bottom: 42px; }
.marketing-section-head h3, .growth-section h3, .partner-fit h3, .partner-apply-intro h3 { font-size: clamp(32px,4vw,48px); line-height: 1.2; letter-spacing: -.045em; }
.marketing-section-head p, .partner-fit-copy > p, .partner-apply-intro > p { margin-top: 15px; color: var(--ink-500); font-size: 16px; line-height: 1.75; word-break: keep-all; }
.industry-service-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.industry-service-card { --category-color:#2563eb; min-height: 370px; display: flex; flex-direction: column; padding: 27px; border: 1px solid var(--line-200); border-radius: 22px; background: #fff; transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease; }
.industry-service-card:hover { transform: translateY(-5px); border-color: color-mix(in srgb, var(--category-color) 35%, white); box-shadow: 0 18px 42px rgba(32,49,78,.1); }
.industry-card-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 27px; }
.industry-number { color: var(--ink-400); font-size: 11px; font-weight: 800; letter-spacing: .1em; }
.industry-icon { width: 50px; height: 50px; display: grid; place-items: center; border-radius: 15px; background: color-mix(in srgb, var(--category-color) 10%, white); color: var(--category-color); }
.industry-icon svg { width: 25px; height: 25px; }
.industry-service-card h4 { font-size: 25px; letter-spacing: -.035em; }
.industry-service-card > p { min-height: 70px; margin-top: 10px; color: var(--ink-500); font-size: 14px; line-height: 1.7; word-break: keep-all; }
.industry-service-card ul { margin: 20px 0 26px; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 9px; list-style: none; }
.industry-service-card li { color: var(--ink-700); font-size: 12px; font-weight: 650; }
.industry-service-card li::before { content:'✓'; margin-right: 6px; color: var(--category-color); font-weight: 900; }
.industry-program-name { margin-top: auto; padding-top: 15px; border-top: 1px solid var(--line-200); color: var(--ink-400); font-size: 11px; font-weight: 700; }
.cat-insurance { --category-color:#168768; }.cat-moving { --category-color:#a855f7; }.cat-delivery { --category-color:#e87916; }
.growth-section { display: grid; grid-template-columns: .8fr 1.5fr; gap: 70px; padding-top: 50px; }
.growth-steps { display: grid; gap: 14px; }
.growth-steps article { display: grid; grid-template-columns: 42px 170px 1fr; align-items: center; gap: 16px; padding: 22px 0; border-bottom: 1px solid var(--line-200); }
.growth-steps b { color: var(--primary); font-size: 12px; }.growth-steps h4 { font-size: 17px; }.growth-steps p { color: var(--ink-500); font-size: 14px; line-height: 1.65; }
.marketing-cta { padding: 92px 24px; background: #0f2445; color: #fff; text-align: center; }
.marketing-cta > span { color: #8db6fa; font-size: 12px; font-weight: 800; letter-spacing: .1em; }
.marketing-cta h3 { margin-top: 13px; font-size: clamp(31px,4vw,48px); letter-spacing: -.045em; }.marketing-cta p { margin: 15px auto 28px; color: #b7c6dc; }

.partner-hero { grid-template-columns: 1.05fr .95fr; }
.partner-hero-visual { position: relative; min-height: 480px; border-radius: 34px; background: linear-gradient(145deg,#101f37,#1b64da); box-shadow: 0 28px 60px rgba(17,51,103,.25); }
.territory-card { position: absolute; padding: 21px; border-radius: 18px; background: rgba(255,255,255,.96); box-shadow: 0 15px 36px rgba(0,0,0,.16); }
.territory-card span, .territory-card b, .territory-card strong, .territory-card small { display:block; }
.territory-main { inset: 70px 55px auto 55px; min-height: 215px; padding: 33px; background: #fff; }
.territory-main small { color: var(--primary); font-size: 10px; font-weight: 900; letter-spacing: .15em; }.territory-main strong { margin-top: 22px; font-size: 40px; letter-spacing: -.05em; }.territory-main span { margin-top: 8px; color: var(--ink-500); font-size: 13px; }
.territory-one { left: 24px; bottom: 35px; }.territory-two { left: 50%; bottom: 15px; transform: translateX(-50%); }.territory-three { right: 24px; bottom: 48px; }
.territory-card:not(.territory-main) b { margin-bottom: 5px; font-size: 14px; }.territory-card:not(.territory-main) span { color: var(--ink-500); font-size: 11px; }
.partner-value-band { padding: 35px max(24px,calc((100% - 1120px)/2)); display: grid; grid-template-columns: repeat(4,1fr); gap: 28px; background: #f3f7ff; }
.partner-value-band div { padding-left: 20px; border-left: 2px solid #b9d1fa; }.partner-value-band strong,.partner-value-band span { display:block; }.partner-value-band strong { font-size: 14px; }.partner-value-band span { margin-top:5px; color:var(--ink-500); font-size:12px; }
.partner-step-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 14px; }
.partner-step-grid article { min-height: 310px; padding: 25px; border: 1px solid var(--line-200); border-radius: 20px; }
.partner-step-grid article > span { color: var(--ink-400); font-size: 11px; font-weight: 800; }.partner-step-icon { width: 48px; height: 48px; display:grid; place-items:center; margin: 35px 0 22px; border-radius: 50%; background: var(--primary-tint); color: var(--primary); font-size: 21px; font-weight: 900; }.partner-step-grid h4 { font-size: 17px; }.partner-step-grid p { margin-top: 10px; color: var(--ink-500); font-size: 13px; line-height: 1.7; }
.partner-fit { display:grid; grid-template-columns: .8fr 1.2fr; gap: 80px; padding-top: 45px; }
.partner-fit-list > div { display:grid; grid-template-columns: 52px 1fr; gap: 16px; padding: 22px 0; border-bottom:1px solid var(--line-200); }.partner-fit-list b { color: var(--primary); font-size:12px; }.partner-fit-list strong,.partner-fit-list span {display:block}.partner-fit-list strong{font-size:16px}.partner-fit-list span{margin-top:6px;color:var(--ink-500);font-size:13px;line-height:1.6}
.partner-apply-section { width:min(1120px,calc(100% - 48px)); margin:30px auto 110px; display:grid; grid-template-columns:.8fr 1.2fr; gap:70px; padding:55px; border-radius:28px; background:#f5f8fd; }
.partner-note { margin-top:28px; padding:18px; border-radius:14px; background:#e8f1ff; }.partner-note strong,.partner-note span{display:block}.partner-note strong{font-size:13px;color:#154d9f}.partner-note span{margin-top:5px;color:#52709c;font-size:12px;line-height:1.6}
.partner-form { padding:30px; border-radius:20px; background:#fff; box-shadow:0 12px 35px rgba(38,61,94,.08); }.partner-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}.partner-form label{display:flex;flex-direction:column;gap:7px}.partner-form label > span{font-size:12px;font-weight:750;color:var(--ink-700)}.partner-form input,.partner-form select,.partner-form textarea{width:100%;padding:12px 13px;border:1px solid var(--line-200);border-radius:10px;background:#fff;color:var(--ink-900);font:inherit;font-size:14px;outline:none}.partner-form input:focus,.partner-form select:focus,.partner-form textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-tint)}.partner-form textarea{resize:vertical}.partner-form .form-wide{grid-column:1/-1}.partner-submit{width:100%;margin-top:22px}.form-consent{margin-top:12px;color:var(--ink-400);font-size:11px;text-align:center}.form-message{margin-bottom:20px;padding:16px;border-radius:12px;font-size:13px}.form-message strong,.form-message span{display:block}.form-message.success{background:#e9f8f0;color:#17643e}.form-message.error{background:#fff0f0;color:#a83c3c}.form-message ul{margin:8px 0 0;padding-left:18px}

@media (max-width: 900px) {
    .marketing-hero { grid-template-columns: 1fr; min-height: auto; padding-top: 70px; gap: 45px; }
    .service-hero-board,.partner-hero-visual { min-height: 400px; }
    .industry-service-grid { grid-template-columns: repeat(2,1fr); }
    .promise-strip,.partner-value-band { grid-template-columns: repeat(2,1fr); }
    .promise-strip > div:nth-child(2){border:0}.partner-step-grid{grid-template-columns:repeat(2,1fr)}
    .growth-section,.partner-fit,.partner-apply-section{grid-template-columns:1fr;gap:42px}.partner-apply-section{padding:38px}
}
@media (max-width: 640px) {
    .marketing-hero,.marketing-section,.partner-apply-section{width:min(100% - 32px,1120px)}
    .marketing-hero{padding:54px 0}.marketing-hero h2{font-size:40px}.marketing-hero-copy>p{font-size:16px}.marketing-actions{align-items:stretch;flex-direction:column}.marketing-primary,.marketing-secondary{width:100%}
    .service-hero-board,.partner-hero-visual{min-height:350px;padding:16px}.hero-board-main{padding:25px}.territory-main{inset:44px 22px auto}.territory-one{left:12px}.territory-three{right:12px}.territory-two{display:none}
    .promise-strip,.partner-value-band,.industry-service-grid,.partner-step-grid{grid-template-columns:1fr}.promise-strip>div{padding:18px;border-right:0;border-bottom:1px solid var(--line-200)}
    .growth-steps article{grid-template-columns:35px 1fr}.growth-steps p{grid-column:2}.partner-apply-section{padding:25px}.partner-form{padding:20px}.partner-form-grid{grid-template-columns:1fr}.partner-form .form-wide{grid-column:auto}
    .footer-nav{width:100%;grid-template-columns:repeat(2,1fr);gap:30px}.footer-bottom{flex-direction:column}.site-footer .footer-company{max-width:none}
}

.partner-admin-list { display:grid; gap:16px; }
.partner-admin-card { padding:24px; border:1px solid var(--line-200); border-radius:18px; background:#fff; }
.partner-admin-head { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; }
.partner-admin-head h3 { display:inline-block; margin-left:9px; font-size:19px; }.partner-admin-head small{color:var(--ink-400);font-size:12px}
.partner-admin-details { display:grid; grid-template-columns:1fr 1fr; gap:14px 28px; margin-top:22px; }.partner-admin-details p{margin:0}.partner-admin-details span,.partner-admin-details strong{display:block}.partner-admin-details span{margin-bottom:5px;color:var(--ink-400);font-size:11px}.partner-admin-details strong{font-size:13px}.partner-admin-details a{color:var(--primary)}
.partner-admin-intro { margin-top:18px; padding:16px; border-radius:12px; background:var(--fill-50); color:var(--ink-600); font-size:13px; line-height:1.7; }
.partner-admin-action { display:flex; justify-content:flex-end; gap:9px; margin-top:18px; padding-top:18px; border-top:1px solid var(--line-200); }.partner-admin-action select{min-width:140px;padding:9px 11px;border:1px solid var(--line-200);border-radius:9px;background:#fff}
@media(max-width:640px){.partner-admin-details{grid-template-columns:1fr}.partner-admin-head{flex-direction:column}.partner-admin-action{justify-content:stretch}.partner-admin-action select,.partner-admin-action .btn{flex:1}}

/* ============================================
   Persistent location picker
   ============================================ */
.header-primary { display: flex; align-items: center; gap: 24px; min-width: 0; }
.location-picker { display: flex; align-items: center; }
.location-trigger {
    border: 0; background: transparent; color: var(--ink-700); display: inline-flex;
    align-items: center; gap: 8px; min-width: 156px; padding: 7px 10px;
    border-radius: 10px; font: inherit; text-align: left; cursor: pointer;
    transition: background .2s var(--ease-out), color .2s var(--ease-out);
}
.location-trigger:hover { color: var(--primary); background: var(--fill-100); }
.location-trigger > svg:first-child { width: 19px; height: 19px; flex: 0 0 auto; }
.location-trigger span { display: flex; flex-direction: column; min-width: 0; line-height: 1.2; }
.location-trigger small { color: var(--ink-500); font-size: 10px; font-weight: 600; }
.location-trigger strong {
    max-width: 154px; overflow: hidden; color: inherit; font-size: 13px;
    font-weight: 700; text-overflow: ellipsis; white-space: nowrap;
}
.location-chevron { width: 14px; height: 14px; margin-left: auto; }
body.location-modal-open { overflow: hidden; }
body.location-modal-open .header { backdrop-filter: none; -webkit-backdrop-filter: none; }
.location-modal[hidden], .location-city-group[hidden] { display: none; }
.location-modal {
    position: fixed; inset: 0; z-index: 1000; display: grid; place-items: center; padding: 24px;
}
.location-modal-backdrop {
    position: absolute; inset: 0; background: rgba(25,31,40,.5); backdrop-filter: blur(2px);
}
.location-modal-dialog {
    position: relative; width: min(720px, 100%); max-height: min(680px, calc(100vh - 48px));
    overflow: hidden; border-radius: 20px; background: var(--bg-white);
    box-shadow: 0 24px 70px rgba(16,30,54,.25);
}
.location-modal-head {
    display: flex; align-items: flex-start; justify-content: space-between;
    padding: 26px 28px 20px; border-bottom: 1px solid var(--line-200);
}
.location-modal-head p { margin-bottom: 3px; color: var(--primary); font-size: 12px; font-weight: 700; }
.location-modal-head h2 { font-size: 22px; line-height: 1.35; letter-spacing: -.025em; }
.location-modal-close {
    width: 36px; height: 36px; border: 0; border-radius: 50%; background: var(--fill-100);
    color: var(--ink-600); font-size: 25px; line-height: 1; cursor: pointer;
}
.location-modal-body {
    display: grid; grid-template-columns: 150px minmax(0,1fr); min-height: 340px;
    max-height: calc(100vh - 240px);
}
.location-state-list {
    padding: 16px 12px; overflow-y: auto; border-right: 1px solid var(--line-200);
    background: var(--fill-50);
}
.location-state-button {
    width: 100%; display: flex; align-items: center; justify-content: space-between;
    padding: 12px 13px; border: 0; border-radius: 10px; background: transparent;
    color: var(--ink-600); font: inherit; font-size: 14px; font-weight: 700; cursor: pointer;
}
.location-state-button small { color: var(--ink-400); font-size: 11px; font-weight: 600; }
.location-state-button.active { color: var(--primary); background: var(--primary-tint); }
.location-city-panel { min-width: 0; padding: 22px 24px; overflow-y: auto; }
.location-city-head {
    display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 18px;
}
.location-city-head strong { display: block; font-size: 17px; }
.location-city-head p, .location-city-note { color: var(--ink-500); font-size: 12px; }
.location-select-all {
    flex: 0 0 auto; padding: 7px 10px; border: 1px solid var(--line-200); border-radius: 8px;
    background: var(--bg-white); color: var(--ink-600); font: inherit; font-size: 12px;
    font-weight: 700; cursor: pointer;
}
.location-city-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.location-city-option {
    position: relative; display: grid; grid-template-columns: 22px minmax(0,1fr) auto;
    align-items: center; gap: 9px; min-height: 52px; padding: 10px 12px;
    border: 1px solid var(--line-200); border-radius: 12px; cursor: pointer;
    transition: border-color .18s var(--ease-out), background .18s var(--ease-out);
}
.location-city-option:has(input:checked) { border-color: var(--primary-soft); background: var(--primary-tint); }
.location-city-option input { position: absolute; opacity: 0; pointer-events: none; }
.location-check {
    width: 20px; height: 20px; display: grid; place-items: center;
    border: 1.5px solid var(--line-300); border-radius: 6px; color: transparent;
    font-size: 12px; font-weight: 800;
}
.location-city-option input:checked + .location-check { border-color: var(--primary); background: var(--primary); color: white; }
.location-city-name {
    overflow: hidden; color: var(--ink-700); font-size: 13px; font-weight: 650;
    text-overflow: ellipsis; white-space: nowrap;
}
.location-city-option small { color: var(--ink-400); font-size: 11px; }
.location-city-note { margin-top: 15px; }
.location-modal-foot {
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
    padding: 16px 24px; border-top: 1px solid var(--line-200);
}
.location-clear, .location-apply {
    border: 0; border-radius: 10px; font: inherit; font-size: 14px; font-weight: 700; cursor: pointer;
}
.location-clear { padding: 11px 8px; background: transparent; color: var(--ink-500); }
.location-apply { min-width: 150px; padding: 12px 20px; background: var(--primary); color: white; }
.selected-location-caption { color: var(--primary); font-size: 13px; font-weight: 700; }

@media (max-width: 700px) {
    .header-primary { gap: 8px; }
    .location-trigger { min-width: 0; max-width: 150px; padding: 6px 7px; }
    .location-trigger small, .location-chevron { display: none; }
    .location-trigger strong { max-width: 104px; font-size: 12px; }
    .location-modal { align-items: end; padding: 0; }
    .location-modal-dialog { width: 100%; max-height: 88vh; border-radius: 20px 20px 0 0; }
    .location-modal-head { padding: 20px 18px 16px; }
    .location-modal-head h2 { font-size: 19px; }
    .location-modal-body { grid-template-columns: 104px minmax(0,1fr); max-height: calc(88vh - 151px); }
    .location-state-list { padding: 12px 8px; }
    .location-state-button { padding: 11px 10px; }
    .location-state-button small { display: none; }
    .location-city-panel { padding: 18px 14px; }
    .location-city-grid { grid-template-columns: 1fr; }
    .location-modal-foot { padding: 12px 16px; }
    .location-apply { min-width: 132px; }
}

@media (max-width: 520px) {
    .header .user-menu .menu-link:not(.menu-cta):first-child, .header .menu-user { display: none; }
}

/* ============================================
   Header category mega navigation
   ============================================ */
.category-navigation { position: relative; flex: 0 0 auto; }
.category-navigation-trigger {
    display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 8px 12px;
    border: 1px solid transparent; border-radius: 10px; background: transparent; color: var(--ink-700);
    font: inherit; font-size: 13px; font-weight: 750; white-space: nowrap; cursor: pointer;
    transition: color .18s var(--ease-out), background .18s var(--ease-out), border-color .18s var(--ease-out);
}
.category-navigation-trigger:hover,
.category-navigation.is-open .category-navigation-trigger {
    border-color: var(--line-200); background: var(--fill-50); color: var(--primary);
}
.category-navigation-trigger > svg:first-child { width: 18px; height: 18px; }
.category-navigation-chevron { width: 14px; height: 14px; transition: transform .18s var(--ease-out); }
.category-navigation.is-open .category-navigation-chevron { transform: rotate(180deg); }
.category-mega-menu[hidden], .category-subcategory-panel[hidden] { display: none; }
.category-mega-menu {
    position: absolute; top: calc(100% + 11px); left: -178px; z-index: 110;
    width: min(760px, calc(100vw - 32px)); overflow: hidden;
    border: 1px solid var(--line-200); border-radius: 18px; background: var(--bg-white);
    box-shadow: 0 22px 60px rgba(26,42,70,.16);
    animation: category-menu-in .16s var(--ease-out);
}
@keyframes category-menu-in {
    from { opacity: 0; transform: translateY(-5px); }
    to { opacity: 1; transform: translateY(0); }
}
.category-mega-heading {
    display: flex; align-items: center; justify-content: space-between; min-height: 76px;
    padding: 15px 20px 14px 22px; border-bottom: 1px solid var(--line-200);
    background: linear-gradient(110deg, #f7faff, #fff);
}
.category-mega-heading small,
.category-subcategory-head small { display: block; margin-bottom: 3px; color: var(--primary); font-size: 9px; font-weight: 850; letter-spacing: .12em; }
.category-mega-heading strong { font-size: 17px; letter-spacing: -.025em; }
.category-mega-heading button {
    width: 34px; height: 34px; border: 0; border-radius: 50%; background: var(--fill-100);
    color: var(--ink-500); font-size: 23px; line-height: 1; cursor: pointer;
}
.category-mega-body { display: grid; grid-template-columns: 188px minmax(0,1fr); min-height: 330px; }
.category-major-list { padding: 12px; overflow-y: auto; border-right: 1px solid var(--line-200); background: var(--fill-50); }
.category-major-button {
    width: 100%; display: grid; grid-template-columns: 28px minmax(0,1fr) 14px; align-items: center; gap: 8px;
    min-height: 46px; padding: 8px 10px; border: 0; border-radius: 10px; background: transparent;
    color: var(--ink-600); font: inherit; font-size: 13px; font-weight: 700; text-align: left; cursor: pointer;
}
.category-major-button:hover, .category-major-button.is-active { background: var(--bg-white); color: var(--primary); box-shadow: 0 3px 12px rgba(42,72,118,.07); }
.category-major-button > svg { width: 13px; height: 13px; justify-self: end; }
.category-major-icon {
    width: 28px; height: 28px; display: grid; place-items: center; border-radius: 8px;
    background: var(--bg-white); color: currentColor;
}
.category-major-icon svg { width: 16px; height: 16px; }
.category-subcategory-area { min-width: 0; padding: 24px 26px 26px; }
.category-subcategory-panel { animation: category-panel-in .14s ease-out; }
@keyframes category-panel-in { from { opacity: .35; } to { opacity: 1; } }
.category-subcategory-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; margin-bottom: 18px; }
.category-subcategory-head h2 { font-size: 22px; letter-spacing: -.035em; }
.category-subcategory-head > a { color: var(--ink-500); font-size: 12px; font-weight: 700; text-decoration: none; }
.category-subcategory-head > a:hover { color: var(--primary); }
.category-subcategory-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
.category-subcategory-grid > a,
.category-empty-link {
    display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 48px;
    padding: 11px 14px; border: 1px solid var(--line-200); border-radius: 11px;
    background: var(--bg-white); color: var(--ink-700); font-size: 13px; font-weight: 650; text-decoration: none;
    transition: border-color .17s ease, color .17s ease, background .17s ease, transform .17s ease;
}
.category-subcategory-grid > a:hover,
.category-empty-link:hover { border-color: #bed4fa; background: var(--primary-tint); color: var(--primary); transform: translateY(-1px); }
.category-subcategory-grid > a svg { width: 13px; height: 13px; flex: 0 0 auto; }
.category-empty-link { min-height: 68px; background: var(--fill-50); }

/* Location picker follows the same anchored mega-menu pattern. */
.location-picker { position: relative; }
.location-trigger { min-height: 40px; border: 1px solid transparent; }
.location-picker.is-open .location-trigger {
    border-color: var(--line-200); background: var(--fill-50); color: var(--primary);
}
.location-picker.is-open .location-chevron { transform: rotate(180deg); }
.location-chevron { transition: transform .18s var(--ease-out); }
body.location-modal-open { overflow: auto; }
.location-modal {
    position: absolute; inset: auto; top: calc(100% + 11px); left: 0; z-index: 110;
    display: block; width: min(760px, calc(100vw - 32px)); padding: 0;
    animation: category-menu-in .16s var(--ease-out);
}
.location-modal-dialog {
    width: 100%; max-height: min(610px, calc(100vh - 82px));
    border: 1px solid var(--line-200); border-radius: 18px;
    box-shadow: 0 22px 60px rgba(26,42,70,.16);
}
.location-modal-head {
    min-height: 76px; padding: 15px 20px 14px 22px;
    background: linear-gradient(110deg, #f7faff, #fff);
}
.location-modal-head p { margin-bottom: 3px; font-size: 9px; font-weight: 850; letter-spacing: .12em; }
.location-modal-head h2 { font-size: 17px; }
.location-modal-close { width: 34px; height: 34px; font-size: 23px; }
.location-modal-body { min-height: 330px; max-height: calc(100vh - 230px); }
.location-modal-foot { background: var(--bg-white); }

@media (max-width: 940px) {
    .header-primary { gap: 12px; }
    .category-navigation-trigger { padding-inline: 9px; }
    .category-navigation-trigger > span { display: none; }
    .category-navigation-chevron { display: none; }
    .category-mega-menu { left: -175px; width: min(700px, calc(100vw - 24px)); }
}

@media (max-width: 700px) {
    .category-navigation { position: static; }
    .category-navigation-trigger { min-height: 36px; padding: 7px; }
    .category-mega-menu { position: fixed; top: 61px; left: 10px; right: 10px; width: auto; max-height: calc(100vh - 72px); overflow-y: auto; }
    .category-mega-heading { min-height: 64px; padding: 12px 15px 11px 17px; }
    .category-mega-body { grid-template-columns: 1fr; min-height: 0; }
    .category-major-list {
        display: flex; gap: 7px; padding: 10px; overflow-x: auto; border-right: 0; border-bottom: 1px solid var(--line-200);
        scrollbar-width: none;
    }
    .category-major-list::-webkit-scrollbar { display: none; }
    .category-major-button { width: auto; min-width: max-content; min-height: 38px; grid-template-columns: 22px auto; padding: 6px 9px; }
    .category-major-button > svg { display: none; }
    .category-major-icon { width: 22px; height: 22px; }
    .category-major-icon svg { width: 14px; height: 14px; }
    .category-subcategory-area { padding: 20px 16px 22px; }
    .category-subcategory-head h2 { font-size: 20px; }
    .location-picker { position: static; }
    .location-modal {
        position: fixed; top: 61px; right: 10px; left: 10px; width: auto;
        max-height: calc(100vh - 72px); overflow-y: auto;
    }
    .location-modal-dialog { width: 100%; max-height: calc(100vh - 72px); border-radius: 18px; }
    .location-modal-head { min-height: 64px; padding: 12px 15px 11px 17px; }
    .location-modal-head h2 { font-size: 17px; }
    .location-modal-body { grid-template-columns: 104px minmax(0,1fr); max-height: calc(100vh - 215px); }
}

/* ============================================
   Level 1 admin console
   ============================================ */
.admin-body { background: #f6f8fb; }
.admin-header { background: rgba(255,255,255,.96); }
.admin-brand { display: flex; align-items: center; gap: 10px; font-size: 19px; font-weight: 850; letter-spacing: -.03em; }
.admin-brand a { color: var(--ink-900); text-decoration: none; }
.admin-brand a span { color: var(--primary); }
.admin-brand em { padding: 3px 7px; border-radius: 6px; background: var(--ink-900); color: white; font-size: 9px; font-style: normal; letter-spacing: .08em; }
.admin-level-badge { padding: 5px 8px; border-radius: 7px; background: var(--primary-tint); color: var(--primary); font-size: 10px; font-weight: 800; }
.admin-container { padding-top: 28px; padding-bottom: 60px; }
.admin-page-head p { color: var(--primary); font-size: 12px; font-weight: 750; }
.admin-page-head h1 { margin-top: 2px; font-size: 27px; letter-spacing: -.035em; }
.admin-nav { display: flex; gap: 4px; margin: 22px 0 26px; padding: 5px; border: 1px solid var(--line-200); border-radius: 12px; background: white; width: fit-content; }
.admin-nav a { padding: 9px 15px; border-radius: 8px; color: var(--ink-500); font-size: 13px; font-weight: 700; text-decoration: none; }
.admin-nav a.on { background: var(--ink-900); color: white; }
.admin-message { max-width: none; }
.admin-stat-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 14px; margin-bottom: 18px; }
.admin-stat-card { display: flex; min-height: 150px; flex-direction: column; padding: 20px; border: 1px solid var(--line-200); border-radius: 16px; background: white; color: inherit; text-decoration: none; transition: transform .2s var(--ease-out),box-shadow .2s var(--ease-out); }
.admin-stat-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); }
.admin-stat-card span { color: var(--ink-500); font-size: 12px; font-weight: 700; }
.admin-stat-card strong { margin-top: 6px; color: var(--ink-900); font-size: 32px; line-height: 1.2; }
.admin-stat-card small { margin-top: auto; color: var(--primary); font-size: 11px; font-weight: 750; }
.admin-stat-card.warning strong,.admin-stat-card.warning small { color: var(--warning); }
.admin-quick-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; }
.admin-quick-grid a { display: flex; flex-direction: column; padding: 22px; border: 1px solid var(--line-200); border-radius: 16px; background: white; text-decoration: none; }
.admin-quick-grid strong { color: var(--ink-900); font-size: 15px; }
.admin-quick-grid span { margin-top: 5px; color: var(--ink-500); font-size: 12px; line-height: 1.55; }
.admin-section-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 16px; }
.admin-section-head h2 { font-size: 21px; letter-spacing: -.025em; }
.admin-section-head p { margin-top: 4px; color: var(--ink-500); font-size: 13px; }
.admin-category-layout { display: grid; grid-template-columns: minmax(0,1fr) 280px; gap: 18px; align-items: start; }
.admin-category-list { display: flex; flex-direction: column; gap: 14px; }
.admin-category-card { overflow: hidden; border: 1px solid var(--line-200); border-radius: 16px; background: white; }
.admin-category-main { display: grid; grid-template-columns: minmax(180px,1fr) 130px 170px 66px 82px auto; align-items: end; gap: 9px; padding: 16px; background: var(--fill-50); }
.admin-category-main > div { display: flex; flex-direction: column; }
.admin-category-main small { margin-bottom: 4px; color: var(--ink-500); font-size: 10px; }
.admin-category-main input,.admin-category-main select,.admin-subcategory-row input,.admin-subcategory-row select,.admin-table-row input,.admin-table-row select,.admin-search input,.admin-search select { height: 38px; padding: 0 10px; border: 1px solid var(--line-200); border-radius: 8px; background: white; color: var(--ink-800); font: inherit; font-size: 12px; }
.admin-category-main > div input { font-size: 15px; font-weight: 750; }
.admin-subcategory-list { padding: 5px 16px 12px; }
.admin-subcategory-row { display: grid; grid-template-columns: minmax(120px,1.1fr) minmax(130px,1fr) 66px 82px auto; align-items: center; gap: 8px; padding: 8px 0; border-bottom: 1px solid var(--fill-100); }
.admin-subcategory-row:last-child { border-bottom: 0; }
.admin-row-save { height: 36px; padding: 0 12px; border: 0; border-radius: 8px; background: var(--primary-tint); color: var(--primary); font: inherit; font-size: 11px; font-weight: 800; cursor: pointer; }
.admin-category-aside { position: sticky; top: 80px; display: flex; flex-direction: column; gap: 14px; }
.admin-add-panel { margin: 0; }
.admin-program-profile { padding: 18px 18px 16px; border-top: 1px solid var(--line-200); border-bottom: 1px solid var(--line-200); background: #fbfcff; }
.admin-program-profile-head { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.admin-program-profile-head > div { display: flex; align-items: center; gap: 7px; }
.admin-program-profile-head > div span { padding: 4px 7px; border-radius: 6px; background: var(--ink-900); color: white; font-family: Consolas,monospace; font-size: 10px; font-weight: 800; letter-spacing: .04em; }
.admin-program-profile-head > div small { color: var(--ink-400); font-family: Consolas,monospace; font-size: 10px; }
.admin-program-profile-head > strong { color: var(--ink-900); font-size: 14px; }
.admin-program-profile > p { margin-top: 9px; color: var(--ink-600); font-size: 12px; line-height: 1.6; }
.admin-program-feature-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 13px; }
.admin-program-feature-grid > div { padding: 11px 12px; border: 1px solid var(--line-200); border-radius: 10px; background: white; }
.admin-program-feature-grid small { display: block; margin-bottom: 4px; color: var(--primary); font-size: 10px; font-weight: 800; }
.admin-program-feature-grid span { display: block; color: var(--ink-600); font-size: 11px; line-height: 1.55; }
.admin-program-flags { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 11px; }
.admin-program-flags span { padding: 4px 7px; border-radius: 999px; background: var(--fill-100); color: var(--ink-400); font-size: 9px; font-weight: 750; text-decoration: line-through; }
.admin-program-flags span.on { background: var(--success-tint); color: var(--success); text-decoration: none; }
.admin-stack-form label small { color: var(--ink-400); font-size: 9px; font-weight: 500; }
.business-program-banner { display: grid; grid-template-columns: 105px minmax(190px,.8fr) minmax(320px,1.5fr); align-items: center; gap: 18px; margin-bottom: 18px; padding: 18px 20px; border: 1px solid #cfe0fb; border-radius: 16px; background: #f6f9ff; }
.business-program-code { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; }
.business-program-code span { padding: 5px 8px; border-radius: 7px; background: var(--primary); color: white; font-family: Consolas,monospace; font-size: 11px; font-weight: 800; }
.business-program-code small { color: var(--ink-400); font-family: Consolas,monospace; font-size: 10px; }
.business-program-copy strong { color: var(--ink-900); font-size: 14px; }
.business-program-copy p { margin-top: 4px; color: var(--ink-500); font-size: 11px; line-height: 1.5; }
.business-program-meta { display: grid; gap: 6px; }
.business-program-meta span { display: grid; grid-template-columns: 34px minmax(0,1fr); gap: 7px; color: var(--ink-500); font-size: 10px; line-height: 1.45; }
.business-program-meta b { color: var(--primary); }
.admin-stack-form { display: flex; flex-direction: column; gap: 12px; }
.admin-stack-form label { display: flex; flex-direction: column; gap: 5px; color: var(--ink-600); font-size: 11px; font-weight: 700; }
.admin-search { display: flex; gap: 7px; }
.admin-search input { min-width: 220px; }
.admin-search button { padding: 0 15px; border: 0; border-radius: 8px; background: var(--ink-900); color: white; font: inherit; font-size: 12px; font-weight: 750; }
.admin-table-card { overflow: hidden; border: 1px solid var(--line-200); border-radius: 16px; background: white; }
.admin-table-head,.admin-table-row { display: grid; grid-template-columns: minmax(220px,1.5fr) minmax(110px,.7fr) minmax(150px,1fr) 100px 58px; align-items: center; gap: 10px; padding: 11px 16px; }
.admin-table-head { background: var(--fill-50); color: var(--ink-500); font-size: 10px; font-weight: 750; }
.admin-table-row { border-top: 1px solid var(--fill-100); }
.admin-table-row label,.admin-table-row > div { display: flex; min-width: 0; flex-direction: column; }
.admin-table-row label input { width: 100%; font-weight: 700; }
.admin-table-row small { overflow: hidden; margin-top: 3px; color: var(--ink-400); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.member-table .admin-table-head,.member-admin-row { grid-template-columns: minmax(240px,1.5fr) 100px 120px 110px 58px; }
.member-admin-row strong { font-size: 13px; }
.member-admin-row > span { color: var(--ink-600); font-size: 12px; }
.admin-type-badge { width: fit-content; padding: 5px 8px; border-radius: 999px; background: var(--fill-100); font-size: 10px !important; font-weight: 750; }
.admin-filter-links { display: flex; gap: 4px; padding: 4px; border-radius: 9px; background: white; border: 1px solid var(--line-200); }
.admin-filter-links a { padding: 6px 10px; border-radius: 6px; color: var(--ink-500); font-size: 11px; font-weight: 700; text-decoration: none; }
.admin-filter-links a.on { background: var(--primary-tint); color: var(--primary); }

@media (max-width: 900px) {
    .admin-stat-grid { grid-template-columns: repeat(2,1fr); }
    .admin-category-layout { grid-template-columns: 1fr; }
    .admin-category-aside { position: static; }
    .admin-table-card { overflow-x: auto; }
    .admin-table-head,.admin-table-row { min-width: 840px; }
    .business-program-banner { grid-template-columns: 90px 1fr; }
    .business-program-meta { grid-column: 1 / -1; }
}
@media (max-width: 600px) {
    .admin-header .menu-user,.admin-level-badge { display: none; }
    .admin-container { padding-top: 22px; }
    .admin-nav { width: 100%; overflow-x: auto; }
    .admin-nav a { flex: 0 0 auto; }
    .admin-stat-grid,.admin-quick-grid { grid-template-columns: 1fr; }
    .admin-stat-card { min-height: 128px; }
    .admin-section-head { align-items: flex-start; flex-direction: column; }
    .admin-category-main { grid-template-columns: minmax(0,1fr) minmax(110px,.7fr); }
    .admin-category-main select,.admin-category-main button { width: 100%; }
    .admin-subcategory-row { grid-template-columns: 1fr 1fr; }
    .admin-subcategory-row .admin-row-save { grid-column: 2; }
    .admin-program-profile-head { align-items: flex-start; flex-direction: column; }
    .admin-program-feature-grid { grid-template-columns: 1fr; }
    .admin-search { width: 100%; flex-wrap: wrap; }
    .admin-search input { min-width: 0; flex: 1 1 180px; }
    .business-program-banner { grid-template-columns: 1fr; }
    .business-program-meta { grid-column: auto; }
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

:root {
    /* Ink scale */
    --ink-900: #191f28;
    --ink-700: #333d4b;
    --ink-600: #4e5968;
    --ink-500: #6b7684;
    --ink-400: #8b95a1;
    --line-300: #d1d6db;
    --line-200: #e5e8eb;
    --fill-100: #f2f4f6;
    --fill-50: #f9fafb;
    --bg-white: #ffffff;

    /* Point color — 절제된 블루 */
    --primary: #1b64da;
    --primary-strong: #1957bd;
    --primary-soft: #3182f6;
    --primary-tint: #e8f1fd;
    --primary-tint-strong: #d6e6fb;

    /* Status */
    --success: #148252;
    --success-tint: #e6f6ee;
    --warning: #b25e09;
    --warning-tint: #fdf3e3;
    --danger: #d6293a;
    --danger-tint: #fdecee;
    --star: #f5a524;

    /* Legacy aliases (다른 페이지 호환) */
    --primary-dark: var(--primary-strong);
    --primary-light: var(--primary-soft);
    --accent: var(--danger);
    --accent-light: #e85563;
    --secondary: var(--ink-500);
    --text-dark: var(--ink-900);
    --text-light: var(--ink-600);
    --text-muted: var(--ink-500);
    --bg-light: var(--fill-50);
    --border: var(--line-200);
    --border-dark: var(--line-300);

    --radius-sm: 8px;
    --radius-md: 14px;
    --radius-lg: 20px;
    --shadow-sm: 0 1px 2px rgba(16, 30, 54, 0.05);
    --shadow-md: 0 2px 8px rgba(16, 30, 54, 0.07), 0 1px 2px rgba(16, 30, 54, 0.05);
    --shadow-lg: 0 10px 28px rgba(16, 30, 54, 0.1), 0 2px 6px rgba(16, 30, 54, 0.06);
    --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
}

html {
    scroll-behavior: smooth;
}

html, body {
    height: 100%;
}

body {
    font-family: "Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont,
        "Segoe UI", "Malgun Gothic", "Apple SD Gothic Neo", sans-serif;
    background: var(--bg-white);
    color: var(--ink-900);
    line-height: 1.6;
    letter-spacing: -0.01em;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
    caret-color: var(--primary);
}

::selection {
    background: var(--primary-tint-strong);
    color: var(--ink-900);
}

:focus-visible {
    outline: 2px solid var(--primary);
    outline-offset: 2px;
    border-radius: 4px;
}

::-webkit-scrollbar {
    width: 10px;
    height: 6px;
}

::-webkit-scrollbar-track {
    background: transparent;
}

::-webkit-scrollbar-thumb {
    background: var(--line-300);
    border-radius: 8px;
    border: 2px solid var(--bg-white);
}

::-webkit-scrollbar-thumb:hover {
    background: var(--ink-400);
}

.app {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

/* ============================================
   Header
   ============================================ */
.header {
    background: rgba(255, 255, 255, 0.92);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-bottom: 1px solid var(--line-200);
    padding: 0 24px;
    height: 60px;
    position: sticky;
    top: 0;
    z-index: 100;
    display: flex;
    justify-content: space-between;
    align-items: center;
    transition: border-color 0.25s var(--ease-out), box-shadow 0.25s var(--ease-out);
}

.header.scrolled {
    box-shadow: 0 2px 12px rgba(16, 30, 54, 0.06);
}

.header-inner {
    width: 100%;
    max-width: 1120px;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.logo {
    font-size: 20px;
    font-weight: 800;
    letter-spacing: -0.03em;
    color: var(--ink-900);
    line-height: 1;
}

.logo .logo-accent {
    color: var(--primary);
}

.logo a {
    color: inherit;
    text-decoration: none;
}

.header.minimal {
    height: 52px;
}

.header.minimal .logo {
    font-size: 17px;
}

.user-menu {
    display: flex;
    gap: 8px;
    align-items: center;
}

.menu-link {
    color: var(--ink-600);
    text-decoration: none;
    font-size: 14px;
    font-weight: 600;
    transition: color 0.2s var(--ease-out), background 0.2s var(--ease-out);
    padding: 8px 12px;
    border-radius: var(--radius-sm);
}

.menu-link:hover {
    color: var(--ink-900);
    background: var(--fill-100);
}

.menu-link.menu-cta {
    color: var(--primary);
    background: var(--primary-tint);
}

.menu-link.menu-cta:hover {
    color: var(--primary-strong);
    background: var(--primary-tint-strong);
}

.account-menu { margin-left:auto; }
.account-menu-items { display:flex; align-items:center; justify-content:flex-end; gap:4px; }
.account-menu .menu-link { white-space:nowrap; }
.account-menu .menu-link.is-active { color:var(--primary); background:var(--primary-tint); }
.account-menu .account-name { max-width:150px; overflow:hidden; padding:7px 10px; color:var(--ink-700); text-overflow:ellipsis; white-space:nowrap; }
.account-menu .menu-logout { margin-left:4px; padding-left:16px; border-left:1px solid var(--line-200); border-radius:0 var(--radius-sm) var(--radius-sm) 0; color:var(--ink-600); }
.account-menu .menu-logout:hover { color:#c63d3d; background:#fff2f2; }
.account-menu-toggle { display:none; align-items:center; gap:6px; padding:8px 10px; border:1px solid var(--line-200); border-radius:9px; background:#fff; color:var(--ink-700); font:inherit; font-size:12px; font-weight:750; cursor:pointer; }
.account-menu-toggle svg { width:14px; height:14px; transition:transform .18s ease; }
.account-menu.is-open .account-menu-toggle svg { transform:rotate(180deg); }
.header-inner { position:relative; }
.header-center-jobs { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); display:inline-flex; align-items:center; gap:7px; padding:8px 13px; border-radius:10px; color:var(--ink-700); font-size:13px; font-weight:750; text-decoration:none; white-space:nowrap; transition:background .18s ease,color .18s ease; }
.header-center-jobs svg { width:17px; height:17px; color:var(--primary); }
.header-center-jobs:hover,.header-center-jobs.is-active { color:var(--primary); background:var(--primary-tint); }

@media (max-width: 760px) {
    .header-center-jobs { left:auto; right:54px; padding:8px; transform:translateY(-50%); }
    .header-center-jobs span { display:none; }
    .account-menu { position:relative; }
    .account-menu-toggle { display:flex; }
    .account-menu-items { position:absolute; top:calc(100% + 9px); right:0; z-index:120; width:210px; display:none; padding:8px; border:1px solid var(--line-200); border-radius:13px; background:#fff; box-shadow:0 18px 42px rgba(25,43,70,.16); }
    .account-menu.is-open .account-menu-items { display:flex; flex-direction:column; align-items:stretch; }
    .header .account-menu.is-open .account-menu-items .menu-link,.header .account-menu.is-open .account-menu-items .menu-user { width:100%; display:flex; padding:10px 11px; border:0; border-radius:8px; }
    .account-menu .account-name { order:-1; max-width:none; margin-bottom:3px; background:var(--fill-50); font-size:12px; }
    .account-menu .menu-logout { margin:4px 0 0; padding-top:11px; border-top:1px solid var(--line-200); color:#a93636; }
}

/* ============================================
   Layout
   ============================================ */
.container {
    flex: 1;
    max-width: 1120px;
    margin: 0 auto;
    width: 100%;
    padding: 0 24px 40px;
}

section h3 {
    font-size: 22px;
    font-weight: 700;
    letter-spacing: -0.02em;
    color: var(--ink-900);
    margin-bottom: 20px;
}

.section-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 20px;
}

.section-head h3 {
    margin-bottom: 0;
}

.section-more {
    font-size: 14px;
    font-weight: 600;
    color: var(--ink-500);
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    transition: color 0.2s var(--ease-out);
}

.section-more:hover {
    color: var(--primary);
}

.section-more svg {
    width: 15px;
    height: 15px;
}

/* ============================================
   Hero
   ============================================ */
.hero {
    text-align: center;
    padding: 68px 0 40px;
    margin-bottom: 20px;
}

.hero h2 {
    font-size: 44px;
    font-weight: 800;
    letter-spacing: -0.035em;
    line-height: 1.25;
    color: var(--ink-900);
    margin-bottom: 16px;
    text-wrap: balance;
}

.hero h2 .hero-accent {
    color: var(--primary);
}

.hero p {
    font-size: 17px;
    color: var(--ink-600);
    margin: 0 auto 32px;
    max-width: 560px;
}

/* ============================================
   Search
   ============================================ */
.search-form {
    max-width: 640px;
    margin: 0 auto;
    animation: rise 0.7s var(--ease-out) both;
}

.search-box {
    display: flex;
    align-items: center;
    gap: 8px;
    background: var(--bg-white);
    border: 1.5px solid var(--line-200);
    border-radius: 999px;
    padding: 8px 8px 8px 22px;
    box-shadow: var(--shadow-md);
    transition: border-color 0.2s var(--ease-out), box-shadow 0.2s var(--ease-out);
}

.search-box:focus-within {
    border-color: var(--primary);
    box-shadow: 0 0 0 4px var(--primary-tint), var(--shadow-md);
}

.search-icon {
    width: 22px;
    height: 22px;
    color: var(--ink-500);
    flex-shrink: 0;
}

.search-input {
    flex: 1;
    min-width: 0;
    border: none;
    background: transparent;
    font-size: 16px;
    font-family: inherit;
    color: var(--ink-900);
    padding: 10px 0;
}

.search-input:focus {
    outline: none;
}

.search-input::placeholder {
    color: var(--ink-500);
}

.search-btn {
    padding: 12px 26px;
    background: var(--primary);
    color: #ffffff;
    border: none;
    border-radius: 999px;
    cursor: pointer;
    font-weight: 700;
    font-size: 15px;
    font-family: inherit;
    white-space: nowrap;
    transition: background 0.2s var(--ease-out), transform 0.15s var(--ease-out);
}

.search-btn:hover {
    background: var(--primary-strong);
}

.search-btn:active {
    transform: scale(0.97);
}

.search-hints {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 18px;
    font-size: 13px;
    color: var(--ink-500);
}

.search-hints .hint-label {
    font-weight: 600;
    margin-right: 2px;
}

.hint-chip {
    padding: 6px 12px;
    border-radius: 999px;
    background: var(--fill-100);
    color: var(--ink-600);
    text-decoration: none;
    font-weight: 500;
    transition: background 0.2s var(--ease-out), color 0.2s var(--ease-out);
}

.hint-chip:hover {
    background: var(--primary-tint);
    color: var(--primary);
}

/* ============================================
   지역 필터
   ============================================ */
.filter-section {
    margin-bottom: 56px;
}

.filter-chips {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    padding-bottom: 8px;
    scroll-behavior: smooth;
    scrollbar-width: thin;
}

.chip {
    padding: 9px 16px;
    border: 1px solid var(--line-200);
    background: var(--bg-white);
    border-radius: 999px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
    text-decoration: none;
    color: var(--ink-600);
    transition: border-color 0.2s var(--ease-out), color 0.2s var(--ease-out),
        background 0.2s var(--ease-out);
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

.chip:hover {
    border-color: var(--ink-400);
    color: var(--ink-900);
}

.chip.active {
    background: var(--ink-900);
    color: #ffffff;
    border-color: var(--ink-900);
}

.chip .count {
    font-size: 12px;
    font-weight: 500;
    opacity: 0.65;
    font-variant-numeric: tabular-nums;
}

/* ============================================
   카테고리
   ============================================ */
.category-section {
    margin-bottom: 64px;
}

.category-grid {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 12px;
}

.category-card {
    background: var(--bg-white);
    border: 1px solid var(--line-200);
    border-radius: var(--radius-md);
    padding: 22px 12px 18px;
    text-align: center;
    text-decoration: none;
    transition: border-color 0.2s var(--ease-out), box-shadow 0.25s var(--ease-out),
        transform 0.25s var(--ease-out);
}

.category-card:hover {
    border-color: var(--line-300);
    box-shadow: var(--shadow-lg);
    transform: translateY(-3px);
}

.category-icon {
    width: 52px;
    height: 52px;
    margin: 0 auto 12px;
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.25s var(--ease-out);
}

.category-icon svg {
    width: 26px;
    height: 26px;
}

.category-card:hover .category-icon {
    transform: scale(1.08);
}

.category-name {
    font-size: 14px;
    font-weight: 700;
    margin-bottom: 3px;
    color: var(--ink-900);
    letter-spacing: -0.01em;
}

.category-count {
    font-size: 12px;
    color: var(--ink-500);
    font-weight: 500;
    font-variant-numeric: tabular-nums;
}

/* 카테고리 틴트 */
.cat-restaurants .category-icon, .biz-thumb.cat-restaurants, .detail-image.cat-restaurants { background: #fff1e5; color: #e8590c; }
.cat-salons .category-icon, .biz-thumb.cat-salons, .detail-image.cat-salons { background: #ffeaf2; color: #d6336c; }
.cat-hospitals .category-icon, .biz-thumb.cat-hospitals, .detail-image.cat-hospitals { background: #e6f8f1; color: #0ca678; }
.cat-repair .category-icon, .biz-thumb.cat-repair, .detail-image.cat-repair { background: #edf1fe; color: #4c6ef5; }
.cat-realestate .category-icon, .biz-thumb.cat-realestate, .detail-image.cat-realestate { background: #eaf7ec; color: #2f9e44; }
.cat-education .category-icon, .biz-thumb.cat-education, .detail-image.cat-education { background: #f1edfe; color: #7048e8; }
.cat-default .category-icon, .biz-thumb.cat-default, .detail-image.cat-default { background: var(--fill-100); color: var(--ink-500); }

/* ============================================
   업체 카드
   ============================================ */
.recent-section {
    margin-bottom: 24px;
}

.business-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    margin-bottom: 24px;
}

.business-card {
    background: var(--bg-white);
    border: 1px solid var(--line-200);
    border-radius: var(--radius-lg);
    overflow: hidden;
    text-decoration: none;
    transition: border-color 0.2s var(--ease-out), box-shadow 0.25s var(--ease-out),
        transform 0.25s var(--ease-out);
    display: flex;
    flex-direction: column;
}

.business-card:hover {
    border-color: var(--line-300);
    transform: translateY(-4px);
    box-shadow: var(--shadow-lg);
}

.business-image,
.biz-thumb {
    width: 100%;
    height: 148px;
    background: var(--fill-100);
    color: var(--ink-400);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 44px;
}

.biz-thumb {
    position: relative;
}

.biz-thumb svg {
    width: 40px;
    height: 40px;
    opacity: 0.9;
}

.biz-thumb .thumb-initial {
    font-size: 44px;
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1;
    user-select: none;
}

.biz-thumb .thumb-icon {
    position: absolute;
    right: 14px;
    bottom: 12px;
    display: flex;
    opacity: 0.55;
}

.biz-thumb .thumb-icon svg {
    width: 22px;
    height: 22px;
}

.biz-thumb.has-media { overflow:hidden; background:#eef2f7; }
.biz-thumb-image { width:100%; height:100%; display:block; object-fit:cover; transition:transform .35s var(--ease-out); }
.business-card:hover .biz-thumb-image { transform:scale(1.035); }
.biz-thumb.media-logo { padding:22px; background:#fff; }
.biz-thumb.media-logo .biz-thumb-image { object-fit:contain; }
.biz-thumb.has-media .thumb-icon { right:10px; bottom:10px; width:30px; height:30px; display:grid; place-items:center; border-radius:10px; background:rgba(255,255,255,.9); color:currentColor; opacity:1; box-shadow:0 4px 12px rgba(23,37,58,.12); }
.biz-thumb.has-media .thumb-icon svg { width:16px; height:16px; }

.business-info {
    padding: 18px 18px 16px;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.business-info h4 {
    font-size: 17px;
    font-weight: 700;
    color: var(--ink-900);
    line-height: 1.35;
    letter-spacing: -0.015em;
}

.business-info .category {
    font-size: 13px;
    color: var(--ink-500);
    font-weight: 500;
    order: -1;
}

.business-info .rating {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 14px;
    font-weight: 700;
    color: var(--ink-900);
    font-variant-numeric: tabular-nums;
}

.stars {
    color: var(--star);
    letter-spacing: 0;
    display: inline-flex;
    align-items: center;
}

.stars svg {
    width: 15px;
    height: 15px;
}

.business-info .meta {
    font-size: 13px;
    color: var(--ink-500);
    margin-top: 6px;
    display: flex;
    align-items: center;
    gap: 4px;
}

.business-info .meta svg {
    width: 14px;
    height: 14px;
    color: var(--ink-400);
    flex-shrink: 0;
}

/* ============================================
   업체 상세
   ============================================ */
.business-detail {
    max-width: 1180px;
    margin: 0 auto;
    padding-top: 32px;
}

.detail-layout {
    display: grid;
    grid-template-columns: minmax(0, 3fr) minmax(280px, 1fr);
    gap: 20px;
    align-items: start;
}

.detail-header {
    text-align: center;
    margin-bottom: 28px;
    background: var(--fill-50);
    border: 1px solid var(--line-200);
    padding: 40px 24px;
    border-radius: var(--radius-lg);
}

.detail-image {
    width: 88px;
    height: 88px;
    margin: 0 auto 16px;
    border-radius: var(--radius-lg);
    display: flex;
    align-items: center;
    justify-content: center;
}

.detail-image svg {
    width: 40px;
    height: 40px;
}

.detail-header h1 {
    font-size: 32px;
    font-weight: 800;
    letter-spacing: -0.03em;
    margin-bottom: 12px;
    color: var(--ink-900);
}

.category-badge {
    display: inline-block;
    background: var(--primary-tint);
    color: var(--primary);
    padding: 6px 14px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 700;
    margin-bottom: 14px;
}

.rating-badge {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    font-size: 18px;
    font-weight: 700;
    margin-bottom: 8px;
    color: var(--ink-900);
    font-variant-numeric: tabular-nums;
}

.rating-badge svg {
    width: 17px;
    height: 17px;
    color: var(--star);
    flex-shrink: 0;
}

.review-count {
    font-size: 13px;
    color: var(--ink-500);
    font-weight: 500;
}

.detail-content {
    background: var(--bg-white);
    border: 1px solid var(--line-200);
    border-radius: var(--radius-lg);
    padding: 36px;
}

.business-sidebar {
    display: flex;
    flex-direction: column;
    gap: 16px;
    position: sticky;
    top: 20px;
}

.side-card {
    background: var(--bg-white);
    border: 1px solid var(--line-200);
    border-radius: var(--radius-lg);
    padding: 20px;
}

.side-eyebrow {
    display: block;
    margin-bottom: 5px;
    color: var(--primary);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.12em;
}

.side-card h3 {
    color: var(--ink-900);
    font-size: 17px;
    font-weight: 800;
}

.cart-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
    padding-bottom: 15px;
    border-bottom: 1px solid var(--line-200);
}

.cart-head h3 span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 22px;
    height: 22px;
    margin-left: 4px;
    padding: 0 6px;
    border-radius: 999px;
    background: var(--primary-tint);
    color: var(--primary);
    font-size: 11px;
}

.cart-clear,
.cart-item-remove {
    border: 0;
    background: transparent;
    color: var(--ink-500);
    font-family: inherit;
    cursor: pointer;
}

.cart-clear {
    padding: 4px 0;
    font-size: 11px;
    font-weight: 600;
}

.cart-clear:hover,
.cart-item-remove:hover {
    color: var(--danger);
}

.cart-empty {
    display: flex;
    min-height: 150px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    text-align: center;
}

.cart-empty-icon {
    display: flex;
    width: 38px;
    height: 38px;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: var(--fill-100);
    color: var(--ink-400);
    font-size: 20px;
}

.cart-empty p {
    color: var(--ink-500);
    font-size: 13px;
    line-height: 1.55;
    white-space: pre-line;
}

.cart-switch {
    margin-top: 4px;
}

.cart-items {
    max-height: 380px;
    overflow-y: auto;
}

.cart-item {
    padding: 15px 0;
    border-bottom: 1px solid var(--fill-100);
}

.cart-item:last-child {
    border-bottom: 0;
}

.cart-item-top,
.cart-item-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.cart-item-top strong {
    color: var(--ink-900);
    font-size: 13px;
}

.cart-item-remove {
    padding: 0;
    font-size: 20px;
    line-height: 1;
}

.cart-item-options {
    margin: 5px 0 10px;
    color: var(--ink-500);
    font-size: 11px;
    line-height: 1.45;
}

.cart-item-bottom > strong {
    color: var(--ink-900);
    font-size: 13px;
    font-variant-numeric: tabular-nums;
}

.cart-qty,
.quantity-control {
    display: inline-flex;
    align-items: center;
    border: 1px solid var(--line-200);
    border-radius: 999px;
    overflow: hidden;
}

.cart-qty button,
.quantity-control button {
    display: flex;
    align-items: center;
    justify-content: center;
    border: 0;
    background: var(--bg-white);
    color: var(--ink-700);
    cursor: pointer;
}

.cart-qty button {
    width: 25px;
    height: 25px;
    font-size: 12px;
}

.cart-qty span {
    min-width: 19px;
    text-align: center;
    font-size: 11px;
    font-weight: 700;
}

.cart-summary {
    padding-top: 15px;
    border-top: 1px solid var(--line-200);
}

.cart-summary > div {
    display: flex;
    align-items: center;
    justify-content: space-between;
    color: var(--ink-900);
    font-size: 14px;
    font-weight: 700;
}

.cart-summary strong {
    font-size: 18px;
    font-variant-numeric: tabular-nums;
}

.cart-summary p {
    margin-top: 6px;
    color: var(--ink-500);
    font-size: 10px;
    line-height: 1.45;
}

.cart-checkout-button {
    width: 100%;
    margin-top: 14px;
    padding: 11px 12px;
    font-size: 13px;
}

.checkout-wrap {
    max-width: 1040px;
    padding-top: 34px;
}

.checkout-head {
    margin-bottom: 22px;
}

.checkout-head > a {
    color: var(--ink-500);
    font-size: 13px;
    font-weight: 600;
    text-decoration: none;
}

.checkout-head h2 {
    margin-top: 10px;
    color: var(--ink-900);
    font-size: 28px;
    font-weight: 800;
}

.checkout-head p {
    color: var(--ink-500);
    font-size: 14px;
}

.checkout-grid,
.order-admin-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.55fr) minmax(300px, 0.75fr);
    gap: 20px;
    align-items: start;
}

.checkout-summary {
    position: sticky;
    top: 20px;
}

.order-type-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
    margin: 18px 0 24px;
}

.order-type-grid label {
    position: relative;
}

.order-type-grid input {
    position: absolute;
    opacity: 0;
}

.order-type-grid span {
    display: block;
    padding: 11px 8px;
    border: 1px solid var(--line-200);
    border-radius: var(--radius-sm);
    color: var(--ink-600);
    font-size: 13px;
    font-weight: 700;
    text-align: center;
    cursor: pointer;
}

.order-type-grid input:checked + span {
    border-color: var(--primary);
    background: var(--primary-tint);
    color: var(--primary);
}

.checkout-section-title {
    margin: 4px 0 10px;
    color: var(--ink-900);
    font-size: 15px;
}

.payment-method-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
    margin-bottom: 24px;
}

.payment-method-grid label { position:relative; }
.payment-method-grid input { position:absolute; opacity:0; }
.payment-method-grid label > span { display:flex; min-height:82px; flex-direction:column; justify-content:center; padding:12px; border:1px solid var(--line-200); border-radius:var(--radius-sm); cursor:pointer; }
.payment-method-grid strong { color:var(--ink-900); font-size:13px; }
.payment-method-grid small { margin-top:3px; color:var(--ink-500); font-size:10px; }
.payment-method-grid em { margin-top:5px; color:var(--warning); font-size:9px; font-style:normal; font-weight:700; }
.payment-method-grid input:checked + span { border-color:var(--primary); background:var(--primary-tint); }
.payment-method-grid input:disabled + span { background:var(--fill-50); opacity:.6; cursor:not-allowed; }
.payment-error-icon { background:var(--danger-tint); color:var(--danger); }
.order-status.payment_pending { background:var(--warning-tint); color:var(--warning); }

.checkout-item,
.admin-order-item {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
    padding: 13px 0;
    border-bottom: 1px solid var(--fill-100);
}

.checkout-item strong,
.admin-order-item strong {
    color: var(--ink-900);
    font-size: 13px;
}

.checkout-item p,
.admin-order-item p {
    margin-top: 3px;
    color: var(--ink-500);
    font-size: 11px;
}

.checkout-item > span,
.admin-order-item > span {
    color: var(--ink-700);
    font-size: 13px;
    font-weight: 700;
    white-space: nowrap;
}

.checkout-total {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid var(--line-200);
    color: var(--ink-900);
    font-weight: 700;
}

.checkout-total strong {
    font-size: 20px;
}

.checkout-summary > .btn {
    width: 100%;
    margin-top: 18px;
}

.checkout-summary > p {
    margin-top: 8px;
    color: var(--ink-500);
    font-size: 10px;
    text-align: center;
}

.order-success-card {
    max-width: 560px;
    margin: 42px auto;
    padding: 44px;
    border: 1px solid var(--line-200);
    border-radius: var(--radius-lg);
    background: var(--bg-white);
    text-align: center;
}

.order-success-icon {
    display: flex;
    width: 54px;
    height: 54px;
    align-items: center;
    justify-content: center;
    margin: 0 auto 18px;
    border-radius: 999px;
    background: var(--success-tint);
    color: var(--success);
    font-size: 24px;
    font-weight: 800;
}

.order-success-card h2 { color: var(--ink-900); font-size: 26px; }
.order-success-card > p:not(.side-eyebrow) { margin-top: 8px; color: var(--ink-500); font-size: 14px; }
.order-number { display:flex; justify-content:space-between; margin:24px 0; padding:16px; border-radius:var(--radius-sm); background:var(--fill-50); color:var(--ink-600); font-size:13px; }
.order-number strong { color:var(--ink-900); }
.order-status { display:inline-flex; padding:5px 9px; border-radius:999px; background:var(--fill-100); color:var(--ink-600); font-size:11px; font-weight:700; }
.order-status.pending { background:var(--warning-tint); color:var(--warning); }
.order-status.confirmed,.order-status.preparing { background:var(--primary-tint); color:var(--primary); }
.order-status.ready,.order-status.completed { background:var(--success-tint); color:var(--success); }
.order-status.cancelled { background:var(--danger-tint); color:var(--danger); }
.order-link { color:var(--primary); font-weight:800; text-decoration:none; }
.table-scroll { overflow-x:auto; }
.order-success-actions { justify-content:center; }
.order-history-wrap { max-width:760px; padding-top:34px; }
.order-search { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:9px; margin-bottom:24px; }

@media (max-width: 800px) {
    .checkout-grid,.order-admin-grid { grid-template-columns:1fr; }
    .checkout-summary { position:static; }
}

@media (max-width: 480px) {
    .order-type-grid { grid-template-columns:1fr; }
    .payment-method-grid { grid-template-columns:1fr; }
    .order-success-card { padding:30px 20px; }
    .order-search { grid-template-columns:1fr; }
}

/* ============================================
   Local jobs: public board, detail and owner tools
   ============================================ */
.jobs-page,.job-detail-page { padding-top:42px; padding-bottom:72px; }
.jobs-hero { max-width:720px; margin:0 auto 30px; text-align:center; }
.jobs-kicker { display:inline-block; color:var(--primary); font-size:10px; font-weight:850; letter-spacing:.14em; }
.jobs-hero h2 { margin:9px 0 9px; color:var(--ink-900); font-size:clamp(28px,4vw,42px); line-height:1.16; letter-spacing:-.045em; }
.jobs-hero p { margin:0; color:var(--ink-500); font-size:15px; }
.jobs-filter { display:grid; grid-template-columns:120px 1fr 150px minmax(210px,1.45fr) auto; align-items:end; gap:10px; margin-bottom:34px; padding:18px; border:1px solid var(--line-200); border-radius:18px; background:#fff; box-shadow:0 9px 28px rgba(28,48,78,.06); }
.jobs-filter label { display:grid; gap:7px; min-width:0; }
.jobs-filter label > span { color:var(--ink-600); font-size:11px; font-weight:750; }
.jobs-filter select,.jobs-filter input { width:100%; height:44px; padding:0 12px; border:1px solid var(--line-200); border-radius:10px; background:var(--fill-50); color:var(--ink-800); font:inherit; font-size:13px; outline:none; }
.jobs-filter select:focus,.jobs-filter input:focus { border-color:var(--primary); box-shadow:0 0 0 3px rgba(35,104,220,.09); }
.jobs-filter .btn { height:44px; }
.jobs-result-head { display:flex; align-items:flex-end; justify-content:space-between; gap:18px; margin-bottom:14px; }
.jobs-result-head h3 { margin:0 0 4px; font-size:20px; }
.jobs-result-head p { margin:0; color:var(--ink-500); font-size:12px; }
.jobs-result-head > a { color:var(--primary); font-size:12px; font-weight:700; }
.jobs-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.job-card { position:relative; display:flex; align-items:center; gap:16px; min-width:0; padding:20px; border:1px solid var(--line-200); border-radius:16px; background:#fff; color:inherit; text-decoration:none; transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease; }
.job-card:hover { transform:translateY(-2px); border-color:#b9cdf2; box-shadow:0 12px 27px rgba(31,65,116,.09); }
.job-card-logo { display:grid; place-items:center; width:48px; height:48px; flex:0 0 48px; border-radius:14px; background:linear-gradient(145deg,#edf4ff,#e2edff); color:var(--primary); font-size:18px; font-weight:850; }
.job-card-main { min-width:0; flex:1; }
.job-card-top { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.job-card-top time { color:var(--ink-400); font-size:10px; }
.job-type-badge { display:inline-flex; align-items:center; min-height:24px; padding:4px 8px; border-radius:999px; background:var(--primary-tint); color:var(--primary); font-size:10px; font-weight:800; }
.job-card h3 { margin:9px 0 5px; overflow:hidden; color:var(--ink-900); font-size:16px; line-height:1.35; text-overflow:ellipsis; white-space:nowrap; }
.job-business-name { display:flex; align-items:center; gap:6px; margin:0 0 10px; color:var(--ink-600); font-size:12px; font-weight:650; }
.job-business-name span { color:var(--ink-400); font-size:11px; }
.job-card-meta,.job-detail-facts { display:flex; align-items:center; flex-wrap:wrap; gap:8px 14px; color:var(--ink-500); font-size:11px; }
.job-card-meta span,.job-detail-facts span { display:inline-flex; align-items:center; gap:5px; }
.job-card-meta svg,.job-detail-facts svg { width:14px; height:14px; color:var(--primary); }
.job-pay { color:#137754 !important; font-weight:750; }
.job-card-arrow { color:var(--ink-300); font-size:25px; }
.jobs-empty { padding:62px 24px; border:1px dashed var(--line-300); border-radius:18px; background:var(--fill-50); text-align:center; }
.jobs-empty-icon { display:grid; place-items:center; width:54px; height:54px; margin:0 auto 14px; border-radius:50%; background:#fff; color:var(--ink-400); font-size:24px; }
.jobs-empty h2,.jobs-empty h3 { margin:0 0 7px; }
.jobs-empty p { margin:0 0 18px; color:var(--ink-500); font-size:13px; }
.jobs-owner-cta { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-top:28px; padding:24px 28px; border-radius:18px; background:linear-gradient(120deg,#132b50,#1d4f96); color:#fff; }
.jobs-owner-cta strong { font-size:17px; }.jobs-owner-cta p { margin:5px 0 0; color:#c9d8ef; font-size:12px; }
.jobs-owner-cta .btn { background:#fff; color:#164d9c; }

.job-breadcrumb { display:flex; align-items:center; gap:8px; margin-bottom:18px; color:var(--ink-400); font-size:12px; }
.job-breadcrumb a { color:var(--primary); text-decoration:none; }
.job-detail-layout { display:grid; grid-template-columns:minmax(0,1fr) 310px; align-items:start; gap:18px; }
.job-detail-card,.job-contact-card { border:1px solid var(--line-200); border-radius:19px; background:#fff; }
.job-detail-head { padding:35px 38px 30px; border-bottom:1px solid var(--line-200); }
.job-detail-head h2 { margin:13px 0 8px; font-size:clamp(25px,3.4vw,36px); line-height:1.2; letter-spacing:-.04em; }
.job-detail-company { margin:0 0 18px; color:var(--ink-600); font-size:14px; font-weight:700; }
.job-description { min-height:330px; padding:30px 38px 45px; }
.job-description h3 { margin:0 0 18px; font-size:17px; }
.job-description div { color:var(--ink-700); font-size:14px; line-height:1.85; }
.job-contact-card { position:sticky; top:82px; padding:26px; }
.job-contact-card h3 { margin:7px 0 8px; font-size:20px; }.job-contact-card p { margin:0 0 20px; color:var(--ink-500); font-size:12px; line-height:1.55; }
.job-contact-card .btn { width:100%; margin-top:8px; text-align:center; }
.job-business-link { display:flex; justify-content:space-between; margin-top:20px; padding-top:17px; border-top:1px solid var(--line-200); color:var(--ink-700); font-size:12px; font-weight:750; text-decoration:none; }

.dashboard-jobs-layout { display:grid; grid-template-columns:minmax(0,1fr) 250px; align-items:start; gap:18px; margin-bottom:18px; }
.dashboard-job-form { margin:0; }.job-form-icon { display:grid; place-items:center; width:38px; height:38px; border-radius:11px; background:var(--primary-tint); color:var(--primary); font-size:20px; }
.dashboard-job-form-actions { display:flex; gap:9px; margin-top:4px; }
.dashboard-job-summary { margin:0; text-align:center; }.dashboard-job-summary h3 { margin:7px 0 16px; }.dashboard-job-summary > strong { display:block; color:var(--primary); font-size:42px; line-height:1; }.dashboard-job-summary > p { margin:8px 0 20px; color:var(--ink-500); font-size:12px; }.dashboard-job-summary > a { color:var(--primary); font-size:12px; font-weight:750; }
.dashboard-jobs-empty { padding:35px; border-radius:12px; background:var(--fill-50); color:var(--ink-500); text-align:center; font-size:13px; }
.dashboard-job-list { display:grid; gap:9px; }
.dashboard-job-row { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:17px 18px; border:1px solid var(--line-200); border-radius:13px; }
.dashboard-job-row.is-closed { opacity:.58; background:var(--fill-50); }
.dashboard-job-row-top { display:flex; gap:7px; }.job-status-badge { display:inline-flex; align-items:center; padding:4px 8px; border-radius:999px; background:#eaf8f2; color:#137754; font-size:10px; font-weight:800; }.is-closed .job-status-badge { background:#eef0f3; color:var(--ink-500); }
.dashboard-job-row h4 { margin:8px 0 4px; font-size:15px; }.dashboard-job-row p { margin:0; color:var(--ink-500); font-size:11px; }
.dashboard-job-actions { display:flex; align-items:center; gap:6px; flex:0 0 auto; }.dashboard-job-actions form { margin:0; }

@media (max-width: 900px) {
    .jobs-filter { grid-template-columns:1fr 1fr; }.jobs-search-field { grid-column:1 / -1; }.jobs-filter .btn { grid-column:1 / -1; }
    .job-detail-layout,.dashboard-jobs-layout { grid-template-columns:1fr; }.job-contact-card { position:static; }
}
@media (max-width: 680px) {
    .jobs-page,.job-detail-page { padding-top:26px; }.jobs-list { grid-template-columns:1fr; }.jobs-filter { grid-template-columns:1fr 1fr; padding:13px; }.jobs-filter label:nth-child(3),.jobs-search-field { grid-column:1 / -1; }
    .jobs-owner-cta { align-items:flex-start; flex-direction:column; padding:22px; }.jobs-owner-cta .btn { width:100%; }
    .job-detail-head,.job-description { padding:25px 21px; }.job-description { min-height:240px; }
    .dashboard-job-row { align-items:flex-start; flex-direction:column; }.dashboard-job-actions { width:100%; flex-wrap:wrap; }
}

/* Favorites, promotions and AI menu import */
[hidden] { display:none !important; }
.detail-title-row { display:flex; align-items:center; justify-content:center; gap:14px; flex-wrap:wrap; }
.detail-title-row h1 { margin:0; }
.favorite-form { margin:0; }
.favorite-button { border:1px solid var(--line-200); background:#fff; color:var(--ink-500); border-radius:999px; padding:8px 13px; display:flex; align-items:center; gap:6px; cursor:pointer; font:inherit; box-shadow:0 3px 12px rgba(15,23,42,.06); }
.favorite-button span { color:#cbd5e1; font-size:19px; line-height:1; }
.favorite-button em { font-style:normal; font-size:13px; font-weight:700; }
.favorite-button:hover,.favorite-button.is-favorite { border-color:#f5b93f; background:#fff9e9; color:#8b5a00; }
.favorite-button.is-favorite span { color:#f5a900; }
.favorites-page { padding-top:40px; padding-bottom:70px; }
.empty-state { text-align:center; padding:70px 24px; }
.empty-state h3 { margin-bottom:8px; }

.promo-layout { display:grid; grid-template-columns:minmax(0,1fr) 260px; gap:20px; align-items:start; }
.promo-icon { width:48px; height:48px; border-radius:15px; display:grid; place-items:center; background:#eef5ff; color:var(--primary); font-size:20px; font-weight:800; }
.promo-guide { position:sticky; top:20px; }
.promo-stat { display:flex; align-items:baseline; justify-content:space-between; padding:17px 0; border-bottom:1px solid var(--line-200); }
.promo-stat strong { font-size:29px; }
.promo-stat span { color:var(--ink-500); font-size:13px; }
.promo-code-input { text-transform:uppercase; font-family:ui-monospace,SFMono-Regular,Consolas,monospace; letter-spacing:.08em; font-weight:700; }
.promo-customer-select { min-height:145px; }
.promo-list { display:grid; gap:10px; margin-top:18px; }
.promo-row { display:grid; grid-template-columns:190px 1fr auto; gap:18px; align-items:center; border:1px solid var(--line-200); border-radius:15px; padding:16px; }
.promo-row.muted { opacity:.58; background:var(--surface-50); }
.promo-code-box { background:#f4f7ff; border:1px dashed #adc8ff; border-radius:12px; padding:12px 14px; }
.promo-code-box strong { display:block; color:var(--primary); font-family:ui-monospace,SFMono-Regular,Consolas,monospace; letter-spacing:.07em; }
.promo-code-box span,.promo-row-main small { color:var(--ink-500); font-size:12px; }
.promo-row-main h4,.promo-row-main p { margin:0 0 5px; }
.promo-row-main p { font-size:13px; color:var(--ink-600); }
.promo-actions { display:flex; gap:6px; }
.promo-code-field { border-top:1px solid var(--line-200); padding-top:18px; }
.promo-code-entry { display:flex; gap:12px; align-items:center; }
.promo-code-entry span { color:var(--ink-500); font-size:12px; min-width:180px; }
.promotion-success { color:#087a45!important; font-weight:700; }
.benefit-card { border-color:#f1d58c; background:linear-gradient(145deg,#fffdf6,#fff8df); }
.benefit-list { display:grid; gap:10px; margin-top:13px; }
.benefit-item { position:relative; border:1px solid #f0ddb0; background:#fff; border-radius:12px; padding:13px; }
.benefit-item strong { display:block; padding-right:70px; font-size:14px; }
.benefit-item p,.benefit-item small { margin:4px 0 0; color:var(--ink-500); font-size:12px; }
.benefit-code { position:absolute; top:11px; right:11px; color:#9a6800; background:#fff4cc; border-radius:7px; padding:4px 7px; font:700 11px ui-monospace,SFMono-Regular,Consolas,monospace; }

.menu-ai-banner { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:22px 25px; margin-bottom:20px; border:1px solid #cfe0ff; border-radius:18px; background:linear-gradient(120deg,#f6f9ff,#eef5ff); }
.menu-ai-banner h3,.menu-ai-banner p { margin:3px 0; }
.menu-ai-banner p { color:var(--ink-500); font-size:13px; }
.menu-import-hero { display:grid; grid-template-columns:1fr 390px; gap:38px; padding:34px; background:linear-gradient(135deg,#fff,#f4f8ff); }
.menu-import-copy h3 { font-size:26px; margin:8px 0 10px; }
.menu-import-copy p,.menu-import-copy li { color:var(--ink-600); line-height:1.7; }
.menu-upload-card { border:1px solid var(--line-200); background:#fff; border-radius:17px; padding:18px; box-shadow:0 12px 35px rgba(15,23,42,.07); }
.menu-dropzone { min-height:170px; border:2px dashed #b8cae9; background:#f8fbff; border-radius:14px; display:flex; flex-direction:column; justify-content:center; align-items:center; text-align:center; cursor:pointer; margin-bottom:12px; }
.menu-dropzone span { font-weight:750; color:var(--primary); }
.menu-dropzone small { margin-top:7px; color:var(--ink-500); }
.menu-dropzone input { margin-top:16px; max-width:230px; }
.menu-upload-card .btn { width:100%; }
.api-setup-note,.privacy-note { margin:10px 0 0; font-size:12px; color:var(--ink-500); line-height:1.5; }
.menu-import-review { display:grid; grid-template-columns:320px 1fr; gap:25px; align-items:start; }
.menu-import-review>img { width:100%; max-height:620px; object-fit:contain; border-radius:14px; border:1px solid var(--line-200); background:#f7f7f7; position:sticky; top:20px; }
.import-items { display:grid; gap:9px; margin-bottom:18px; max-height:680px; overflow:auto; padding-right:5px; }
.import-item { display:grid; grid-template-columns:56px 1fr; gap:10px; align-items:start; border:1px solid var(--line-200); border-radius:13px; padding:11px; background:#fff; }
.import-check { display:flex; flex-direction:column; align-items:center; gap:6px; padding-top:10px; font-size:11px; color:var(--ink-500); }
.import-fields { display:grid; grid-template-columns:1.5fr 1fr 95px; gap:7px; }
.import-description { grid-column:1/-1; }
.import-history { display:grid; gap:8px; }
.import-history>div { display:flex; align-items:center; gap:12px; border-bottom:1px solid var(--line-200); padding:10px 0; }
.import-history small { color:var(--ink-500); margin-right:auto; }

@media(max-width:800px){
 .promo-layout,.menu-import-hero,.menu-import-review { grid-template-columns:1fr; }
 .promo-guide,.menu-import-review>img { position:static; }
 .promo-row { grid-template-columns:1fr; }
 .promo-actions { justify-content:flex-end; }
 .menu-ai-banner { align-items:flex-start; flex-direction:column; }
 .import-fields { grid-template-columns:1fr 95px; }
 .import-fields input:first-child,.import-description { grid-column:1/-1; }
 .promo-code-entry { align-items:stretch; flex-direction:column; }
}

/* Social promotion composer and admin publishing queue */
.social-composer-grid { display:grid; grid-template-columns:minmax(0,1fr) 430px; gap:24px; align-items:start; }
.field-help { display:block; color:var(--ink-500); font-size:12px; margin-top:6px; }
.social-channel-picker { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.social-channel-picker label { cursor:pointer; }
.social-channel-picker input { position:absolute; opacity:0; }
.social-channel-picker span { display:flex; justify-content:center; border:1px solid var(--line-200); border-radius:12px; padding:13px; font-weight:750; background:#fff; }
.social-channel-picker input:checked+span { color:var(--primary); border-color:#9bbcff; background:#f2f7ff; box-shadow:inset 0 0 0 1px #9bbcff; }
.social-preview-panel { position:sticky; top:20px; border:1px solid var(--line-200); border-radius:18px; background:#fff; padding:15px; box-shadow:0 14px 38px rgba(15,23,42,.08); }
.social-preview-head { display:flex; justify-content:space-between; align-items:center; margin-bottom:12px; font-size:13px; font-weight:750; }
.social-preview-head button { border:0; background:#eef4ff; color:var(--primary); border-radius:8px; padding:7px 9px; cursor:pointer; font-weight:700; }
.social-preview-panel canvas { display:block; width:100%; height:auto; border-radius:12px; }
.social-preview-panel>p { text-align:center; color:var(--ink-500); font-size:11px; margin:10px 0 0; }
.social-empty-hero { padding:48px; border:1px solid #cfe0ff; border-radius:20px; background:linear-gradient(125deg,#f8fbff,#edf4ff); margin-bottom:22px; }
.social-empty-hero h2 { margin:8px 0; }
.social-empty-hero p { max-width:620px; color:var(--ink-600); line-height:1.7; }
.social-post-list { display:grid; gap:10px; margin-top:18px; }
.social-post-row { display:grid; grid-template-columns:90px 1fr; gap:14px; border:1px solid var(--line-200); border-radius:14px; padding:12px; }
.social-thumb { width:90px; height:90px; border-radius:10px; overflow:hidden; background:#eef4ff; }
.social-thumb img { width:100%; height:100%; object-fit:cover; }
.social-post-row h4,.social-post-row p { margin:5px 0; }
.social-post-row p,.social-post-row small { color:var(--ink-500); font-size:12px; }
.social-post-row em { display:block; margin-top:7px; color:#a15c00; font-size:12px; font-style:normal; }

.social-admin-stats { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-bottom:24px; }
.social-admin-stats>div { border:1px solid var(--line-200); border-radius:15px; padding:18px; background:#fff; }
.social-admin-stats span,.social-admin-stats strong { display:block; }
.social-admin-stats span { color:var(--ink-500); font-size:12px; }
.social-admin-stats strong { margin-top:9px; font-size:23px; }
.social-admin-stats .account-status strong { color:#b35b00; font-size:16px; }
.social-admin-stats .account-status.connected { border-color:#a7ddc2; background:#f4fff9; }
.social-admin-stats .account-status.connected strong { color:#087a45; }
.admin-social-list { display:grid; gap:18px; }
.admin-social-card { display:grid; grid-template-columns:260px 1fr; border:1px solid var(--line-200); border-radius:18px; background:#fff; overflow:hidden; box-shadow:0 9px 25px rgba(15,23,42,.05); }
.admin-social-media { background:#edf3ff; min-height:260px; }
.admin-social-media img { width:100%; height:100%; max-height:500px; object-fit:cover; }
.admin-social-content { padding:22px; min-width:0; }
.admin-social-meta { display:flex; align-items:center; gap:9px; flex-wrap:wrap; }
.admin-social-meta small { color:var(--ink-500); margin-left:auto; }
.admin-social-content h3 { margin:14px 0 10px; }
.admin-channel-results { display:flex; flex-wrap:wrap; gap:7px; margin-bottom:16px; }
.channel-result { display:flex; gap:5px; align-items:center; border-radius:9px; padding:7px 9px; background:#f3f5f8; font-size:11px; }
.channel-result.published { background:#eafaf2; color:#087a45; }
.channel-result.failed { background:#fff0f0; color:#ad3030; }
.channel-result em { max-width:360px; font-style:normal; }
.admin-social-review { display:grid; gap:13px; }
.admin-social-review>label { font-size:12px; font-weight:700; }
.admin-social-review .form-input { margin-top:6px; }
.admin-social-schedule { display:grid; grid-template-columns:auto minmax(220px,1fr) auto; gap:12px; align-items:center; background:#f7f9fc; border-radius:12px; padding:12px; }
.admin-social-schedule label { display:flex; align-items:center; gap:6px; font-size:13px; font-weight:700; }
.admin-social-actions { display:flex; gap:8px; justify-content:flex-end; }
.published-copy { background:#f8fafc; border-radius:12px; padding:14px; margin:12px 0; }
.published-copy p { margin:0 0 8px; color:var(--ink-600); line-height:1.6; font-size:13px; }
.social-config-guide { margin-top:24px; }
.config-key-grid { display:flex; flex-wrap:wrap; gap:7px; margin:13px 0; }
.config-key-grid code { background:#eef3fb; color:#29456f; padding:7px 9px; border-radius:8px; font-size:11px; }

@media(max-width:900px){
 .social-composer-grid,.admin-social-card { grid-template-columns:1fr; }
 .social-preview-panel { position:static; }
 .admin-social-media { max-height:420px; }
 .social-admin-stats { grid-template-columns:1fr 1fr; }
}
@media(max-width:560px){
 .social-admin-stats { grid-template-columns:1fr; }
 .admin-social-schedule { grid-template-columns:1fr; }
 .social-channel-picker { grid-template-columns:1fr; }
}

.business-quick-card h3 {
    margin-bottom: 16px;
}

.quick-info-list {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.quick-info-list > div {
    display: grid;
    grid-template-columns: 32px minmax(0, 1fr);
    gap: 10px;
    align-items: start;
}

.quick-icon {
    display: flex;
    width: 32px;
    height: 32px;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    background: var(--primary-tint);
    color: var(--primary);
}

.quick-icon svg {
    width: 15px;
    height: 15px;
}

.quick-info-list span:not(.quick-icon) {
    display: block;
    margin-bottom: 3px;
    color: var(--ink-500);
    font-size: 11px;
    font-weight: 700;
}

.quick-info-list p,
.quick-info-list a {
    color: var(--ink-700);
    font-size: 12px;
    line-height: 1.5;
    text-decoration: none;
    overflow-wrap: anywhere;
}

.quick-info-list a:hover {
    color: var(--primary);
}

.side-actions {
    display: grid;
    gap: 8px;
    margin-top: 18px;
    padding-top: 18px;
    border-top: 1px solid var(--line-200);
}

.side-actions .btn {
    width: 100%;
    padding: 11px 12px;
    font-size: 13px;
}

.info-section {
    margin-bottom: 32px;
    padding-bottom: 32px;
    border-bottom: 1px solid var(--line-200);
}

.info-section:last-child {
    border-bottom: none;
    margin-bottom: 0;
    padding-bottom: 0;
}

.info-section h3 {
    font-size: 17px;
    font-weight: 700;
    margin-bottom: 12px;
    color: var(--ink-900);
    display: flex;
    align-items: center;
    gap: 8px;
}

.info-section h3 svg {
    width: 18px;
    height: 18px;
    color: var(--primary);
    flex-shrink: 0;
}

.info-section p {
    font-size: 15px;
    color: var(--ink-600);
    margin-bottom: 8px;
    line-height: 1.7;
}

.phone-link, .external-link {
    color: var(--primary);
    text-decoration: none;
    font-weight: 600;
    transition: color 0.2s var(--ease-out);
}

.phone-link:hover, .external-link:hover {
    color: var(--primary-strong);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.hours {
    font-size: 14px;
}

.hours p {
    margin-bottom: 6px;
}

.reviews-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.review-item {
    background: var(--fill-50);
    padding: 18px 20px;
    border-radius: var(--radius-md);
    border: 1px solid var(--line-200);
}

.review-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 8px;
}

.review-header strong {
    font-size: 14px;
    font-weight: 700;
    color: var(--ink-900);
}

.review-rating {
    color: var(--star);
    font-size: 13px;
    letter-spacing: 1px;
}

.review-item p {
    font-size: 14px;
    color: var(--ink-600);
    line-height: 1.65;
}

.review-date {
    color: var(--ink-500);
    font-size: 12px;
    margin-top: 10px;
    font-weight: 500;
}

/* ============================================
   Forms
   ============================================ */
.reservation-form {
    max-width: 500px;
    margin: 0 auto;
}

.form-group {
    margin-bottom: 20px;
    display: flex;
    flex-direction: column;
}

.form-label {
    font-size: 14px;
    font-weight: 600;
    margin-bottom: 8px;
    color: var(--ink-700);
}

.form-input {
    padding: 13px 16px;
    border: 1.5px solid var(--line-200);
    border-radius: var(--radius-sm);
    font-size: 15px;
    font-family: inherit;
    background: var(--bg-white);
    transition: border-color 0.2s var(--ease-out), box-shadow 0.2s var(--ease-out);
    color: var(--ink-900);
}

.form-input:hover {
    border-color: var(--line-300);
}

.form-input:focus {
    outline: none;
    border-color: var(--primary);
    box-shadow: 0 0 0 3px var(--primary-tint);
}

.form-input::placeholder {
    color: var(--ink-500);
}

textarea.form-input {
    resize: vertical;
    min-height: 100px;
}

/* ============================================
   Buttons
   ============================================ */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 12px 22px;
    border: 1px solid var(--line-300);
    border-radius: var(--radius-sm);
    font-size: 15px;
    font-weight: 700;
    font-family: inherit;
    text-decoration: none;
    text-align: center;
    cursor: pointer;
    transition: background 0.2s var(--ease-out), border-color 0.2s var(--ease-out),
        color 0.2s var(--ease-out), transform 0.15s var(--ease-out);
}

.btn:active {
    transform: scale(0.98);
}

.btn-primary {
    background: var(--primary);
    color: #ffffff;
    border-color: var(--primary);
}

.btn-primary:hover {
    background: var(--primary-strong);
    border-color: var(--primary-strong);
}

.btn-secondary {
    background: var(--bg-white);
    color: var(--ink-700);
    border-color: var(--line-300);
}

.btn-secondary:hover {
    background: var(--fill-50);
    border-color: var(--ink-400);
    color: var(--ink-900);
}

.action-buttons {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 32px;
}

/* ============================================
   업주 CTA
   ============================================ */
.cta-section {
    background: var(--ink-900);
    color: #ffffff;
    border-radius: var(--radius-lg);
    padding: 56px 32px;
    text-align: center;
    margin: 40px 0 56px;
    position: relative;
    overflow: hidden;
}

.cta-section::before {
    content: "";
    position: absolute;
    top: -120px;
    right: -80px;
    width: 340px;
    height: 340px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(49, 130, 246, 0.28) 0%, rgba(49, 130, 246, 0) 70%);
    pointer-events: none;
}

.cta-section h3 {
    font-size: 28px;
    font-weight: 800;
    margin-bottom: 10px;
    letter-spacing: -0.025em;
    color: #ffffff;
    position: relative;
}

.cta-section p {
    margin: 0 auto 28px;
    font-size: 16px;
    color: #aeb9c6;
    max-width: 440px;
    position: relative;
}

.cta-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--primary-soft);
    color: #ffffff;
    padding: 14px 28px;
    border-radius: 999px;
    text-decoration: none;
    font-weight: 700;
    font-size: 16px;
    transition: background 0.2s var(--ease-out), transform 0.15s var(--ease-out);
    position: relative;
}

.cta-btn:hover {
    background: #2374ee;
}

.cta-btn:active {
    transform: scale(0.98);
}

.cta-btn svg {
    width: 17px;
    height: 17px;
}

/* ============================================
   Pagination
   ============================================ */
.pagination {
    display: flex;
    justify-content: center;
    gap: 12px;
    align-items: center;
    margin: 40px 0;
}

.page-link {
    padding: 10px 18px;
    border: 1px solid var(--line-300);
    border-radius: 999px;
    text-decoration: none;
    color: var(--ink-700);
    font-weight: 600;
    font-size: 14px;
    transition: border-color 0.2s var(--ease-out), background 0.2s var(--ease-out),
        color 0.2s var(--ease-out);
}

.page-link:hover {
    background: var(--ink-900);
    color: #ffffff;
    border-color: var(--ink-900);
}

.page-info {
    font-size: 14px;
    color: var(--ink-500);
    font-weight: 500;
    font-variant-numeric: tabular-nums;
}

/* ============================================
   Messages
   ============================================ */
.success-message {
    background: var(--success-tint);
    border: 1px solid rgba(20, 130, 82, 0.25);
    border-radius: var(--radius-md);
    padding: 20px;
    margin-bottom: 24px;
    color: var(--success);
}

.success-message h3 {
    font-weight: 700;
    margin-bottom: 6px;
    color: var(--success);
    font-size: 16px;
}

.error-message {
    background: var(--danger-tint);
    border: 1px solid rgba(214, 41, 58, 0.25);
    border-radius: var(--radius-md);
    padding: 16px 20px;
    margin-bottom: 24px;
    color: var(--danger);
    font-weight: 500;
    font-size: 14px;
}

.info-box {
    background: var(--fill-50);
    border: 1px solid var(--line-200);
    border-radius: var(--radius-md);
    padding: 24px;
    text-align: center;
    color: var(--ink-600);
}

.empty-state {
    text-align: center;
    padding: 72px 20px;
}

.empty-state p {
    font-size: 16px;
    color: var(--ink-600);
    margin-bottom: 24px;
}

/* ============================================
   예약 목록
   ============================================ */
.reservations-list {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.reservation-card {
    background: var(--bg-white);
    border: 1px solid var(--line-200);
    border-radius: var(--radius-md);
    padding: 22px;
    transition: border-color 0.2s var(--ease-out), box-shadow 0.25s var(--ease-out);
}

.reservation-card:hover {
    border-color: var(--line-300);
    box-shadow: var(--shadow-md);
}

.reservation-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 14px;
}

.reservation-header h3 {
    font-size: 17px;
    font-weight: 700;
    margin: 0;
    color: var(--ink-900);
}

.status-badge {
    padding: 6px 12px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
}

.status-badge.confirmed,
.status-badge.completed {
    background: var(--success-tint);
    color: var(--success);
}

.status-badge.pending {
    background: var(--warning-tint);
    color: var(--warning);
}

.status-badge.cancelled {
    background: var(--danger-tint);
    color: var(--danger);
}

.reservation-details {
    margin-bottom: 16px;
}

.reservation-details p {
    font-size: 14px;
    margin-bottom: 5px;
    color: var(--ink-600);
    display: flex;
    align-items: flex-start;
    gap: 7px;
}

.reservation-details p svg {
    width: 15px;
    height: 15px;
    color: var(--ink-400);
    flex-shrink: 0;
    margin-top: 2px;
}

.reservation-actions {
    display: flex;
    gap: 8px;
}

.reservation-actions .btn {
    flex: 1;
    padding: 10px 12px;
    font-size: 13px;
}

/* ============================================
   Filter Bar
   ============================================ */
.filter-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 28px;
    padding: 16px 18px;
    background: var(--fill-50);
    border-radius: 16px;
    border: 1px solid var(--line-200);
}

.filter-bar form {
    display: flex;
    align-items: flex-end;
    gap: 10px;
    margin-left: auto;
}

.filter-bar-title { display: flex; align-items: center; gap: 11px; min-width: 230px; }
.filter-bar-title > div { display: flex; flex-direction: column; line-height: 1.35; }
.filter-bar-title strong { color: var(--ink-800); font-size: 14px; }
.filter-bar-title span { color: var(--ink-500); font-size: 12px; }
.filter-bar-icon {
    width: 38px; height: 38px; display: grid; place-items: center; flex: 0 0 auto;
    border-radius: 11px; background: var(--bg-white); color: var(--primary);
    border: 1px solid var(--line-200); box-shadow: var(--shadow-sm);
}
.filter-bar-icon svg { width: 19px; height: 19px; }

.filter-group {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.filter-group > span:first-child {
    padding-left: 2px; font-size: 11px; font-weight: 700; color: var(--ink-500);
}

.filter-group select {
    min-width: 150px;
    height: 42px;
    padding: 0 38px 0 13px;
    border: 1px solid var(--line-200);
    border-radius: 10px;
    font-size: 13px;
    font-weight: 650;
    font-family: inherit;
    background: var(--bg-white);
    color: var(--ink-900);
    cursor: pointer;
    appearance: none;
    transition: border-color 0.2s var(--ease-out), box-shadow 0.2s var(--ease-out);
}

.filter-select-wrap { position: relative; display: block; }
.filter-select-wrap > svg {
    position: absolute; right: 12px; top: 50%; width: 15px; height: 15px;
    color: var(--ink-500); transform: translateY(-50%); pointer-events: none;
}

.filter-group select:focus {
    outline: none;
    border-color: var(--primary);
    box-shadow: 0 0 0 3px var(--primary-tint);
}

.search-results-page { padding-top: 34px; }
.search-results-head {
    display: flex; align-items: flex-end; justify-content: space-between;
    gap: 24px; margin-bottom: 22px;
}
.search-results-eyebrow {
    margin-bottom: 5px; color: var(--primary); font-size: 12px; font-weight: 750;
}
.search-results-head h2 {
    color: var(--ink-900); font-size: 28px; line-height: 1.3; letter-spacing: -.035em;
}
.search-results-count { margin-top: 6px; color: var(--ink-500); font-size: 13px; }
.search-results-count strong { color: var(--ink-700); font-weight: 750; font-variant-numeric: tabular-nums; }
.search-location-badge {
    display: inline-flex; align-items: center; gap: 7px; padding: 9px 12px;
    border-radius: 999px; background: var(--primary-tint); color: var(--primary);
    font-size: 12px; font-weight: 700; white-space: nowrap;
}
.search-location-badge svg { width: 15px; height: 15px; }

/* ============================================
   Footer
   ============================================ */
.footer {
    background: var(--fill-50);
    border-top: 1px solid var(--line-200);
    padding: 40px 24px;
    margin-top: 24px;
}

.footer-inner {
    max-width: 1120px;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
}

.footer-brand {
    font-size: 16px;
    font-weight: 800;
    letter-spacing: -0.02em;
    color: var(--ink-700);
}

.footer-brand .logo-accent {
    color: var(--primary);
}

.footer,
.footer p {
    color: var(--ink-500);
    font-size: 13px;
    font-weight: 500;
    text-align: center;
}

.footer-links {
    display: flex;
    gap: 20px;
}

.footer a {
    color: var(--ink-500);
    text-decoration: none;
    transition: color 0.2s var(--ease-out);
}

.footer a:hover {
    color: var(--ink-900);
}

/* ============================================
   헤더 유저 표시
   ============================================ */
.menu-user {
    font-size: 14px;
    font-weight: 600;
    color: var(--ink-900);
    padding: 8px 4px;
}

/* ============================================
   브레드크럼
   ============================================ */
.breadcrumb {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    font-size: 13px;
    margin-bottom: 16px;
    color: var(--ink-500);
}

.breadcrumb a {
    color: var(--ink-500);
    text-decoration: none;
    transition: color 0.2s var(--ease-out);
}

.breadcrumb a:hover {
    color: var(--primary);
}

.breadcrumb [aria-current="page"] {
    color: var(--ink-700);
    font-weight: 600;
}

.crumb-sep {
    color: var(--line-300);
}

/* ============================================
   인증 (로그인/회원가입)
   ============================================ */
.auth-wrap {
    display: flex;
    justify-content: center;
    padding: 48px 0 64px;
}

.auth-card {
    width: 100%;
    max-width: 420px;
}

.auth-card-business {
    max-width: 720px;
}

.auth-card-business > .seg,
.auth-card-business > .auth-form,
.auth-card-business > .auth-foot {
    max-width: 420px;
    margin-right: auto;
    margin-left: auto;
}

.auth-card h2 {
    font-size: 27px;
    font-weight: 800;
    letter-spacing: -0.03em;
    color: var(--ink-900);
    margin-bottom: 8px;
    text-align: center;
}

.auth-sub {
    font-size: 15px;
    color: var(--ink-600);
    text-align: center;
    margin-bottom: 28px;
}

.seg {
    display: flex;
    background: var(--fill-100);
    border-radius: 999px;
    padding: 4px;
    margin-bottom: 28px;
}

.seg a {
    flex: 1;
    text-align: center;
    padding: 10px 0;
    border-radius: 999px;
    font-size: 14px;
    font-weight: 600;
    color: var(--ink-500);
    text-decoration: none;
    transition: color 0.2s var(--ease-out), background 0.2s var(--ease-out),
        box-shadow 0.2s var(--ease-out);
}

.seg a:hover {
    color: var(--ink-700);
}

.seg a.on {
    background: var(--bg-white);
    color: var(--ink-900);
    box-shadow: var(--shadow-sm);
}

.auth-form .btn {
    width: 100%;
    padding: 14px 22px;
    margin-top: 4px;
}

.auth-foot {
    text-align: center;
    font-size: 14px;
    color: var(--ink-600);
    margin-top: 20px;
}

.auth-foot a {
    color: var(--primary);
    font-weight: 600;
    text-decoration: none;
}

.auth-foot a:hover {
    text-decoration: underline;
    text-underline-offset: 3px;
}

.auth-note {
    text-align: center;
    font-size: 13px;
    color: var(--ink-500);
    margin-top: 28px;
    padding-top: 20px;
    border-top: 1px solid var(--line-200);
}

.test-login-panel {
    margin-top: 34px;
    padding: 22px;
    border: 1px solid var(--line-200);
    border-radius: var(--radius-lg);
    background: var(--fill-50);
}

.test-login-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 6px;
}

.test-login-head > div > span {
    display: block;
    margin-bottom: 3px;
    color: var(--primary);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.12em;
}

.test-login-head h3 {
    color: var(--ink-900);
    font-size: 17px;
    font-weight: 800;
}

.test-password {
    flex-shrink: 0;
    padding: 5px 9px;
    border-radius: 999px;
    background: var(--warning-tint);
    color: var(--warning);
    font-size: 10px;
    font-weight: 800;
}

.test-login-panel > p {
    margin-bottom: 16px;
    color: var(--ink-500);
    font-size: 12px;
}

.test-account-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px;
}

.test-account-button {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 2px 9px;
    padding: 12px 13px;
    border: 1px solid var(--line-200);
    border-radius: var(--radius-sm);
    background: var(--bg-white);
    color: var(--ink-700);
    font-family: inherit;
    text-align: left;
    cursor: pointer;
    transition: border-color 0.2s var(--ease-out), background 0.2s var(--ease-out), transform 0.15s var(--ease-out);
}

.test-account-button:hover {
    border-color: var(--primary);
    background: var(--primary-tint);
}

.test-account-button:active {
    transform: scale(0.99);
}

.test-account-button.loading {
    opacity: 0.6;
    pointer-events: none;
}

.test-account-button > span {
    grid-row: 1 / span 2;
    align-self: center;
    padding: 5px 8px;
    border-radius: 999px;
    background: var(--primary-tint);
    color: var(--primary);
    font-size: 11px;
    font-weight: 800;
}

.test-account-button strong {
    min-width: 0;
    overflow: hidden;
    color: var(--ink-900);
    font-size: 12px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.test-account-button small {
    min-width: 0;
    overflow: hidden;
    color: var(--ink-500);
    font-size: 10px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

@media (max-width: 600px) {
    .test-account-grid {
        grid-template-columns: 1fr;
    }

    .test-login-panel {
        padding: 18px 14px;
    }
}

/* ============================================
   오너 대시보드
   ============================================ */
.dash-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
    margin: 28px 0 8px;
}

.dash-head h2 {
    font-size: 25px;
    font-weight: 800;
    letter-spacing: -0.025em;
    color: var(--ink-900);
}

.dash-sub {
    font-size: 14px;
    color: var(--ink-500);
}

.dash-nav {
    display: flex;
    gap: 2px;
    border-bottom: 1px solid var(--line-200);
    margin: 16px 0 28px;
    overflow-x: auto;
}

.dash-tab {
    padding: 12px 14px;
    font-size: 14px;
    font-weight: 600;
    color: var(--ink-500);
    text-decoration: none;
    border-bottom: 2px solid transparent;
    margin-bottom: -1px;
    white-space: nowrap;
    transition: color 0.2s var(--ease-out), border-color 0.2s var(--ease-out);
}

.dash-tab:hover {
    color: var(--ink-900);
}

.dash-tab.on {
    color: var(--primary);
    border-bottom-color: var(--primary);
}

.panel {
    background: var(--bg-white);
    border: 1px solid var(--line-200);
    border-radius: var(--radius-lg);
    padding: 24px;
    margin-bottom: 20px;
}

.panel > h3 {
    font-size: 17px;
    font-weight: 700;
    margin-bottom: 6px;
    color: var(--ink-900);
}

.panel-desc {
    font-size: 13px;
    color: var(--ink-500);
    margin-bottom: 18px;
}

.dash-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
    margin-bottom: 20px;
}

.stat-card {
    background: var(--fill-50);
    border: 1px solid var(--line-200);
    border-radius: var(--radius-md);
    padding: 16px 18px;
}

.stat-link {
    display: block;
    text-decoration: none;
    transition: border-color 0.2s var(--ease-out), box-shadow 0.2s var(--ease-out), transform 0.2s var(--ease-out);
}

.stat-link:hover {
    border-color: var(--primary);
    box-shadow: var(--shadow-sm);
    transform: translateY(-2px);
}

.stat-link:focus-visible {
    outline: 2px solid var(--primary);
    outline-offset: 3px;
}

.stat-hint {
    margin-top: 7px;
    color: var(--primary);
    font-size: 12px;
    font-weight: 700;
}

.stat-label {
    font-size: 13px;
    font-weight: 600;
    color: var(--ink-500);
    margin-bottom: 4px;
}

.stat-value {
    font-size: 22px;
    font-weight: 800;
    color: var(--ink-900);
    font-variant-numeric: tabular-nums;
}

.form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4px 16px;
}

.form-grid .full {
    grid-column: 1 / -1;
}

.inline-row {
    display: flex;
    gap: 10px;
    align-items: flex-end;
    flex-wrap: wrap;
}

.inline-row .form-group {
    margin-bottom: 0;
    flex: 1;
    min-width: 130px;
}

.inline-row .grow-0 {
    flex: 0 0 auto;
    min-width: 0;
}

/* 날짜 위젯은 "2026년 8월 12일"이 들어가야 해서 다른 칼럼보다 넓게 시작한다.
   폭이 모자라면 줄바꿈으로 내려가고, 칼럼 밖으로 넘치지 않는다. */
.inline-row .form-group-date {
    flex: 1 1 250px;
    min-width: 220px;
}

.data-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
}

.data-table th {
    text-align: left;
    font-size: 12px;
    font-weight: 700;
    color: var(--ink-500);
    padding: 10px 12px;
    border-bottom: 1px solid var(--line-200);
    white-space: nowrap;
}

.data-table td {
    padding: 12px;
    border-bottom: 1px solid var(--fill-100);
    color: var(--ink-700);
    vertical-align: middle;
}

.data-table tr:last-child td {
    border-bottom: none;
}

.data-table .num {
    font-variant-numeric: tabular-nums;
}

.btn-sm {
    padding: 8px 14px;
    font-size: 13px;
    border-radius: var(--radius-sm);
}

.btn-ghost-danger {
    background: var(--bg-white);
    color: var(--danger);
    border: 1px solid var(--line-200);
}

.btn-ghost-danger:hover {
    background: var(--danger-tint);
    border-color: var(--danger);
}

.tag {
    display: inline-flex;
    align-items: center;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 600;
    background: var(--fill-100);
    color: var(--ink-600);
}

.tag.blue {
    background: var(--primary-tint);
    color: var(--primary);
}

.media-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
}

.media-card {
    position: relative;
    border-radius: var(--radius-md);
    overflow: hidden;
    border: 1px solid var(--line-200);
    aspect-ratio: 4 / 3;
    background: var(--fill-100);
}

.media-card img,
.media-card video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.media-del {
    position: absolute;
    top: 8px;
    right: 8px;
    background: rgba(25, 31, 40, 0.72);
    color: #ffffff;
    border: none;
    border-radius: 999px;
    width: 28px;
    height: 28px;
    font-size: 14px;
    line-height: 1;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s var(--ease-out);
}

.media-del:hover {
    background: var(--danger);
}

/* 스케줄 캘린더 */
.cal-toolbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 16px;
}

.cal-toolbar .seg {
    margin-bottom: 0;
    width: 260px;
}

.cal-nav {
    display: flex;
    align-items: center;
    gap: 8px;
}

.cal-title {
    font-size: 17px;
    font-weight: 700;
    color: var(--ink-900);
    min-width: 140px;
    text-align: center;
    font-variant-numeric: tabular-nums;
}

.cal-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    border-top: 1px solid var(--line-200);
    border-left: 1px solid var(--line-200);
    border-radius: var(--radius-sm);
    overflow: hidden;
}

.cal-dow {
    padding: 8px 10px;
    font-size: 12px;
    font-weight: 700;
    color: var(--ink-500);
    background: var(--fill-50);
    border-right: 1px solid var(--line-200);
    border-bottom: 1px solid var(--line-200);
    text-align: center;
}

.cal-cell {
    min-height: 92px;
    padding: 8px;
    border-right: 1px solid var(--line-200);
    border-bottom: 1px solid var(--line-200);
    font-size: 12px;
    background: var(--bg-white);
}

.cal-cell.other {
    background: var(--fill-50);
}

.cal-daynum {
    font-size: 13px;
    font-weight: 600;
    color: var(--ink-700);
    font-variant-numeric: tabular-nums;
    margin-bottom: 6px;
}

.cal-cell.other .cal-daynum {
    color: var(--ink-400);
}

.cal-cell.today .cal-daynum {
    color: var(--primary);
    font-weight: 800;
}

.cal-evt {
    display: block;
    font-size: 12px;
    font-weight: 600;
    padding: 3px 7px;
    border-radius: var(--radius-sm);
    background: var(--primary-tint);
    color: var(--primary-strong);
    margin-bottom: 4px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    text-decoration: none;
}

.cal-evt.pending {
    background: var(--warning-tint);
    color: var(--warning);
}

.cal-evt.completed {
    background: var(--success-tint);
    color: var(--success);
}

.schedule-notice {
    margin: -4px 0 16px;
    padding: 11px 14px;
    border-radius: var(--radius-sm);
    background: var(--warning-tint);
    color: var(--warning);
    font-size: 13px;
    font-weight: 600;
}

.cal-more {
    font-size: 12px;
    color: var(--ink-500);
    font-weight: 600;
}

.week-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 10px;
}

.week-day {
    border: 1px solid var(--line-200);
    border-radius: var(--radius-md);
    padding: 12px;
    min-height: 140px;
    background: var(--bg-white);
}

.week-day.today {
    border-color: var(--primary);
    box-shadow: 0 0 0 3px var(--primary-tint);
}

.week-day-head {
    font-size: 13px;
    font-weight: 700;
    color: var(--ink-700);
    margin-bottom: 10px;
    font-variant-numeric: tabular-nums;
}

.week-day.today .week-day-head {
    color: var(--primary);
}

.slot-list {
    display: flex;
    flex-direction: column;
}

.slot-row {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 9px 4px;
    border-bottom: 1px solid var(--fill-100);
    font-size: 14px;
}

.slot-row:last-child {
    border-bottom: none;
}

.slot-time {
    width: 56px;
    flex-shrink: 0;
    font-size: 13px;
    font-weight: 600;
    color: var(--ink-500);
    font-variant-numeric: tabular-nums;
}

.slot-empty {
    color: var(--ink-400);
    font-size: 13px;
}

.reservation-inline-link {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    text-decoration: none;
    border-radius: var(--radius-sm);
}

.reservation-inline-link:hover .tag {
    box-shadow: 0 0 0 1px var(--primary);
}

.owner-reservation-list {
    display: flex;
    flex-direction: column;
}

.owner-reservation-row {
    display: grid;
    grid-template-columns: 92px minmax(0, 1fr) auto 20px;
    align-items: center;
    gap: 12px;
    padding: 13px 4px;
    border-bottom: 1px solid var(--fill-100);
    color: var(--ink-700);
    text-decoration: none;
}

.owner-reservation-row:last-child {
    border-bottom: none;
}

.owner-reservation-row:hover .owner-reservation-main strong,
.owner-reservation-row:hover .owner-reservation-arrow {
    color: var(--primary);
}

.owner-reservation-time {
    color: var(--ink-500);
    font-size: 13px;
    font-variant-numeric: tabular-nums;
}

.owner-reservation-main {
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    font-size: 14px;
}

.owner-reservation-main strong {
    color: var(--ink-900);
}

.owner-reservation-arrow {
    color: var(--ink-400);
    font-weight: 700;
}

.reservation-detail-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 20px;
}

.reservation-detail-head h3 {
    margin: 8px 0 3px;
    color: var(--ink-900);
    font-size: 24px;
}

.reservation-detail-head p,
.detail-back {
    color: var(--ink-500);
    font-size: 13px;
}

.detail-back {
    text-decoration: none;
    font-weight: 600;
}

.detail-back:hover {
    color: var(--primary);
}

.reservation-owner-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.6fr) minmax(280px, 0.8fr);
    gap: 20px;
    align-items: start;
}

.detail-list {
    margin-top: 18px;
}

.detail-list > div {
    display: grid;
    grid-template-columns: 130px minmax(0, 1fr);
    gap: 18px;
    padding: 13px 0;
    border-bottom: 1px solid var(--fill-100);
}

.detail-list > div:last-child {
    border-bottom: none;
}

.detail-list dt {
    color: var(--ink-500);
    font-size: 13px;
    font-weight: 600;
}

.detail-list dd {
    color: var(--ink-800);
    font-size: 14px;
    overflow-wrap: anywhere;
}

.detail-list dd a {
    color: var(--primary);
    text-decoration: none;
}

.detail-list.compact > div {
    grid-template-columns: 60px minmax(0, 1fr);
    gap: 10px;
}

.muted {
    color: var(--ink-400);
}

.reservation-decision form {
    display: grid;
    gap: 9px;
    margin-top: 16px;
}

.reservation-decision .btn {
    width: 100%;
}

.decision-final {
    margin-top: 14px;
    padding: 12px 14px;
    border-radius: var(--radius-sm);
    background: var(--success-tint);
    color: var(--success);
    font-size: 14px;
    font-weight: 700;
}

.decision-final.danger {
    background: var(--danger-tint);
    color: var(--danger);
}

@media (max-width: 900px) {
    .dash-grid {
        grid-template-columns: 1fr;
    }

    .media-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .form-grid {
        grid-template-columns: 1fr;
    }

    .cal-cell {
        min-height: 64px;
        padding: 5px;
    }

    .week-grid {
        grid-template-columns: 1fr;
    }

    .week-day {
        min-height: 0;
    }

    .reservation-owner-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 600px) {
    .owner-reservation-row {
        grid-template-columns: 1fr auto;
    }

    .owner-reservation-time,
    .owner-reservation-main {
        grid-column: 1;
    }

    .owner-reservation-row .status-badge {
        grid-column: 2;
        grid-row: 1 / span 2;
    }

    .owner-reservation-arrow {
        display: none;
    }

    .detail-list > div {
        grid-template-columns: 1fr;
        gap: 5px;
    }
}

/* ============================================
   고객 예약 — 슬롯 선택
   ============================================ */
.rsv-layout {
    max-width: 640px;
    margin: 0 auto;
    padding-top: 24px;
}

.rsv-layout > h2 {
    font-size: 25px;
    font-weight: 800;
    letter-spacing: -0.025em;
    margin-bottom: 6px;
}

.rsv-biz-sub {
    font-size: 14px;
    color: var(--ink-500);
    margin-bottom: 24px;
}

.slot-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(86px, 1fr));
    gap: 8px;
}

.slot-opt {
    position: relative;
    display: block;
}

.slot-opt input {
    position: absolute;
    opacity: 0;
    width: 100%;
    height: 100%;
    cursor: pointer;
}

.slot-opt span {
    display: block;
    text-align: center;
    padding: 10px 0;
    border: 1px solid var(--line-200);
    border-radius: 999px;
    font-size: 14px;
    font-weight: 600;
    color: var(--ink-700);
    font-variant-numeric: tabular-nums;
    transition: border-color 0.2s var(--ease-out), background 0.2s var(--ease-out),
        color 0.2s var(--ease-out);
}

.slot-opt input:not(:disabled) + span {
    cursor: pointer;
}

.slot-opt input:hover:not(:disabled) + span {
    border-color: var(--ink-400);
}

.slot-opt input:checked + span {
    background: var(--ink-900);
    border-color: var(--ink-900);
    color: #ffffff;
}

.slot-opt input:focus-visible + span {
    outline: 2px solid var(--primary);
    outline-offset: 2px;
}

.slot-opt.taken span {
    background: var(--fill-50);
    color: var(--ink-500);
    text-decoration: line-through;
}

.slot-none {
    font-size: 14px;
    color: var(--ink-500);
    padding: 12px 0;
}

/* ============================================
   업체 상세 — 갤러리 / 메뉴판 / 직원
   ============================================ */
.gallery-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
}

.gallery-item {
    border-radius: var(--radius-md);
    overflow: hidden;
    background: var(--fill-100);
    aspect-ratio: 4 / 3;
}

.gallery-item img,
.gallery-item video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.menu-board .menu-cat-title {
    font-size: 15px;
    font-weight: 700;
    color: var(--ink-500);
    margin: 20px 0 4px;
}

.menu-board .menu-cat-title:first-child {
    margin-top: 0;
}

.menu-row {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 16px;
    padding: 12px 0;
    border-bottom: 1px solid var(--fill-100);
}

.menu-row:last-child {
    border-bottom: none;
}

.menu-name {
    font-size: 15px;
    font-weight: 600;
    color: var(--ink-900);
}

.menu-name .tag {
    margin-left: 6px;
}

.menu-desc {
    font-size: 13px;
    color: var(--ink-500);
    margin-top: 2px;
}

.menu-opts {
    font-size: 12px;
    color: var(--ink-500);
    margin-top: 4px;
}

.menu-price {
    font-size: 15px;
    font-weight: 700;
    color: var(--ink-900);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.staff-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.staff-row {
    display: flex;
    align-items: center;
    gap: 14px;
}

.staff-avatar {
    width: 44px;
    height: 44px;
    border-radius: 999px;
    background: var(--primary-tint);
    color: var(--primary);
    font-size: 17px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.staff-name {
    font-size: 15px;
    font-weight: 700;
    color: var(--ink-900);
}

.staff-meta {
    font-size: 13px;
    color: var(--ink-500);
}

.service-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    padding: 10px 0;
    border-bottom: 1px solid var(--fill-100);
    font-size: 14px;
}

.service-row:last-child {
    border-bottom: none;
}

.service-dur {
    font-size: 13px;
    color: var(--ink-500);
    font-variant-numeric: tabular-nums;
}

/* Restaurant menu categories and item picker */
.restaurant-menu-section {
    scroll-margin-top: 20px;
}

.section-title-row,
.menu-category-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
}

.section-title-row .section-subtitle {
    margin: -5px 0 0;
    color: var(--ink-500);
    font-size: 13px;
}

.menu-count {
    flex-shrink: 0;
    padding: 6px 10px;
    border-radius: 999px;
    background: var(--fill-100);
    color: var(--ink-600);
    font-size: 11px;
    font-weight: 700;
}

.menu-category-nav {
    display: flex;
    gap: 8px;
    margin: 20px 0 16px;
    padding-bottom: 4px;
    overflow-x: auto;
    scrollbar-width: thin;
}

.menu-category-nav a {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    flex-shrink: 0;
    padding: 9px 13px;
    border: 1px solid var(--line-200);
    border-radius: 999px;
    background: var(--bg-white);
    color: var(--ink-700);
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
    transition: color 0.2s var(--ease-out), border-color 0.2s var(--ease-out), background 0.2s var(--ease-out);
}

.menu-category-nav a span {
    color: var(--ink-400);
    font-size: 10px;
}

.menu-category-nav a:hover {
    border-color: var(--primary);
    background: var(--primary-tint);
    color: var(--primary);
}

.menu-category-list {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.menu-category-card {
    scroll-margin-top: 20px;
    overflow: hidden;
    border: 1px solid var(--line-200);
    border-radius: var(--radius-md);
    background: var(--bg-white);
}

.menu-category-head {
    padding: 17px 18px 15px;
    border-bottom: 1px solid var(--line-200);
    background: linear-gradient(135deg, var(--fill-50), var(--bg-white));
}

.menu-category-kicker {
    display: block;
    margin-bottom: 3px;
    color: var(--primary);
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 0.12em;
}

.menu-category-head h4 {
    color: var(--ink-900);
    font-size: 18px;
    font-weight: 800;
}

.menu-category-head > span {
    color: var(--ink-500);
    font-size: 11px;
    font-weight: 600;
}

.menu-items-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.menu-item-card {
    display: flex;
    min-width: 0;
    min-height: 126px;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
    padding: 18px;
    border: 0;
    border-right: 1px solid var(--fill-100);
    border-bottom: 1px solid var(--fill-100);
    background: var(--bg-white);
    color: inherit;
    font: inherit;
    text-align: left;
    cursor: pointer;
    transition: background 0.2s var(--ease-out), box-shadow 0.2s var(--ease-out);
}

.menu-item-card:nth-child(2n) {
    border-right: 0;
}

.menu-item-card:nth-last-child(-n + 2) {
    border-bottom: 0;
}

.menu-item-card:hover:not(:disabled) {
    position: relative;
    z-index: 1;
    background: var(--fill-50);
    box-shadow: inset 3px 0 0 var(--primary);
}

.menu-item-card:focus-visible {
    position: relative;
    z-index: 2;
    outline: 2px solid var(--primary);
    outline-offset: -2px;
}

.menu-item-card.sold-out {
    background: var(--fill-50);
    opacity: 0.65;
    cursor: not-allowed;
}

.menu-item-copy {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 5px;
}

.menu-item-card .menu-name {
    display: flex;
    align-items: center;
    gap: 6px;
    color: var(--ink-900);
    font-size: 15px;
    font-weight: 800;
    line-height: 1.35;
}

.menu-item-card .menu-desc {
    display: -webkit-box;
    overflow: hidden;
    color: var(--ink-500);
    font-size: 12px;
    line-height: 1.55;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.menu-item-card .menu-opts {
    color: var(--primary);
    font-size: 10px;
    font-weight: 700;
}

.menu-item-side {
    display: flex;
    align-items: flex-end;
    flex-direction: column;
    gap: 12px;
    flex-shrink: 0;
}

.menu-add-mark {
    display: flex;
    width: 27px;
    height: 27px;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--line-200);
    border-radius: 999px;
    background: var(--bg-white);
    color: var(--primary);
    font-size: 18px;
    font-weight: 500;
    transition: color 0.2s var(--ease-out), background 0.2s var(--ease-out), border-color 0.2s var(--ease-out);
}

.menu-item-card:hover .menu-add-mark {
    border-color: var(--primary);
    background: var(--primary);
    color: #ffffff;
}

body.modal-open {
    overflow: hidden;
}

.menu-modal[hidden] {
    display: none;
}

.menu-modal {
    position: fixed;
    z-index: 1000;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
}

.menu-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, 0.58);
    backdrop-filter: blur(3px);
}

.menu-modal-dialog {
    position: relative;
    z-index: 1;
    width: min(590px, 100%);
    max-height: min(760px, calc(100vh - 40px));
    overflow-y: auto;
    border-radius: 22px;
    background: var(--bg-white);
    box-shadow: 0 24px 70px rgba(15, 23, 42, 0.26);
}

.menu-modal-close {
    position: absolute;
    z-index: 2;
    top: 16px;
    right: 16px;
    display: flex;
    width: 34px;
    height: 34px;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--line-200);
    border-radius: 999px;
    background: var(--bg-white);
    color: var(--ink-700);
    font-size: 23px;
    cursor: pointer;
}

.menu-modal-close:hover {
    background: var(--fill-100);
}

.menu-modal-top {
    padding: 28px 64px 24px 28px;
    border-bottom: 1px solid var(--line-200);
    background: linear-gradient(135deg, var(--primary-tint), var(--bg-white) 65%);
}

.menu-modal-top h3 {
    color: var(--ink-900);
    font-size: 24px;
    font-weight: 800;
    letter-spacing: -0.025em;
}

.menu-modal-top p {
    margin-top: 6px;
    color: var(--ink-500);
    font-size: 13px;
    line-height: 1.55;
}

.menu-modal-top > strong {
    display: block;
    margin-top: 12px;
    color: var(--ink-900);
    font-size: 18px;
    font-variant-numeric: tabular-nums;
}

.menu-modal-options {
    padding: 4px 28px 8px;
}

.menu-option-group {
    margin: 0;
    padding: 20px 0;
    border: 0;
    border-bottom: 1px solid var(--line-200);
}

.menu-option-group legend {
    display: flex;
    width: 100%;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}

.menu-option-group legend span {
    color: var(--ink-900);
    font-size: 15px;
    font-weight: 800;
}

.menu-option-group legend small {
    padding: 4px 8px;
    border-radius: 999px;
    background: var(--fill-100);
    color: var(--ink-500);
    font-size: 10px;
    font-weight: 700;
}

.menu-option-choice {
    display: grid;
    grid-template-columns: 20px minmax(0, 1fr) auto;
    gap: 10px;
    align-items: center;
    padding: 10px 0;
    color: var(--ink-700);
    font-size: 14px;
    cursor: pointer;
}

.menu-option-choice input {
    width: 18px;
    height: 18px;
    accent-color: var(--primary);
}

.menu-option-choice strong {
    color: var(--ink-600);
    font-size: 12px;
    font-variant-numeric: tabular-nums;
}

.menu-modal-footer {
    position: sticky;
    bottom: 0;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 12px;
    padding: 18px 28px;
    border-top: 1px solid var(--line-200);
    background: rgba(255, 255, 255, 0.96);
    backdrop-filter: blur(10px);
}

.quantity-control button {
    width: 40px;
    height: 44px;
    font-size: 17px;
}

.quantity-control span {
    min-width: 30px;
    text-align: center;
    color: var(--ink-900);
    font-size: 14px;
    font-weight: 800;
}

.menu-modal-footer .btn {
    min-height: 44px;
}

@media (max-width: 1020px) {
    .detail-layout {
        grid-template-columns: minmax(0, 1fr);
    }

    .business-sidebar {
        position: static;
        display: grid;
        grid-template-columns: 1fr 1fr;
    }

    .cart-items {
        max-height: none;
    }
}

@media (max-width: 680px) {
    .business-sidebar {
        grid-template-columns: 1fr;
    }

    .menu-items-grid {
        grid-template-columns: 1fr;
    }

    .menu-item-card,
    .menu-item-card:nth-child(2n),
    .menu-item-card:nth-last-child(-n + 2) {
        min-height: 112px;
        border-right: 0;
        border-bottom: 1px solid var(--fill-100);
    }

    .menu-item-card:last-child {
        border-bottom: 0;
    }

    .menu-modal {
        align-items: flex-end;
        padding: 0;
    }

    .menu-modal-dialog {
        width: 100%;
        max-height: 92vh;
        border-radius: 22px 22px 0 0;
    }

    .menu-modal-top {
        padding: 24px 56px 20px 20px;
    }

    .menu-modal-options {
        padding-right: 20px;
        padding-left: 20px;
    }

    .menu-modal-footer {
        grid-template-columns: 1fr;
        padding: 14px 20px max(14px, env(safe-area-inset-bottom));
    }

    .quantity-control {
        justify-self: start;
    }

    .section-title-row {
        align-items: flex-end;
    }
}

@media (max-width: 480px) {
    .gallery-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* ============================================
   Motion
   ============================================ */
@keyframes rise {
    from {
        transform: translateY(16px);
    }
    to {
        transform: translateY(0);
    }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}

/* ============================================
   Responsive
   ============================================ */
@media (max-width: 900px) {
    .category-grid {
        grid-template-columns: repeat(3, 1fr);
    }

    .business-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 768px) {
    .container {
        padding: 0 16px 32px;
    }

    .hero {
        padding: 48px 0 40px;
        margin-bottom: 32px;
    }

    .hero h2 {
        font-size: 32px;
    }

    .hero p {
        font-size: 15px;
        margin-bottom: 28px;
    }

    section h3 {
        font-size: 19px;
    }

    .search-box {
        padding-left: 16px;
    }

    .search-btn {
        padding: 11px 18px;
        font-size: 14px;
    }

    .filter-section {
        margin-bottom: 40px;
    }

    .category-section {
        margin-bottom: 48px;
    }

    .business-grid {
        gap: 12px;
    }

    .business-image,
    .biz-thumb {
        height: 116px;
    }

    .filter-bar {
        flex-direction: column;
        align-items: stretch;
        gap: 12px;
    }

    .filter-bar form { margin-left: 0; }
    .filter-group { flex: 1; }
    .filter-group select { width: 100%; }

    .search-results-head { align-items: flex-start; }

    .action-buttons {
        flex-direction: column;
    }

    .action-buttons .btn {
        width: 100%;
    }

    .detail-header {
        padding: 28px 20px;
    }

    .detail-header h1 {
        font-size: 25px;
    }

    .detail-content {
        padding: 24px 20px;
    }

    .reservation-actions {
        flex-direction: column;
    }

    .cta-section {
        padding: 44px 24px;
    }

    .cta-section h3 {
        font-size: 22px;
    }

    .footer-inner {
        flex-direction: column;
    }
}

@media (max-width: 480px) {
    .header {
        padding: 0 16px;
    }

    .search-results-page { padding-top: 24px; }
    .search-results-head { display: block; margin-bottom: 18px; }
    .search-results-head h2 { font-size: 24px; }
    .search-location-badge { margin-top: 12px; }
    .filter-bar { padding: 14px; border-radius: 14px; }
    .filter-bar-title span { display: none; }
    .filter-bar form { display: grid; grid-template-columns: 1fr 1fr; width: 100%; }
    .filter-bar form .filter-group:nth-child(3) { grid-column: 1 / -1; }
    .filter-group select { min-width: 0; }

    .logo {
        font-size: 18px;
    }

    .user-menu {
        gap: 4px;
    }

    .menu-link {
        font-size: 13px;
        padding: 7px 9px;
    }

    .hero {
        padding: 36px 0 32px;
        text-align: left;
    }

    .hero h2 {
        font-size: 27px;
    }

    .hero p {
        font-size: 14px;
    }

    .search-hints {
        justify-content: flex-start;
    }

    /* 당근 스타일 가로형 리스트 카드 */
    .business-grid {
        grid-template-columns: 1fr;
        gap: 10px;
    }

    .business-card {
        flex-direction: row;
        align-items: center;
        border-radius: var(--radius-md);
    }

    .business-card .biz-thumb {
        width: 88px;
        height: 88px;
        flex-shrink: 0;
        margin: 14px 0 14px 14px;
        border-radius: 14px;
    }

    .business-card .biz-thumb .thumb-initial {
        font-size: 28px;
    }

    .business-card .biz-thumb .thumb-icon {
        display: none;
    }

    .business-card .business-info {
        padding: 14px 16px;
        gap: 3px;
    }

    .business-card .business-info h4 {
        font-size: 15px;
    }

    .business-card .business-info .meta {
        margin-top: 2px;
    }

    .category-grid {
        grid-template-columns: repeat(3, 1fr);
        gap: 8px;
    }

    .category-card {
        padding: 16px 8px 14px;
    }

    .category-icon {
        width: 44px;
        height: 44px;
        border-radius: 14px;
    }

    .category-icon svg {
        width: 22px;
        height: 22px;
    }

    .category-name {
        font-size: 13px;
    }

    .detail-header {
        padding: 24px 16px;
    }

    .detail-image {
        width: 72px;
        height: 72px;
        border-radius: var(--radius-lg);
    }

    .detail-image svg {
        width: 33px;
        height: 33px;
    }

    .detail-header h1 {
        font-size: 21px;
    }

    .detail-content {
        padding: 20px 16px;
    }

    .chip {
        padding: 8px 13px;
        font-size: 13px;
    }

    .reservation-header {
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
    }
}

/* ============================================
   Business detail: compact brand hero + adaptive gallery
   ============================================ */
.business-brand-hero {
    --brand-accent: #1b64da;
    --brand-soft: #edf4ff;
    position: relative;
    min-height: 220px;
    margin-bottom: 20px;
    padding: 32px 36px;
    overflow: hidden;
    border: 1px solid color-mix(in srgb, var(--brand-accent) 14%, white);
    border-radius: 22px;
    background: linear-gradient(125deg, var(--brand-soft) 0%, #fff 78%);
    text-align: left;
}
.business-brand-hero.cat-restaurants { --brand-accent:#e8590c; --brand-soft:#fff3e8; }
.business-brand-hero.cat-salons { --brand-accent:#d6336c; --brand-soft:#fff0f5; }
.business-brand-hero.cat-hospitals { --brand-accent:#0ca678; --brand-soft:#eaf9f4; }
.business-brand-hero.cat-repair { --brand-accent:#4c6ef5; --brand-soft:#eef1ff; }
.business-brand-hero.cat-realestate { --brand-accent:#2f9e44; --brand-soft:#edf8ef; }
.business-brand-hero.cat-education { --brand-accent:#7048e8; --brand-soft:#f2efff; }
.business-brand-hero.cat-insurance { --brand-accent:#168768; --brand-soft:#eaf8f2; }
.business-brand-hero.cat-moving { --brand-accent:#8e44d2; --brand-soft:#f6effc; }
.business-brand-hero.cat-delivery { --brand-accent:#d96d0b; --brand-soft:#fff4e8; }
.business-brand-pattern { position:absolute; inset:0; pointer-events:none; }
.business-brand-hero.no-cover .business-brand-pattern::before {
    content:""; position:absolute; width:280px; height:280px; right:-70px; top:-120px;
    border:52px solid color-mix(in srgb, var(--brand-accent) 9%, transparent); border-radius:50%;
}
.business-brand-hero.no-cover .business-brand-pattern::after {
    content:""; position:absolute; width:180px; height:12px; right:45px; bottom:38px;
    border-radius:999px; background:color-mix(in srgb, var(--brand-accent) 9%, transparent);
    box-shadow:34px -28px 0 color-mix(in srgb, var(--brand-accent) 6%, transparent);
    transform:rotate(-12deg);
}
.business-cover { position:absolute; inset:0 0 0 auto; width:43%; overflow:hidden; background:var(--brand-soft); }
.business-cover::before { content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(90deg,var(--brand-soft) 0%,transparent 36%),linear-gradient(0deg,rgba(15,24,38,.12),transparent 55%); }
.business-cover img { width:100%; height:100%; display:block; object-fit:cover; }
.business-brand-content { position:relative; z-index:2; min-height:154px; display:flex; align-items:center; gap:24px; }
.business-brand-hero.has-cover .business-brand-content { width:64%; }
.business-brand-hero .detail-image { width:78px; height:78px; flex:0 0 78px; margin:0; border:1px solid rgba(255,255,255,.82); border-radius:20px; box-shadow:0 10px 28px rgba(30,49,78,.1); }
.business-brand-hero .detail-image svg { width:35px; height:35px; }
.business-brand-hero .detail-image.has-logo { overflow:hidden; background:#fff; }
.business-brand-hero .detail-image.has-logo img { width:100%; height:100%; object-fit:contain; padding:7px; }
.business-title-block { min-width:0; }
.business-brand-hero .category-badge { margin:0 0 9px; padding:5px 10px; background:color-mix(in srgb,var(--brand-accent) 10%,white); color:var(--brand-accent); font-size:11px; }
.business-brand-hero .detail-title-row { justify-content:flex-start; gap:12px; }
.business-brand-hero h1 { max-width:100%; margin:0; font-size:clamp(28px,3.2vw,42px); line-height:1.12; letter-spacing:-.045em; }
.business-name-ko { margin:6px 0 0; color:var(--brand-accent); font-size:15px; font-weight:750; letter-spacing:-.015em; }
.business-name-ko-card { margin-top:-2px; color:var(--ink-500); font-size:12px; font-weight:600; line-height:1.35; }
.admin-business-names { display:grid !important; gap:5px; }
.admin-business-names input + input { font-size:11px; color:var(--ink-600); }
.business-hero-description { max-width:560px; margin:10px 0 0; overflow:hidden; color:var(--ink-600); font-size:14px; line-height:1.55; text-overflow:ellipsis; white-space:nowrap; }
.business-hero-meta { display:flex; align-items:center; flex-wrap:wrap; gap:8px 18px; margin-top:13px; }
.business-hero-meta > span { display:inline-flex; align-items:center; gap:6px; color:var(--ink-600); font-size:12px; font-weight:650; }
.business-hero-meta > span > svg { width:15px; height:15px; color:var(--brand-accent); }
.business-brand-hero .rating-badge { justify-content:flex-start; margin:0; color:var(--ink-900); font-size:14px; }
.business-brand-hero .rating-badge svg { width:15px; height:15px; }
.business-brand-hero .review-count { margin-left:2px; font-size:11px; }

.media-gallery-section { margin-bottom:28px; padding-bottom:28px; }
.media-gallery-section h3 { margin-bottom:14px; }
.media-gallery-section .gallery-grid { display:grid; gap:9px; max-height:264px; overflow:hidden; }
.media-gallery-section .gallery-item { position:relative; aspect-ratio:auto; min-height:0; border-radius:13px; background:var(--fill-100); }
.media-gallery-section .gallery-item img,.media-gallery-section .gallery-item video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.gallery-count-1 { grid-template-columns:1fr; grid-template-rows:264px; }
.gallery-count-2 { grid-template-columns:repeat(2,1fr); grid-template-rows:240px; }
.gallery-count-3 { grid-template-columns:repeat(3,1fr); grid-template-rows:210px; }
.gallery-count-4,.gallery-count-5 { grid-template-columns:1.35fr 1fr 1fr; grid-template-rows:repeat(2,126px); }
.gallery-count-4 .gallery-item:first-child,.gallery-count-5 .gallery-item:first-child { grid-row:1 / 3; }
.gallery-count-4 .gallery-item:nth-child(4) { grid-column:2 / 4; }
.gallery-more { position:absolute; inset:0; display:grid; place-items:center; z-index:2; background:rgba(12,24,43,.58); color:#fff; font-size:14px; font-weight:800; }

.media-card { position:relative; overflow:hidden; }
.media-role-badge { position:absolute; top:10px; left:10px; z-index:2; padding:5px 8px; border-radius:999px; background:rgba(20,31,48,.74); color:#fff; font-size:10px; font-weight:800; backdrop-filter:blur(5px); }
.media-role-badge.cover { background:rgba(27,100,218,.9); }.media-role-badge.logo { background:rgba(20,132,91,.9); }
.media-role-form { position:absolute; right:8px; bottom:8px; left:8px; z-index:2; display:flex; gap:6px; padding:7px; border-radius:10px; background:rgba(255,255,255,.93); box-shadow:0 5px 15px rgba(0,0,0,.12); }
.media-role-form select { min-width:0; flex:1; border:0; background:transparent; color:var(--ink-700); font:inherit; font-size:11px; font-weight:700; outline:0; }
.media-role-form button { padding:6px 9px; border:0; border-radius:7px; background:var(--primary); color:#fff; font:inherit; font-size:10px; font-weight:800; cursor:pointer; }

@media (max-width: 760px) {
    .business-brand-hero { min-height:auto; padding:25px; }
    .business-brand-hero.has-cover { padding-top:155px; }
    .business-cover { inset:0 0 auto; width:100%; height:145px; }
    .business-cover::before { background:linear-gradient(0deg,var(--brand-soft),transparent 48%); }
    .business-brand-hero.has-cover .business-brand-content { width:100%; }
    .business-brand-content { min-height:0; align-items:flex-start; gap:15px; }
    .business-brand-hero .detail-image { width:62px; height:62px; flex-basis:62px; border-radius:16px; }
    .business-brand-hero h1 { font-size:27px; }
    .business-hero-description { white-space:normal; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
    .gallery-count-3 { grid-template-columns:repeat(3,1fr); grid-template-rows:160px; }
    .gallery-count-4,.gallery-count-5 { grid-template-columns:1.2fr 1fr; grid-template-rows:repeat(2,112px); }
    .gallery-count-4 .gallery-item:first-child,.gallery-count-5 .gallery-item:first-child { grid-row:1/3; }
    .gallery-count-4 .gallery-item:nth-child(4) { display:none; }
    .gallery-count-5 .gallery-item:nth-child(4),.gallery-count-5 .gallery-item:nth-child(5) { display:none; }
}
@media (max-width: 480px) {
    .business-brand-hero { padding:21px 18px; border-radius:17px; }
    .business-brand-hero.has-cover { padding-top:132px; }
    .business-cover { height:123px; }
    .business-brand-content { display:grid; grid-template-columns:52px 1fr; gap:12px; }
    .business-brand-hero .detail-image { width:52px; height:52px; flex-basis:52px; border-radius:14px; }
    .business-brand-hero .detail-image svg { width:26px; height:26px; }
    .business-brand-hero h1 { font-size:23px; }
    .business-brand-hero .detail-title-row { align-items:flex-start; flex-direction:column; }
    .business-brand-hero .favorite-button { position:absolute; top:0; right:0; }
    .business-hero-description,.business-hero-meta { grid-column:1 / -1; }
    .media-gallery-section .gallery-grid { max-height:206px; }
    .gallery-count-1,.gallery-count-2,.gallery-count-3 { grid-template-rows:190px; }
    .gallery-count-3 { grid-template-columns:repeat(2,1fr); }
    .gallery-count-3 .gallery-item:nth-child(3) { display:none; }
    .gallery-count-4,.gallery-count-5 { grid-template-rows:repeat(2,98px); }
}

/* Menu item image manager */
.dashboard-menu-name-cell { display:flex; align-items:center; gap:12px; min-width:230px; }
.menu-image-trigger { position:relative; display:grid; width:62px; height:62px; flex:0 0 62px; place-items:center; overflow:hidden; padding:0; border:1px dashed #b8c6da; border-radius:12px; background:#f6f8fb; color:var(--primary); cursor:pointer; }
.menu-image-trigger:hover { border-color:var(--primary); background:var(--primary-tint); }
.menu-image-trigger img { width:100%; height:100%; object-fit:cover; }
.menu-image-trigger > span { font-size:20px; line-height:1; }.menu-image-trigger > small { margin-top:-13px; font-size:9px; font-weight:750; }
.menu-image-trigger em { position:absolute; right:3px; bottom:3px; padding:2px 5px; border-radius:999px; background:rgba(15,30,52,.78); color:#fff; font-size:9px; font-style:normal; font-weight:800; }
.menu-image-manager[hidden] { display:none; }.menu-image-manager { position:fixed; z-index:1200; inset:0; display:flex; align-items:center; justify-content:center; padding:20px; }
.menu-image-manager-backdrop { position:absolute; inset:0; background:rgba(15,23,42,.62); backdrop-filter:blur(4px); }
.menu-image-manager-dialog { position:relative; z-index:1; width:min(760px,100%); max-height:calc(100vh - 40px); overflow-y:auto; border-radius:22px; background:#fff; box-shadow:0 28px 80px rgba(15,23,42,.3); }
.menu-image-manager-dialog > header { padding:27px 64px 22px 28px; border-bottom:1px solid var(--line-200); background:linear-gradient(135deg,var(--primary-tint),#fff 68%); }
.menu-image-manager-dialog > header h3 { margin:5px 0 5px; font-size:23px; }.menu-image-manager-dialog > header p { margin:0; color:var(--ink-500); font-size:12px; }
.menu-image-panel { padding:25px 28px 30px; }.menu-image-panel > h4 { margin:0 0 14px; font-size:16px; }
.menu-image-dropzone { display:flex; min-height:145px; align-items:center; justify-content:center; flex-direction:column; gap:5px; padding:20px; border:2px dashed #bdc9d9; border-radius:16px; background:var(--fill-50); color:var(--ink-700); text-align:center; cursor:pointer; transition:.18s ease; }
.menu-image-dropzone:hover,.menu-image-dropzone.is-dragging { border-color:var(--primary); background:var(--primary-tint); transform:translateY(-1px); }.menu-image-dropzone input { position:absolute; width:1px; height:1px; opacity:0; }.menu-image-drop-icon { display:grid; width:38px; height:38px; margin-bottom:3px; place-items:center; border-radius:50%; background:#fff; color:var(--primary); font-size:22px; box-shadow:0 4px 13px rgba(31,78,150,.1); }.menu-image-dropzone strong { font-size:13px; }.menu-image-dropzone small { color:var(--ink-400); font-size:10px; }
.menu-image-upload-actions { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:11px 0 2px; color:var(--ink-500); font-size:11px; }
.menu-image-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin-top:20px; }
.menu-image-tile { position:relative; overflow:hidden; aspect-ratio:1; border:2px solid transparent; border-radius:13px; background:var(--fill-100); cursor:grab; }.menu-image-tile.is-dragging { opacity:.45; border-color:var(--primary); }.menu-image-tile img { width:100%; height:100%; display:block; object-fit:cover; }.menu-image-tile > strong { position:absolute; left:7px; bottom:7px; padding:4px 7px; border-radius:999px; background:var(--primary); color:#fff; font-size:9px; }.menu-image-drag { position:absolute; top:7px; left:7px; display:grid; width:25px; height:25px; place-items:center; border-radius:7px; background:rgba(15,30,52,.68); color:#fff; font-size:16px; }.menu-image-delete-button { position:absolute; top:7px; right:7px; display:grid; width:25px; height:25px; place-items:center; padding:0; border:0; border-radius:50%; background:rgba(255,255,255,.92); color:#bd2d2d; font-size:17px; cursor:pointer; }
.menu-image-sort-actions { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:12px; }.menu-image-sort-actions p { margin:0; color:var(--ink-500); font-size:11px; }.menu-image-empty { margin-top:18px; padding:24px; border-radius:12px; background:var(--fill-50); color:var(--ink-500); text-align:center; font-size:12px; }

/* Public menu photos */
.menu-item-thumb { width:78px; height:78px; flex:0 0 78px; overflow:hidden; border-radius:12px; background:var(--fill-100); }.menu-item-thumb img { width:100%; height:100%; display:block; object-fit:cover; }
.menu-item-card.has-photo { align-items:center; justify-content:flex-start; }.menu-item-card.has-photo .menu-item-copy { flex:1; }.menu-item-card.has-photo .menu-item-side { align-self:stretch; justify-content:space-between; }
.menu-modal-gallery { display:grid; grid-auto-flow:column; grid-auto-columns:78%; gap:8px; overflow-x:auto; padding:0 0 14px; scroll-snap-type:x mandatory; scrollbar-width:thin; }.menu-modal-gallery:empty { display:none; }.menu-modal-gallery img { width:100%; height:235px; border-radius:15px; object-fit:cover; scroll-snap-align:start; }

@media (max-width: 680px) {
    .menu-image-manager { align-items:flex-end; padding:0; }.menu-image-manager-dialog { max-height:92vh; border-radius:22px 22px 0 0; }.menu-image-manager-dialog > header,.menu-image-panel { padding-right:20px; padding-left:20px; }.menu-image-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
    .dashboard-menu-name-cell { min-width:190px; }.menu-image-trigger { width:54px; height:54px; flex-basis:54px; }.menu-item-thumb { width:68px; height:68px; flex-basis:68px; }.menu-modal-gallery img { height:190px; }
}

/* Cart confirmation and mobile cart visibility */
.menu-item-card.in-cart { background:#f2fbf7; box-shadow:inset 3px 0 0 #17a36b; }
.menu-item-card.in-cart .menu-add-mark { border-color:#17a36b; background:#17a36b; color:#fff; font-size:14px; font-weight:850; }
.menu-cart-status { padding:4px 7px; border-radius:999px; background:#e7f8f0; color:#13825a; font-size:9px; font-weight:850; white-space:nowrap; }
.cart-feedback[hidden],.mobile-cart-bar[hidden] { display:none !important; }
.cart-feedback { position:fixed; z-index:1300; right:24px; bottom:24px; display:flex; width:min(360px,calc(100vw - 32px)); align-items:center; gap:12px; padding:14px 15px; border:1px solid #bce7d4; border-radius:15px; background:#fff; box-shadow:0 18px 48px rgba(15,45,35,.2); opacity:0; transform:translateY(12px); transition:opacity .2s ease,transform .2s ease; }
.cart-feedback.is-showing { opacity:1; transform:translateY(0); }.cart-feedback-check { display:grid; width:36px; height:36px; flex:0 0 36px; place-items:center; border-radius:50%; background:#18a66d; color:#fff; font-size:18px; font-weight:850; }.cart-feedback > div { min-width:0; flex:1; }.cart-feedback strong,.cart-feedback small { display:block; }.cart-feedback strong { overflow:hidden; color:var(--ink-900); font-size:13px; text-overflow:ellipsis; white-space:nowrap; }.cart-feedback small { margin-top:2px; color:#16805a; font-size:11px; font-weight:700; }.cart-feedback button { width:28px; height:28px; padding:0; border:0; background:transparent; color:var(--ink-400); font-size:19px; cursor:pointer; }
.mobile-cart-bar { display:none; }

@media (max-width: 760px) {
    body.has-mobile-cart { padding-bottom:78px; }
    .mobile-cart-bar { position:fixed; z-index:950; right:0; bottom:0; left:0; display:block; padding:10px 14px max(10px,env(safe-area-inset-bottom)); background:rgba(255,255,255,.96); border-top:1px solid var(--line-200); box-shadow:0 -10px 28px rgba(25,43,70,.12); backdrop-filter:blur(9px); }
    .mobile-cart-bar button { display:grid; width:100%; min-height:50px; grid-template-columns:1fr auto auto; align-items:center; gap:12px; padding:0 17px; border:0; border-radius:13px; background:var(--primary); color:#fff; font:inherit; cursor:pointer; }
    .mobile-cart-bar span { justify-self:start; font-size:13px; font-weight:800; }.mobile-cart-bar em { display:inline-grid; min-width:21px; height:21px; margin-left:5px; place-items:center; border-radius:999px; background:#fff; color:var(--primary); font-size:10px; font-style:normal; }.mobile-cart-bar strong { font-size:14px; }.mobile-cart-bar b { padding-left:12px; border-left:1px solid rgba(255,255,255,.35); font-size:12px; }
    .cart-feedback { right:16px; bottom:82px; left:16px; width:auto; }
    .menu-item-side { gap:7px; }.menu-cart-status { display:inline-flex; }.menu-item-card.in-cart { box-shadow:inset 3px 0 0 #17a36b; }
}

/* Customer-to-business inquiries */
.contact-business-open { font:inherit; cursor:pointer; }
.contact-business-modal[hidden] { display:none; }.contact-business-modal { position:fixed; z-index:1250; inset:0; display:flex; align-items:center; justify-content:center; padding:20px; }.contact-business-backdrop { position:absolute; inset:0; background:rgba(15,23,42,.62); backdrop-filter:blur(4px); }.contact-business-dialog { position:relative; z-index:1; width:min(610px,100%); max-height:calc(100vh - 40px); overflow-y:auto; border-radius:22px; background:#fff; box-shadow:0 28px 80px rgba(15,23,42,.3); }.contact-business-dialog > header { padding:27px 64px 22px 28px; border-bottom:1px solid var(--line-200); background:linear-gradient(135deg,var(--primary-tint),#fff 68%); }.contact-business-dialog > header h3 { margin:5px 0; font-size:22px; }.contact-business-dialog > header p { margin:0; color:var(--ink-500); font-size:12px; }.contact-business-dialog form { padding:25px 28px 28px; }.contact-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:15px; }.contact-form-grid label { display:grid; gap:7px; }.contact-form-grid label > span { color:var(--ink-700); font-size:11px; font-weight:750; }.contact-form-grid .full { grid-column:1/-1; }.contact-form-result { min-height:18px; margin:10px 0; color:#c23b3b; font-size:11px; }.contact-business-dialog form > .btn { width:100%; }.contact-form-success { padding:50px 28px; text-align:center; }.contact-form-success > span { display:grid; width:58px; height:58px; margin:0 auto 15px; place-items:center; border-radius:50%; background:#e7f8f0; color:#16905f; font-size:27px; font-weight:850; }.contact-form-success h3 { margin:0 0 8px; font-size:22px; }.contact-form-success p { max-width:390px; margin:0 auto 22px; color:var(--ink-500); font-size:12px; line-height:1.6; }
.inquiry-layout { display:grid; grid-template-columns:minmax(340px,.85fr) minmax(0,1.15fr); align-items:start; gap:18px; }.inquiry-list-panel,.inquiry-detail-panel { margin:0; }.inquiry-list { display:grid; gap:7px; margin-top:16px; }.inquiry-list-item { position:relative; display:flex; align-items:flex-start; gap:11px; padding:14px; border:1px solid var(--line-200); border-radius:12px; color:inherit; text-decoration:none; }.inquiry-list-item:hover,.inquiry-list-item.is-selected { border-color:#b8cdf2; background:var(--primary-tint); }.inquiry-list-item.is-new { border-left:3px solid var(--primary); }.inquiry-avatar { display:grid; width:38px; height:38px; flex:0 0 38px; place-items:center; border-radius:11px; background:#edf3fc; color:var(--primary); font-weight:800; }.inquiry-list-item > div { min-width:0; flex:1; }.inquiry-list-top { display:flex; align-items:center; justify-content:space-between; gap:8px; }.inquiry-list-top strong { font-size:12px; }.inquiry-list-top time { color:var(--ink-400); font-size:9px; }.inquiry-list-item h4 { margin:5px 0 3px; overflow:hidden; font-size:13px; text-overflow:ellipsis; white-space:nowrap; }.inquiry-list-item p { margin:0; overflow:hidden; color:var(--ink-500); font-size:10px; text-overflow:ellipsis; white-space:nowrap; }.inquiry-list-item > em { position:absolute; top:11px; right:10px; padding:3px 5px; border-radius:999px; background:var(--primary); color:#fff; font-size:7px; font-style:normal; font-weight:850; }.inquiry-empty { padding:45px 20px; color:var(--ink-500); text-align:center; }.inquiry-detail-panel { min-height:430px; }.inquiry-detail-empty { display:grid; min-height:360px; place-items:center; align-content:center; text-align:center; }.inquiry-detail-empty > span { font-size:34px; }.inquiry-detail-empty h3 { margin:10px 0 4px; }.inquiry-detail-empty p { margin:0; color:var(--ink-500); font-size:11px; }.inquiry-detail-panel > h3 { margin:13px 0 14px; font-size:21px; }.inquiry-sender { display:flex; align-items:flex-start; flex-direction:column; gap:4px; padding:13px; border-radius:11px; background:var(--fill-50); font-size:11px; }.inquiry-sender a { color:var(--primary); }.inquiry-sender time { margin-top:3px; color:var(--ink-400); }.inquiry-message { min-height:145px; margin:20px 0; color:var(--ink-700); font-size:13px; line-height:1.8; }.inquiry-reply-actions,.inquiry-status-form { display:flex; gap:8px; }.inquiry-status-form { align-items:center; margin-top:18px; padding-top:18px; border-top:1px solid var(--line-200); }.inquiry-status-form select { max-width:150px; }.inquiry-status-form button { white-space:nowrap; }
@media (max-width:800px){.inquiry-layout{grid-template-columns:1fr}.inquiry-detail-panel{min-height:0}}
@media (max-width:600px){.contact-business-modal{align-items:flex-end;padding:0}.contact-business-dialog{max-height:92vh;border-radius:22px 22px 0 0}.contact-business-dialog>header,.contact-business-dialog form{padding-right:20px;padding-left:20px}.contact-form-grid{grid-template-columns:1fr}.contact-form-grid .full{grid-column:auto}.inquiry-reply-actions{flex-direction:column}.inquiry-reply-actions .btn{width:100%}}
.inquiry-list-item small { display:block; margin-top:3px; color:var(--primary); font-size:9px; font-weight:750; }

/* Unified customer activity pages */
.my-activity-page { max-width:980px; padding-top:38px; padding-bottom:76px; }
.my-activity-hero { margin-bottom:24px; border:1px solid var(--line-200); border-radius:20px; background:linear-gradient(135deg,#f4f8ff 0%,#fff 65%); overflow:hidden; }
.my-activity-title-row { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:30px 32px 25px; }
.my-activity-eyebrow { color:var(--primary); font-size:9px; font-weight:850; letter-spacing:.14em; }.my-activity-title-row h2 { display:flex; align-items:center; gap:9px; margin:7px 0 6px; color:var(--ink-900); font-size:29px; letter-spacing:-.04em; }.my-activity-title-row h2 em { display:grid; min-width:25px; height:25px; place-items:center; padding:0 7px; border-radius:999px; background:#fff; color:var(--primary); font-size:11px; font-style:normal; box-shadow:0 3px 12px rgba(31,78,150,.08); }.my-activity-title-row p { margin:0; color:var(--ink-500); font-size:12px; }.my-activity-search { display:flex; align-items:center; gap:12px; flex:0 0 auto; padding:10px 13px; border:1px solid var(--line-200); border-radius:10px; background:#fff; color:var(--ink-700); font-size:11px; font-weight:750; text-decoration:none; }.my-activity-search span { color:var(--primary); font-size:16px; }
.my-activity-tabs { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line-200); background:rgba(255,255,255,.7); }.my-activity-tabs a { position:relative; display:flex; min-height:54px; align-items:center; justify-content:center; gap:7px; color:var(--ink-500); font-size:12px; font-weight:750; text-decoration:none; }.my-activity-tabs a+a { border-left:1px solid var(--line-200); }.my-activity-tabs a svg { width:16px; height:16px; }.my-activity-tabs a:hover,.my-activity-tabs a.active { color:var(--primary); background:#fff; }.my-activity-tabs a.active::after { content:""; position:absolute; right:22%; bottom:0; left:22%; height:2px; border-radius:999px; background:var(--primary); }
.my-activity-email-filter { display:flex; align-items:center; gap:14px; margin-bottom:18px; padding:13px 16px; border:1px solid var(--line-200); border-radius:13px; background:#fff; }.my-activity-email-filter>span { flex:0 0 auto; color:var(--ink-500); font-size:10px; font-weight:800; }.my-activity-email-filter .filter-chips { display:flex; gap:7px; overflow-x:auto; }
.my-activity-list { display:grid; gap:13px; }.my-activity-card { overflow:hidden; border:1px solid var(--line-200); border-radius:17px; background:#fff; box-shadow:0 5px 18px rgba(30,49,78,.035); }.my-activity-card>header { display:flex; align-items:center; gap:13px; padding:19px 21px; border-bottom:1px solid var(--line-200); }.my-activity-business-mark { display:grid; width:44px; height:44px; flex:0 0 44px; place-items:center; border-radius:13px; background:var(--primary-tint); color:var(--primary); font-size:16px; font-weight:850; }.my-activity-card>header>div:nth-child(2) { min-width:0; flex:1; }.my-activity-card-label { display:block; margin-bottom:3px; color:var(--ink-400); font-size:9px; font-weight:750; letter-spacing:.04em; }.my-activity-card h3 { margin:0; font-size:16px; }.my-activity-card h3 a { color:var(--ink-900); text-decoration:none; }.my-activity-card h3 a:hover { color:var(--primary); }.my-activity-card>header p { margin:3px 0 0; color:var(--ink-500); font-size:10px; }.activity-status { flex:0 0 auto; padding:6px 9px; border-radius:999px; background:#eef1f5; color:var(--ink-600); font-size:9px; font-weight:850; }.activity-status.reservation-confirmed,.activity-status.order-confirmed,.activity-status.order-ready,.activity-status.order-completed { background:#e7f8f0;color:#137e58; }.activity-status.reservation-pending,.activity-status.order-pending,.activity-status.order-payment_pending,.activity-status.order-preparing { background:#fff5d8;color:#916800; }.activity-status.reservation-cancelled,.activity-status.order-cancelled { background:#fff0f0;color:#b63e3e; }
.my-reservation-facts { display:grid; grid-template-columns:1.25fr .75fr 1fr; gap:0; padding:20px 21px; }.my-reservation-facts>div { display:flex; align-items:center; gap:10px; min-width:0; padding:0 18px; }.my-reservation-facts>div:first-child { padding-left:0; }.my-reservation-facts>div+div { border-left:1px solid var(--line-200); }.my-reservation-facts svg { width:19px; height:19px; flex:0 0 19px; color:var(--primary); }.my-reservation-facts span { display:grid; gap:3px; min-width:0; }.my-reservation-facts small { color:var(--ink-400); font-size:9px; }.my-reservation-facts strong { overflow:hidden; color:var(--ink-800); font-size:11px; text-overflow:ellipsis; white-space:nowrap; }.my-activity-note { margin:0 21px 18px; padding:12px 14px; border-radius:10px; background:var(--fill-50); }.my-activity-note strong { font-size:10px; }.my-activity-note p { margin:4px 0 0; color:var(--ink-600); font-size:11px; line-height:1.5; }
.my-activity-card>footer { display:flex; min-height:58px; align-items:center; justify-content:space-between; gap:14px; padding:12px 21px; border-top:1px solid var(--line-200); background:var(--fill-50); }.my-activity-card>footer>span { display:inline-flex; align-items:center; gap:6px; color:var(--ink-500); font-size:10px; }.my-activity-card>footer svg { width:14px;height:14px;color:var(--primary); }.my-activity-actions { display:flex; align-items:center; gap:7px; }.my-activity-actions form { margin:0; }.my-activity-footer-copy { margin-right:auto; }
.my-order-items { display:grid; padding:8px 21px; }.my-order-items>div { display:flex; align-items:center; justify-content:space-between; gap:15px; padding:11px 0; border-bottom:1px solid var(--fill-100); color:var(--ink-600); font-size:11px; }.my-order-items>div:last-child { border-bottom:0; }.my-order-items>div>strong { color:var(--ink-800); font-size:12px; }.my-activity-total { display:flex; align-items:baseline; gap:8px; margin-left:auto; }.my-activity-total small { color:var(--ink-500); font-size:10px; }.my-activity-total strong { color:var(--ink-900); font-size:17px; }
.my-activity-empty { padding:70px 24px; border:1px dashed var(--line-300); border-radius:18px; background:var(--fill-50); text-align:center; }.my-activity-empty-icon { display:grid; width:56px;height:56px;margin:0 auto 14px;place-items:center;border-radius:50%;background:#fff;color:var(--primary);box-shadow:0 5px 18px rgba(31,78,150,.08); }.my-activity-empty-icon svg { width:25px;height:25px; }.my-activity-empty h3 { margin:0 0 7px;font-size:18px; }.my-activity-empty p { max-width:440px;margin:0 auto 20px;color:var(--ink-500);font-size:12px; }.my-activity-empty>div { display:flex;justify-content:center;gap:8px; }
.my-favorites-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:13px; }.my-favorite-card { position:relative; display:flex; min-width:0; align-items:center; gap:15px; padding:15px; border:1px solid var(--line-200); border-radius:16px; background:#fff; color:inherit; text-decoration:none; transition:.18s ease; }.my-favorite-card:hover { transform:translateY(-2px);border-color:#bad0f3;box-shadow:0 12px 25px rgba(30,64,115,.08); }.my-favorite-media { position:relative; width:92px;height:92px;flex:0 0 92px;overflow:hidden;border-radius:13px;background:var(--fill-100); }.my-favorite-media .biz-thumb { width:100%;height:100%;margin:0;border-radius:0; }.my-favorite-media>span { position:absolute;top:7px;right:7px;display:grid;width:25px;height:25px;place-items:center;border-radius:50%;background:rgba(255,255,255,.94);color:#f2a400;font-size:13px; }.my-favorite-copy { min-width:0;flex:1; }.my-favorite-copy h3 { margin:4px 0 3px;overflow:hidden;font-size:15px;text-overflow:ellipsis;white-space:nowrap; }.my-favorite-copy>p { margin:0 0 10px;color:var(--ink-500);font-size:10px; }.my-favorite-copy>div { display:flex;align-items:center;flex-wrap:wrap;gap:6px 11px;color:var(--ink-500);font-size:10px; }.my-favorite-copy>div span { display:inline-flex;align-items:center;gap:4px; }.my-favorite-copy svg { width:12px;height:12px;color:var(--primary); }.my-favorite-card>b { color:var(--ink-300);font-size:22px; }
@media(max-width:700px){.my-activity-page{padding-top:22px}.my-activity-title-row{align-items:flex-start;padding:23px 20px 20px}.my-activity-title-row h2{font-size:24px}.my-activity-search{display:none}.my-activity-tabs a{min-height:50px}.my-activity-email-filter{align-items:flex-start;flex-direction:column}.my-reservation-facts{grid-template-columns:1fr;padding:7px 18px}.my-reservation-facts>div,.my-reservation-facts>div:first-child{padding:11px 0}.my-reservation-facts>div+div{border-top:1px solid var(--line-200);border-left:0}.my-activity-card>footer{align-items:flex-start;flex-direction:column}.my-activity-actions{width:100%}.my-activity-actions .btn{flex:1}.my-activity-actions form{flex:1}.my-activity-actions form .btn{width:100%}.my-activity-footer-copy{display:none!important}.my-favorites-grid{grid-template-columns:1fr}.my-favorite-media{width:78px;height:78px;flex-basis:78px}}

/* Favorites card density is the reference for reservations and orders */
.my-activity-list { grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; }
.my-activity-card>header { padding:17px 18px; }
.my-reservation-facts { grid-template-columns:1fr; padding:7px 18px; }
.my-reservation-facts>div,.my-reservation-facts>div:first-child { padding:11px 0; }
.my-reservation-facts>div+div { border-top:1px solid var(--line-200); border-left:0; }
.my-activity-card>footer { gap:12px; padding:11px 18px; }
@media(max-width:700px){.my-activity-list{grid-template-columns:1fr}}

/* Guided restaurant menu setup */
.menu-import-intro{padding:30px;background:linear-gradient(135deg,#fff,#f6f9ff)}.menu-import-intro>h3{margin:7px 0 8px;font-size:24px;letter-spacing:-.035em}.menu-import-intro>p{max-width:780px;color:var(--ink-500);font-size:13px;line-height:1.7}.menu-import-methods{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:24px}.menu-import-method{appearance:none;display:grid;grid-template-columns:46px 1fr;gap:2px 12px;min-height:148px;padding:18px;border:1px solid var(--line-200);border-radius:16px;background:#fff;color:var(--ink-700);font:inherit;text-align:left;text-decoration:none;cursor:pointer;transition:border-color .18s,box-shadow .18s,transform .18s}.menu-import-method:hover,.menu-import-method.is-active{border-color:#a9c8fa;box-shadow:0 10px 28px rgba(35,76,139,.09);transform:translateY(-2px)}.menu-import-method.is-active{background:var(--primary-tint)}.menu-import-method-icon{grid-row:1/5;width:44px;height:44px;display:grid;place-items:center;border-radius:12px;background:var(--primary-tint);color:var(--primary);font-size:18px;font-weight:850}.menu-import-method small{color:var(--primary);font-size:9px;font-weight:850;letter-spacing:.1em}.menu-import-method strong{font-size:16px}.menu-import-method p{color:var(--ink-500);font-size:12px;line-height:1.45}.menu-import-method em{align-self:end;margin-top:7px;color:var(--primary);font-size:11px;font-style:normal;font-weight:750}.menu-import-workspace{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:40px;align-items:center;padding:30px}.menu-import-workspace[hidden]{display:none}.menu-import-workspace h3{margin:7px 0 8px;font-size:23px}.menu-import-workspace>div>p,.menu-import-workspace li{color:var(--ink-500);font-size:13px;line-height:1.65}.menu-import-workspace ol{margin:16px 0 0;padding-left:20px}.excel-field-list{display:flex;flex-wrap:wrap;gap:7px;margin:17px 0}.excel-field-list span{padding:6px 9px;border-radius:8px;background:var(--fill-100);color:var(--ink-600);font-size:11px;font-weight:700}.menu-dropzone.has-file{border-color:var(--primary);background:var(--primary-tint)}
.menu-import-draft .section-title-row{align-items:flex-start;margin-bottom:22px}.menu-import-review:not(.has-source-photo){grid-template-columns:1fr}.menu-import-review.has-source-photo{grid-template-columns:280px minmax(0,1fr)}.import-item-v2{display:grid;grid-template-columns:62px minmax(0,1fr);gap:13px;padding:15px;border:1px solid var(--line-200);border-radius:15px;background:#fff}.import-item-select{display:flex;flex-direction:column;align-items:center;gap:7px;padding-top:19px}.import-item-select label{display:grid;place-items:center;gap:4px;color:var(--primary);font-size:11px;font-weight:750}.import-item-select input{width:18px;height:18px;accent-color:var(--primary)}.import-item-select small{color:var(--ink-400);font-size:10px}.import-fields-v2{display:grid;grid-template-columns:1fr 145px;gap:11px}.import-fields-v2 label{display:flex;flex-direction:column;gap:5px}.import-fields-v2 label>span{color:var(--ink-600);font-size:11px;font-weight:750}.import-fields-v2 .wide{grid-column:1/-1}.import-fields-v2 textarea{resize:vertical}.import-spicy-check{flex-direction:row!important;align-items:center;align-self:center}.import-spicy-check input{width:17px;height:17px;accent-color:#e74b24}.import-image-field input{padding:8px;border:1px dashed var(--line-300);border-radius:9px;font-size:11px}.import-image-field small{color:var(--ink-400);font-size:10px}.menu-draft-actions{position:sticky;bottom:0;display:flex;justify-content:flex-end;gap:9px;padding:14px 0 0;background:linear-gradient(transparent,#fff 20%)}
.menu-manual-form{margin-top:22px}.menu-manual-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.menu-manual-grid .form-group{margin:0}.menu-manual-grid textarea{resize:vertical}.menu-manual-wide{grid-column:1/-1}.menu-manual-spicy{display:flex;align-items:center;gap:8px;min-height:48px;padding:12px;border:1px solid var(--line-200);border-radius:10px;color:var(--ink-700);font-size:13px;font-weight:700}.menu-manual-spicy input{width:18px;height:18px;accent-color:#e74b24}.menu-manual-image{display:flex;flex-direction:column;gap:6px;padding:10px 12px;border:1px dashed var(--line-300);border-radius:10px}.menu-manual-image input{font-size:12px}.menu-manual-image small{color:var(--ink-400);font-size:10px}.menu-manual-submit{grid-column:1/-1;display:flex;justify-content:flex-end;padding-top:4px}.menu-manual-submit .btn{min-width:150px}.dashboard-menu-korean-name{display:block;margin-top:3px;color:var(--primary);font-size:12px}.dashboard-menu-meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.dashboard-menu-meta>span{padding:3px 6px;border-radius:6px;background:var(--fill-100);color:var(--ink-500);font-size:10px}.menu-spicy-badge{display:inline-flex;align-items:center;width:max-content;color:#d94b28;font-size:10px;font-weight:750}.menu-name-ko{display:block;margin-top:3px;color:var(--primary);font-size:11px;font-weight:650}.menu-additional-info{display:block;margin-top:5px;color:var(--ink-400);font-size:10px}
@media(max-width:820px){.menu-import-methods{grid-template-columns:1fr}.menu-import-method{min-height:118px}.menu-import-workspace,.menu-import-review.has-source-photo{grid-template-columns:1fr}.menu-import-review>img{position:static;max-height:360px}}@media(max-width:580px){.menu-import-intro,.menu-import-workspace{padding:20px}.menu-manual-grid,.import-fields-v2{grid-template-columns:1fr}.menu-manual-wide,.import-fields-v2 .wide,.menu-manual-submit{grid-column:auto}.import-item-v2{grid-template-columns:1fr}.import-item-select{flex-direction:row;justify-content:space-between;padding-top:0}.import-item-select label{display:flex}.menu-draft-actions{flex-direction:column-reverse}.menu-draft-actions .btn{width:100%}}

/* Owner dashboard: frequent operations left, settings grouped right */
.dash-workspace-nav{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:18px;margin:16px 0 28px;border-bottom:1px solid var(--line-200)}.dash-operation-group{display:flex;min-width:0;align-items:center;gap:8px}.dash-nav-label{flex:0 0 auto;margin-bottom:10px;padding:3px 7px;border-radius:6px;background:#eef4ff;color:var(--primary);font-size:9px;font-weight:850;letter-spacing:.08em}.dash-operation-nav{display:flex;min-width:0;gap:2px;overflow-x:auto;scrollbar-width:none}.dash-operation-nav::-webkit-scrollbar{display:none}.dash-operation-link{position:relative;display:inline-flex;min-height:47px;align-items:center;gap:6px;padding:11px 12px;border-bottom:2px solid transparent;color:var(--ink-500);font-size:13px;font-weight:680;text-decoration:none;white-space:nowrap;transition:color .18s,background .18s,border-color .18s}.dash-operation-link>span{font-size:14px;filter:saturate(.85)}.dash-operation-link:hover{color:var(--ink-900);background:var(--fill-50)}.dash-operation-link.on{border-bottom-color:var(--primary);color:var(--primary);background:linear-gradient(180deg,transparent,var(--primary-tint))}.dash-settings-menu{position:relative;margin-bottom:6px}.dash-settings-trigger{display:inline-flex;min-height:38px;align-items:center;gap:7px;padding:8px 11px;border:1px solid var(--line-200);border-radius:10px;background:#fff;color:var(--ink-600);font:inherit;font-size:12px;font-weight:750;white-space:nowrap;cursor:pointer}.dash-settings-trigger>svg{width:13px;height:13px;transition:transform .18s}.dash-settings-trigger:hover,.dash-settings-menu.has-active .dash-settings-trigger,.dash-settings-menu.is-open .dash-settings-trigger{border-color:#b9d0f5;background:var(--primary-tint);color:var(--primary)}.dash-settings-menu.is-open .dash-settings-trigger>svg{transform:rotate(180deg)}.dash-settings-panel[hidden]{display:none}.dash-settings-panel{position:absolute;top:calc(100% + 8px);right:0;z-index:80;width:320px;overflow:hidden;border:1px solid var(--line-200);border-radius:15px;background:#fff;box-shadow:0 18px 45px rgba(27,46,76,.16);animation:category-menu-in .16s var(--ease-out)}.dash-settings-panel>header{padding:16px 18px 13px;border-bottom:1px solid var(--line-200);background:linear-gradient(110deg,#f7faff,#fff)}.dash-settings-panel>header small,.dash-settings-panel>header strong{display:block}.dash-settings-panel>header small{margin-bottom:3px;color:var(--primary);font-size:8px;font-weight:850;letter-spacing:.12em}.dash-settings-panel>header strong{font-size:15px}.dash-settings-panel nav{display:grid;grid-template-columns:1fr 1fr;gap:7px;padding:10px}.dash-settings-panel nav>a{display:grid;grid-template-columns:30px minmax(0,1fr);align-items:center;gap:8px;min-height:62px;padding:9px;border:1px solid transparent;border-radius:10px;color:var(--ink-700);text-decoration:none}.dash-settings-panel nav>a:hover,.dash-settings-panel nav>a.on{border-color:#c7daf8;background:var(--primary-tint);color:var(--primary)}.dash-settings-panel nav>a>span{display:grid;width:30px;height:30px;place-items:center;border-radius:8px;background:var(--fill-100);font-size:14px}.dash-settings-panel nav>a strong,.dash-settings-panel nav>a small{display:block}.dash-settings-panel nav>a strong{font-size:11px}.dash-settings-panel nav>a small{margin-top:2px;color:var(--ink-400);font-size:8px;line-height:1.35}
@media(max-width:900px){.dash-workspace-nav{gap:8px}.dash-nav-label{display:none}.dash-operation-group{overflow:hidden}.dash-operation-link{padding-inline:10px}.dash-operation-link>span{font-size:13px}}@media(max-width:600px){.dash-head{margin-top:20px}.dash-workspace-nav{grid-template-columns:minmax(0,1fr) 40px;margin-top:12px}.dash-operation-nav{width:100%;overscroll-behavior-x:contain;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}.dash-operation-link{min-height:44px;padding:10px 9px;font-size:12px;scroll-snap-align:start}.dash-settings-menu{margin-right:0}.dash-settings-trigger{width:40px;padding:8px;justify-content:center}.dash-settings-trigger>span:nth-child(2),.dash-settings-trigger>svg{display:none}.dash-settings-panel{position:fixed;top:62px;right:10px;left:10px;width:auto;max-height:calc(100vh - 74px);overflow-y:auto}.dash-settings-panel nav{grid-template-columns:1fr 1fr}}

/* Large reservation date picker */
.reservation-calendar{position:relative;width:100%;min-width:0}.reservation-date-trigger{width:100%;min-height:52px;display:flex;align-items:center;gap:10px;padding:8px 12px;border:1px solid var(--line-200);border-radius:10px;background:#fff;color:var(--ink-700);font:inherit;text-align:left;cursor:pointer;transition:border-color .18s,box-shadow .18s}.reservation-date-trigger:hover,.reservation-calendar.is-open .reservation-date-trigger{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-tint)}.reservation-date-trigger>svg:first-child{width:20px;height:20px;flex:0 0 20px;color:var(--primary)}.reservation-date-trigger>span{display:grid;gap:1px;min-width:0;flex:1}.reservation-date-trigger small{color:var(--ink-400);font-size:9px;font-weight:700}.reservation-date-trigger strong{font-size:14px}.reservation-date-chevron{width:14px;height:14px;transition:transform .18s}.reservation-calendar.is-open .reservation-date-chevron{transform:rotate(180deg)}.reservation-calendar-panel[hidden]{display:none}.reservation-calendar-panel{position:absolute;top:calc(100% + 7px);left:0;z-index:90;width:100%;min-width:360px;padding:15px;border:1px solid var(--line-200);border-radius:14px;background:#fff;box-shadow:0 18px 45px rgba(27,46,76,.17);animation:category-menu-in .15s var(--ease-out)}.reservation-calendar-panel>header{display:grid;grid-template-columns:36px 1fr 36px;align-items:center;margin-bottom:10px}.reservation-calendar-panel>header strong{text-align:center;font-size:15px}.reservation-calendar-panel>header button{width:34px;height:34px;border:0;border-radius:9px;background:var(--fill-100);color:var(--ink-700);font-size:23px;line-height:1;cursor:pointer}.reservation-calendar-panel>header button:disabled{opacity:.28;cursor:not-allowed}.reservation-calendar-weekdays,.reservation-calendar-days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.reservation-calendar-weekdays{margin-bottom:4px}.reservation-calendar-weekdays span{padding:5px 0;color:var(--ink-400);font-size:10px;font-weight:750;text-align:center}.reservation-calendar-weekdays span:first-child{color:#d65353}.reservation-calendar-weekdays span:last-child{color:#4676c8}.reservation-calendar-days>span{min-height:42px}.reservation-calendar-days button{position:relative;min-width:0;height:42px;border:0;border-radius:9px;background:#f7f9fc;color:var(--ink-700);font:inherit;font-size:12px;font-weight:700;cursor:pointer}.reservation-calendar-days button:hover:not(:disabled){background:var(--primary-tint);color:var(--primary)}.reservation-calendar-days button.is-selected{background:var(--primary);color:#fff;box-shadow:0 5px 12px rgba(36,104,216,.24)}.reservation-calendar-days button.is-today:not(.is-selected)::after{content:"";position:absolute;bottom:5px;left:50%;width:4px;height:4px;border-radius:50%;background:var(--primary);transform:translateX(-50%)}.reservation-calendar-days button:disabled{background:transparent;color:var(--ink-300);text-decoration:line-through;cursor:not-allowed}.reservation-calendar-panel>footer{display:flex;align-items:center;gap:14px;margin-top:10px;padding-top:10px;border-top:1px solid var(--line-200);color:var(--ink-400);font-size:9px}.reservation-calendar-panel>footer span{display:inline-flex;align-items:center;gap:5px}.reservation-calendar-panel>footer i{width:8px;height:8px;border-radius:3px;background:var(--primary-tint);border:1px solid #b8d0f7}.reservation-calendar-panel>footer span:last-child i{background:#fff;border-color:var(--line-200)}
.closed-date-form{display:grid;grid-template-columns:180px minmax(240px,1fr) auto;align-items:end;gap:12px}.closed-date-form .form-group{margin:0}.closed-date-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px;padding-top:16px;border-top:1px solid var(--line-200)}.closed-date-list form{display:flex;align-items:center;gap:9px;padding:8px 9px 8px 11px;border:1px solid var(--line-200);border-radius:10px;background:var(--fill-50)}.closed-date-list span,.closed-date-list strong,.closed-date-list small{display:block}.closed-date-list strong{font-size:11px}.closed-date-list small{margin-top:2px;color:var(--ink-400);font-size:9px}.closed-date-list button{width:22px;height:22px;border:0;border-radius:50%;background:#fff;color:#c44;font-size:15px;cursor:pointer}
@media(max-width:700px){.reservation-calendar{min-width:0}.reservation-calendar-panel{width:100%;min-width:0}.reservation-calendar-days button,.reservation-calendar-days>span{height:39px;min-height:39px}.closed-date-form{grid-template-columns:1fr}.closed-date-form .btn{width:100%}}

/* Operational dashboard overview */
.dashboard-today-head{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:18px;padding:4px 2px}.dashboard-today-head h3{margin:5px 0 3px;font-size:24px;letter-spacing:-.035em}.dashboard-today-head p{color:var(--ink-500);font-size:12px}.dashboard-attention{display:flex;align-items:center;gap:10px;min-width:220px;padding:11px 14px;border:1px solid #bfe4d5;border-radius:13px;background:#f1fbf7}.dashboard-attention>span{display:grid;width:30px;height:30px;place-items:center;border-radius:9px;background:#dff5eb;color:#16805b;font-size:14px;font-weight:900}.dashboard-attention div,.dashboard-attention strong,.dashboard-attention small{display:block}.dashboard-attention strong{font-size:12px}.dashboard-attention small{margin-top:2px;color:var(--ink-500);font-size:9px}.dashboard-attention.has-items{border-color:#f3d59c;background:#fff9ed}.dashboard-attention.has-items>span{background:#ffedc7;color:#a96c00}.dashboard-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}.dashboard-kpi-grid.without-orders{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-kpi{position:relative;display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:11px;min-height:112px;padding:16px;border:1px solid var(--line-200);border-radius:16px;background:#fff;color:inherit;text-decoration:none;transition:transform .18s,border-color .18s,box-shadow .18s}.dashboard-kpi:hover{transform:translateY(-2px);border-color:#bad0f3;box-shadow:0 10px 24px rgba(31,65,116,.08)}.dashboard-kpi-icon{display:grid;width:42px;height:42px;place-items:center;border-radius:12px;font-size:17px}.dashboard-kpi-icon.blue{background:#eaf2ff}.dashboard-kpi-icon.orange{background:#fff1e6}.dashboard-kpi-icon.green{background:#e8f8f0}.dashboard-kpi-icon.purple{background:#f1edff}.dashboard-kpi div>small{display:block;color:var(--ink-500);font-size:9px;font-weight:750}.dashboard-kpi div>strong{display:block;margin:4px 0 2px;font-size:23px;letter-spacing:-.03em}.dashboard-kpi div>strong em{margin:0 2px;color:var(--ink-500);font-size:10px;font-style:normal}.dashboard-kpi p{overflow:hidden;color:var(--ink-400);font-size:9px;text-overflow:ellipsis;white-space:nowrap}.dashboard-kpi>b{color:var(--ink-300);font-size:17px}.dashboard-overview-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.dashboard-overview-grid.single{grid-template-columns:1fr}.dashboard-summary-panel{padding:0;overflow:hidden}.dashboard-summary-panel>header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:19px 20px 15px;border-bottom:1px solid var(--line-200)}.dashboard-summary-panel>header h3{margin-top:3px;font-size:16px}.dashboard-summary-panel>header>a{color:var(--primary);font-size:10px;font-weight:750;text-decoration:none}.dashboard-reservation-summary,.dashboard-order-summary{display:grid}.dashboard-reservation-summary>a,.dashboard-order-summary>a{display:grid;align-items:center;gap:11px;min-height:70px;padding:11px 18px;color:inherit;text-decoration:none}.dashboard-reservation-summary>a{grid-template-columns:48px minmax(0,1fr) auto 10px}.dashboard-order-summary>a{grid-template-columns:42px minmax(0,1fr) auto auto 10px}.dashboard-reservation-summary>a+a,.dashboard-order-summary>a+a{border-top:1px solid var(--fill-100)}.dashboard-reservation-summary>a:hover,.dashboard-order-summary>a:hover{background:var(--fill-50)}.dashboard-reservation-summary time{display:grid;width:45px;height:45px;place-items:center;align-content:center;border-radius:11px;background:var(--primary-tint);color:var(--primary)}.dashboard-reservation-summary time strong{font-size:12px}.dashboard-reservation-summary time small{font-size:8px}.dashboard-reservation-summary a>div,.dashboard-order-summary a>div{min-width:0}.dashboard-reservation-summary a>div strong,.dashboard-order-summary a>div strong{display:block;overflow:hidden;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.dashboard-reservation-summary p,.dashboard-order-summary p{margin-top:3px;overflow:hidden;color:var(--ink-400);font-size:9px;text-overflow:ellipsis;white-space:nowrap}.dashboard-reservation-summary a>b,.dashboard-order-summary a>b{color:var(--ink-300);font-size:17px}.dashboard-order-number{display:grid;width:40px;height:40px;place-items:center;border-radius:10px;background:#fff3e8;color:#c36b20;font-size:10px;font-weight:800}.dashboard-order-total{font-size:11px}.dashboard-summary-empty{display:grid;place-items:center;min-height:225px;padding:30px;text-align:center}.dashboard-summary-empty>span{font-size:26px}.dashboard-summary-empty>strong{margin-top:9px;font-size:12px}.dashboard-summary-empty>p{margin-top:4px;color:var(--ink-400);font-size:10px}.dashboard-empty-business{padding:70px 30px;text-align:center}.dashboard-empty-business>span{font-size:36px}.dashboard-empty-business h3{margin-top:12px}.dashboard-empty-business p{margin:7px auto 20px;max-width:480px;color:var(--ink-500);font-size:12px}.business-info-panel{margin-top:4px}
@media(max-width:960px){.dashboard-kpi-grid{grid-template-columns:repeat(2,1fr)}.dashboard-overview-grid{grid-template-columns:1fr}}@media(max-width:620px){.dashboard-today-head{align-items:flex-start;flex-direction:column}.dashboard-attention{width:100%}.dashboard-kpi-grid,.dashboard-kpi-grid.without-orders{grid-template-columns:1fr 1fr}.dashboard-kpi{grid-template-columns:36px minmax(0,1fr);min-height:100px;padding:13px}.dashboard-kpi-icon{width:36px;height:36px}.dashboard-kpi>b{display:none}.dashboard-order-summary>a{grid-template-columns:38px minmax(0,1fr) auto}.dashboard-order-summary .order-status{display:none}}
