:root{
  --font-sans: 'Pretendard Variable', Pretendard, -apple-system, BlinkMacSystemFont, system-ui, Roboto, "Helvetica Neue", "Segoe UI", "Apple SD Gothic Neo", "Malgun Gothic", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", sans-serif;
  --color-primary: #1A73E8;
  --color-primary-dark: #1557B0;
  --color-primary-light: #E8F0FE;
  --color-background-primary: #FFFFFF;
  --color-background-secondary: #F8F9FA;
  --color-background-tertiary: #F1F3F4;
  --color-text-primary: #202124;
  --color-text-secondary: #5F6368;
  --color-text-tertiary: #70757A;
  --color-border-secondary: #DADCE0;
  --color-border-tertiary: #F1F3F4;
  --border-radius-md: 10px;
  --border-radius-lg: 16px;
  --shadow-sm: 0 1px 2px 0 rgba(60,64,67,.3), 0 1px 3px 1px rgba(60,64,67,.15);
}

*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%;-webkit-font-smoothing:antialiased}
body{font-family:var(--font-sans);background:#f0f2f5;color:var(--color-text-primary);line-height:1.5}
button,input{font-family:inherit}
button{background:none;border:none;cursor:pointer}

.sr-only{
  position:absolute;
  width:1px;height:1px;
  padding:0;margin:-1px;
  overflow:hidden;clip:rect(0,0,0,0);
  white-space:nowrap;border:0;
}

.shell{
  min-height:100%;
  display:flex;
  align-items:flex-start;
  justify-content:center;
  padding:20px 12px;
}

.app{
  width:100%;
  max-width:420px;
  margin:0 auto;
  background:var(--color-background-primary);
  box-shadow: 0 12px 28px 0 rgba(0, 0, 0, 0.1), 0 2px 4px 0 rgba(0, 0, 0, 0.05);
  border-radius:var(--border-radius-lg);
  overflow:hidden;
  min-height:720px;
  display:flex;
  flex-direction:column;
}

.screen{display:none;flex-direction:column;flex:1}
.screen.active{display:flex}

/* Header */
.header{background:var(--color-background-primary);padding:24px 20px 16px;position:relative;border-bottom: 1px solid var(--color-border-tertiary)}
.header-logo{display:flex;align-items:center;gap:10px;margin-bottom:6px}
.logo-icon{width:32px;height:32px;background:var(--color-primary);border-radius:10px;display:flex;align-items:center;justify-content:center}
.logo-text{font-size:19px;font-weight:700;color:var(--color-primary);letter-spacing:-0.5px}
.header-sub{font-size:13px;color:var(--color-text-secondary);font-weight:400}

.lang-badge{
  position:absolute;top:20px;right:20px;
  font-size:12px;background:var(--color-background-secondary);color:var(--color-text-primary);
  border:1px solid var(--color-border-secondary);border-radius:20px;padding:5px 12px;
  cursor:pointer;font-weight:500;transition: background 0.2s;
}
.lang-badge:hover{background:var(--color-border-tertiary)}

/* Search box */
.search-area{padding:20px;background:var(--color-background-primary)}
.search-label{font-size:13px;font-weight:500;color:var(--color-text-primary);margin-bottom:10px}
.search-row{display:flex;gap:10px}
.search-input{
  flex:1;border:1px solid var(--color-border-secondary);
  border-radius:var(--border-radius-md);
  padding:12px 16px;font-size:16px;color:var(--color-text-primary);
  background:var(--color-background-primary);outline:none;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.search-input:focus{border-color:var(--color-primary);box-shadow: 0 0 0 3px var(--color-primary-light)}
.search-btn{
  background:var(--color-primary);color:white;border:none;border-radius:var(--border-radius-md);
  padding:12px 20px;font-size:15px;font-weight:600;cursor:pointer;white-space:nowrap;
  transition: background 0.2s;
}
.search-btn:hover{background:var(--color-primary-dark)}

/* AI processing */
.ai-chip{
  margin:12px 20px 0;display:flex;align-items:center;gap:10px;
  background:var(--color-primary-light);border:1px solid #C6DAFC;border-radius:12px;
  padding:8px 14px;font-size:13px;color:var(--color-primary-dark);
}
.ai-chip-icon{width:18px;height:18px;border-radius:50%;background:var(--color-primary);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.ai-chip-icon::after{content:'';width:6px;height:6px;border-radius:50%;background:white}
.ai-arrow{color:var(--color-primary);font-size:16px;font-weight:bold}
.ai-query{font-weight:700;color:var(--color-primary-dark)}

/* Category chips */
.categories{padding:16px 20px 10px}
.cat-chips{display:flex;gap:8px;flex-wrap:wrap}
.cat-chip{
  font-size:13px;font-weight:500;border:1px solid var(--color-border-secondary);border-radius:20px;
  padding:6px 14px;cursor:pointer;color:var(--color-text-secondary);
  background:var(--color-background-primary);white-space:nowrap;
  transition: all 0.2s;
}
.cat-chip:hover,.cat-chip.active{background:var(--color-primary-light);border-color:var(--color-primary);color:var(--color-primary)}

/* Results */
.results-header{padding:14px 20px 10px;display:flex;align-items:center;justify-content:space-between}
.results-count{font-size:14px;color:var(--color-text-secondary)}
.results-count strong{color:var(--color-text-primary);font-weight:600}
.sort-btn{font-size:13px;font-weight:500;color:var(--color-text-secondary);border:1px solid var(--color-border-secondary);border-radius:8px;padding:5px 12px;cursor:pointer;background:var(--color-background-primary)}

.result-list{flex:1;overflow-y:auto;padding:0 20px 20px;display:flex;flex-direction:column;gap:12px}
.result-card{
  background:var(--color-background-primary);border:1px solid var(--color-border-secondary);
  border-radius:var(--border-radius-lg);padding:18px;cursor:pointer;
  transition: transform 0.2s, border-color 0.2s, box-shadow 0.2s;
}
.result-card:hover{border-color:var(--color-primary);transform: translateY(-2px);box-shadow: 0 4px 12px rgba(0,0,0,0.05)}
.result-top{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:8px}
.result-name{font-size:17px;font-weight:700;color:var(--color-text-primary);letter-spacing:-0.3px}
.result-dist{font-size:13px;font-weight:600;color:var(--color-primary)}
.result-category{font-size:12px;font-weight:500;color:var(--color-primary);background:var(--color-primary-light);border-radius:6px;padding:3px 10px;display:inline-block;margin-bottom:8px}
.result-meta{display:flex;align-items:center;gap:12px}
.stars{font-size:13px;font-weight:700;color:#F9AB00}
.review-count{font-size:13px;color:var(--color-text-tertiary)}
.open-badge{font-size:12px;font-weight:600;color:#188038}
.closed-badge{font-size:12px;font-weight:600;color:#D93025}
.result-addr{font-size:13px;color:var(--color-text-secondary);margin-top:10px;line-height:1.4}

/* Detail screen */
.detail-hero{background:var(--color-primary-light);height:180px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;position:relative}
.detail-hero-label{font-size:14px;font-weight:500;color:var(--color-primary-dark)}
.back-btn{position:absolute;top:16px;left:16px;background:white;border:1px solid var(--color-border-secondary);border-radius:8px;padding:8px 14px;font-size:14px;font-weight:600;cursor:pointer;color:var(--color-text-primary);box-shadow:var(--shadow-sm)}
.detail-body{padding:24px 20px;flex:1;overflow-y:auto}
.detail-name{font-size:24px;font-weight:700;margin-bottom:6px;letter-spacing:-0.5px}
.detail-category{font-size:14px;font-weight:500;color:var(--color-primary);margin-bottom:16px}
.detail-row{display:flex;gap:12px;align-items:flex-start;margin-bottom:16px}
.detail-row-label{min-width:70px;font-size:13px;font-weight:600;color:var(--color-text-tertiary);padding-top:1px}
.detail-row-val{color:var(--color-text-primary);flex:1;font-size:15px;line-height:1.5}
.deeplink-section{margin-top:24px;padding-top:24px;border-top:1px solid var(--color-border-tertiary)}
.deeplink-title{font-size:14px;font-weight:700;color:var(--color-text-primary);margin-bottom:16px}
.deeplink-btns{display:flex;flex-direction:column;gap:10px}
.deeplink-btn{display:flex;align-items:center;gap:12px;padding:14px 18px;border-radius:var(--border-radius-md);border:1px solid;cursor:pointer;font-size:15px;font-weight:600;text-decoration:none;transition: all 0.2s}
.deeplink-app{background:var(--color-primary);border-color:var(--color-primary);color:white}
.deeplink-app:hover{background:var(--color-primary-dark)}
.deeplink-web{background:var(--color-background-primary);border-color:var(--color-border-secondary);color:var(--color-text-primary)}
.deeplink-web:hover{background:var(--color-background-secondary)}
.deeplink-icon{width:26px;height:26px;border-radius:8px;background:rgba(255,255,255,0.2);display:flex;align-items:center;justify-content:center}

/* Lang selector overlay */
.lang-overlay{
  position:absolute;top:56px;right:20px;background:var(--color-background-primary);
  border:1px solid var(--color-border-secondary);border-radius:var(--border-radius-md);
  padding:10px;z-index:100;min-width:160px;box-shadow: 0 8px 24px rgba(0,0,0,0.12);display:none
}
.lang-overlay.open{display:block}
.lang-opt{
  width:100%;text-align:left;border:none;padding:10px 14px;font-size:14px;font-weight:500;
  cursor:pointer;border-radius:8px;color:var(--color-text-primary);display:flex;align-items:center;gap:10px;
}
.lang-opt:hover,.lang-opt.selected{background:var(--color-primary-light);color:var(--color-primary)}

/* Loading */
.loading-wrap{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:32px;padding:32px}
.spinner{width:40px;height:40px;border:4px solid var(--color-primary-light);border-top:4px solid var(--color-primary);border-radius:50%;animation:spin 0.8s cubic-bezier(0.4, 0, 0.2, 1) infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.loading-steps{display:flex;flex-direction:column;gap:10px;align-items:flex-start;width:240px}
.loading-step{font-size:14px;font-weight:500;color:var(--color-text-secondary);display:flex;align-items:center;gap:10px}
.step-dot{width:10px;height:10px;border-radius:50%;background:var(--color-border-secondary);flex-shrink:0}
.step-dot.done{background:#188038}
.step-dot.active{background:var(--color-primary);animation:pulse 1s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:0.4}}
.loading-query{font-size:17px;font-weight:700;margin-bottom:8px;color:var(--color-text-primary)}

/* Welcome screen */
.welcome-body{flex:1;padding:28px 20px;display:flex;flex-direction:column;gap:24px}
.how-it-works{background:var(--color-background-secondary);border-radius:var(--border-radius-lg);padding:20px;border:1px solid var(--color-border-tertiary)}
.how-title{font-size:14px;font-weight:700;color:var(--color-text-secondary);margin-bottom:16px;text-transform:uppercase;letter-spacing:0.8px}
.step-item{display:flex;align-items:flex-start;gap:14px;margin-bottom:16px}
.step-num{width:26px;height:26px;border-radius:50%;background:var(--color-primary);color:white;font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.step-text{font-size:14px;color:var(--color-text-secondary);line-height:1.6;padding-top:2px}
.step-text strong{color:var(--color-text-primary);font-weight:700}

.pop-title{font-size:14px;font-weight:600;color:var(--color-text-primary);margin-bottom:12px}
.pop-list{display:flex;flex-wrap:wrap;gap:10px}
.pop-chip{
  font-size:14px;font-weight:500;border:1px solid var(--color-border-secondary);
  border-radius:20px;padding:8px 16px;cursor:pointer;
  color:var(--color-text-primary);background:var(--color-background-primary);
  transition: all 0.2s;
}
.pop-chip:hover{background:var(--color-primary-light);border-color:var(--color-primary);color:var(--color-primary)}

/* Bottom nav */
.bottom-nav{border-top:1px solid var(--color-border-tertiary);display:flex;background:var(--color-background-primary);padding-bottom:env(safe-area-inset-bottom)}
.nav-item{flex:1;display:flex;flex-direction:column;align-items:center;padding:12px 0;gap:4px;cursor:pointer;font-size:12px;font-weight:600;color:var(--color-text-tertiary);transition: color 0.2s}
.nav-item.active{color:var(--color-primary)}
.nav-icon{width:24px;height:24px}
.nav-item.active .nav-icon path, .nav-item.active .nav-icon circle{stroke:var(--color-primary)}

.text-back-btn{
  background:none;border:none;cursor:pointer;padding:0;
  color:var(--color-primary);font-size:14px;font-weight:600;
}
