/* ============================================================
   HUD for Riders — style.css (완전판 v3)
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Share+Tech+Mono&family=Noto+Sans+KR:wght@400;700;900&display=swap');

:root {
    --green:#00FF00; --mint:#00cba9; --bg:#0A0A0C; --card:#1C1C1E; --border:#2C2C2E;
    --text:#cccccc; --orange:#f39c12; --red:#FF5252; --dim:#555555; --yellow:#FFD54F;
    --status-dim:#888888;
    --font-mono:'Share Tech Mono',monospace; --font-kr:'Noto Sans KR',sans-serif;
    --radius-sm:8px; --radius-md:12px; --radius-lg:16px;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0;}
body{background-color:var(--bg);color:#fff;font-family:var(--font-kr);-webkit-overflow-scrolling:touch;min-height:100vh;width:100vw;overflow:hidden;}
button{font-family:inherit;cursor:pointer;border:none;outline:none;}
input:not([type=checkbox]):not([type=radio]),select{font-family:inherit;outline:none;-webkit-appearance:none;box-sizing:border-box;}
input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;}

/* === 3탭 SHELL === */
.shell{width:100vw;height:100vh;display:flex;overflow:hidden;position:relative;}
.tab-track{display:flex;width:400vw;height:100%;transition:transform 0.3s cubic-bezier(0.4,0,0.2,1);will-change:transform;}
.tab-panel{width:100vw;height:100vh;overflow-y:auto;-webkit-overflow-scrolling:touch;flex-shrink:0;display:flex;flex-direction:column;}
.tab-track[data-tab="0"]{transform:translateX(0);}
.tab-track[data-tab="1"]{transform:translateX(-100vw);}
.tab-track[data-tab="2"]{transform:translateX(-200vw);}
.tab-track[data-tab="3"]{transform:translateX(-300vw);}

/* SOS 버튼 */
.mode-btn-sos{color:var(--red) !important;border-color:rgba(255,68,68,0.3) !important;}

/* FINANCE 탭 */
.finance-summary-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:20px;text-align:center;margin:12px 0;}
.finance-summary-label{font-size:0.72rem;color:#666;letter-spacing:1px;text-transform:uppercase;margin-bottom:6px;}
.finance-net-income{font-size:2rem;font-weight:900;color:var(--green);font-family:var(--font-mono);}
.finance-summary-sub{display:flex;justify-content:center;gap:20px;margin-top:8px;font-size:0.78rem;color:#666;}
.finance-summary-sub b{color:#aaa;}
.finance-section{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:16px;margin-bottom:10px;}
.finance-section-title{font-size:0.78rem;font-weight:900;color:#aaa;margin-bottom:12px;letter-spacing:0.5px;}
.finance-input-row{display:flex;gap:6px;}
.finance-input{flex:1;background:#1a1a1a;border:1px solid var(--border);border-radius:6px;padding:10px;color:#fff;font-size:0.85rem;min-width:0;}
.finance-add-btn{background:var(--green);color:#000;border:none;border-radius:6px;padding:10px 14px;font-weight:900;font-size:0.8rem;cursor:pointer;white-space:nowrap;}
.finance-deduct-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px;}
.finance-deduct-item{display:flex;flex-direction:column;gap:4px;}
.finance-deduct-item label{font-size:0.68rem;color:#666;}
.finance-deduct-input{background:#1a1a1a;border:1px solid var(--border);border-radius:6px;padding:8px;color:#fff;font-size:0.85rem;text-align:right;}
.finance-deduct-total{text-align:right;font-size:0.78rem;color:#aaa;}
.finance-deduct-total span{color:var(--green);font-weight:700;font-family:var(--font-mono);}
.finance-expense-list{display:flex;flex-direction:column;gap:6px;}
.finance-expense-item{display:flex;justify-content:space-between;align-items:center;background:#1a1a1a;border-radius:6px;padding:10px 12px;}
.finance-expense-row{display:flex;gap:10px;align-items:center;}
.finance-expense-memo{font-size:0.82rem;color:#ccc;}
.finance-expense-amt{font-size:0.82rem;font-weight:700;color:var(--red);font-family:var(--font-mono);}
.finance-expense-del{background:none;border:none;color:#444;font-size:0.85rem;cursor:pointer;padding:0 4px;}
.finance-empty{text-align:center;color:#444;font-size:0.8rem;padding:16px 0;}
.finance-pro-preview{opacity:0.5;}
.finance-pro-badge{display:inline-block;font-size:0.6rem;background:rgba(255,214,0,0.15);color:var(--yellow);border:1px solid var(--yellow);border-radius:4px;padding:1px 6px;margin-left:6px;vertical-align:middle;}
.finance-pro-msg{font-size:0.78rem;color:#555;line-height:1.6;}
.swipe-hint{position:fixed;bottom:12px;left:50%;transform:translateX(-50%);display:flex;gap:6px;z-index:10;}
.swipe-dot{width:6px;height:6px;border-radius:50%;background:var(--dim);transition:background 0.2s;}
.swipe-dot.active{background:var(--green);}

/* === 컨테이너 === */
.container{display:flex;flex-direction:column;padding:10px;gap:10px;flex:1;}

/* === 스플래시 === */
.splash{position:fixed;inset:0;background:#000;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:9999;overflow:hidden;transition:opacity 0.8s ease;}
.splash.fade-out{opacity:0;pointer-events:none;}

/* 스캔라인 */
.splash-scanlines{position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,255,65,0.015) 2px,rgba(0,255,65,0.015) 4px);pointer-events:none;z-index:1;}

/* 오토바이 실루엣 */
.splash-rider-wrap{position:relative;width:100%;max-width:340px;display:flex;align-items:center;justify-content:center;animation:riderSlideUp 0.8s cubic-bezier(0.22,1,0.36,1) both;}
.splash-rider{width:80%;max-width:280px;opacity:0.9;position:relative;z-index:2;}

/* 속도감 라인 */
.splash-speed-lines{position:absolute;left:-20px;right:0;top:50%;transform:translateY(-50%);height:2px;background:linear-gradient(90deg,transparent,rgba(0,255,65,0.4),transparent);animation:speedLine 0.6s ease 0.3s both;z-index:1;}

/* 텍스트 */
.splash-text-wrap{text-align:center;z-index:2;margin-top:10px;}
.splash-hud{font-family:var(--font-mono);font-size:clamp(3rem,15vw,5rem);font-weight:900;letter-spacing:12px;line-height:1;display:flex;gap:4px;}
.splash-h{color:var(--green);animation:charPop 0.4s cubic-bezier(0.34,1.56,0.64,1) 0.5s both;display:inline-block;text-shadow:0 0 20px rgba(0,255,65,0.6),0 0 40px rgba(0,255,65,0.3);}
.splash-u{color:var(--green);animation:charPop 0.4s cubic-bezier(0.34,1.56,0.64,1) 0.65s both;display:inline-block;text-shadow:0 0 20px rgba(0,255,65,0.6),0 0 40px rgba(0,255,65,0.3);}
.splash-d{color:var(--green);animation:charPop 0.4s cubic-bezier(0.34,1.56,0.64,1) 0.8s both;display:inline-block;text-shadow:0 0 20px rgba(0,255,65,0.6),0 0 40px rgba(0,255,65,0.3);}
.splash-sub{font-family:var(--font-mono);font-size:0.85rem;color:#ccc;letter-spacing:6px;margin-top:8px;animation:splashFadeIn 0.6s ease 1.1s both;text-transform:uppercase;}
.splash-tagline{font-size:0.65rem;color:#444;letter-spacing:3px;margin-top:6px;animation:splashFadeIn 0.6s ease 1.3s both;}

/* 로딩 바 */
.splash-loader-wrap{position:absolute;bottom:48px;left:50%;transform:translateX(-50%);width:120px;height:2px;background:#111;border-radius:2px;overflow:hidden;}
.splash-loader-bar{height:100%;background:linear-gradient(90deg,var(--green),rgba(0,255,65,0.4));border-radius:2px;animation:loaderFill 1.4s ease 0.3s both;}

/* 키프레임 */
@keyframes riderSlideUp{from{opacity:0;transform:translateY(40px) scale(0.9);}to{opacity:1;transform:translateY(0) scale(1);}}
@keyframes charPop{from{opacity:0;transform:scale(0.5) translateY(10px);}to{opacity:1;transform:scale(1) translateY(0);}}
@keyframes splashFadeIn{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:translateY(0);}}
@keyframes speedLine{from{opacity:0;transform:translateY(-50%) scaleX(0);}to{opacity:1;transform:translateY(-50%) scaleX(1);}}
@keyframes loaderFill{from{width:0;}to{width:100%;}}

@keyframes splashFadeIn{from{opacity:0}to{opacity:1}}

/* === 동의 화면 === */
.consent-screen{display:none;position:fixed;inset:0;background:var(--bg);z-index:8500;overflow-y:auto;}
.consent-screen.open{display:block;}
.consent-inner{max-width:480px;margin:0 auto;padding:30px 20px 60px;}
.consent-logo{font-family:var(--font-mono);font-size:2.5rem;font-weight:900;color:var(--green);letter-spacing:8px;text-align:center;margin-bottom:4px;}
.consent-sub{font-size:0.75rem;color:#aaa;letter-spacing:4px;text-align:center;margin-bottom:24px;}
.consent-section{background:var(--card);border:1px solid #1a1a1a;border-radius:var(--radius-md);padding:16px;margin-bottom:14px;}
.consent-section-title{font-size:0.8rem;color:var(--green);font-weight:900;letter-spacing:1px;margin-bottom:10px;}
.consent-section-body{font-size:0.75rem;color:#aaa;line-height:1.8;}
.consent-checks{margin:20px 0;display:flex;flex-direction:column;gap:12px;}
.consent-check{display:flex;align-items:center;gap:10px;font-size:0.82rem;color:#ccc;}
.consent-check input[type=checkbox]{width:18px;height:18px;accent-color:var(--green);flex-shrink:0;}
.consent-btn{width:100%;padding:16px;border-radius:var(--radius-md);font-size:1rem;font-weight:900;letter-spacing:2px;cursor:pointer;}
.consent-btn.active{background:var(--green);color:#000;}
.consent-btn.inactive{background:#222;color:#555;cursor:default;}

/* === PIN 화면 === */
.pin-screen{display:none;position:fixed;inset:0;background:var(--bg);z-index:8000;flex-direction:column;align-items:center;justify-content:center;}
.pin-screen.open{display:flex;}
.pin-logo{font-family:var(--font-mono);font-size:3rem;font-weight:900;color:var(--green);letter-spacing:10px;margin-bottom:8px;}
.pin-subtitle{font-size:0.85rem;color:#aaa;letter-spacing:2px;margin-bottom:30px;}
.pin-dots{display:flex;gap:12px;margin-bottom:40px;}
.pin-dot{width:14px;height:14px;border-radius:50%;border:2px solid #2C2C2E;transition:all 0.15s;}
.pin-dot.filled{background:var(--green);border-color:var(--green);}
.pin-dot.error{background:var(--red);border-color:var(--red);}
.pin-pad{display:grid;grid-template-columns:repeat(3,72px);gap:12px;}
.pin-key{width:72px;height:72px;background:#111;border:1px solid #222;border-radius:50%;font-size:1.5rem;font-weight:700;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background 0.1s;}
.pin-key:active{background:#222;}
.pin-key.fn{font-size:0.7rem;color:#888;background:transparent;border-color:transparent;}
.pin-msg{margin-top:20px;font-size:0.8rem;color:var(--red);min-height:1.5em;text-align:center;}
.pin-free-notice{position:absolute;bottom:24px;left:0;right:0;text-align:center;font-size:0.65rem;color:#444;letter-spacing:0.5px;}

/* === 헤더 === */
.header-panel{display:flex;align-items:center;justify-content:center;position:relative;padding:10px 0;min-height:52px;}
.header-center{text-align:center;}
.hud-logo{font-family:var(--font-mono);font-size:2rem;font-weight:900;color:var(--green);letter-spacing:8px;line-height:1;}
.date-weather-row{font-size:0.75rem;color:#ccc;margin-top:3px;display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:wrap;} /* ✅ UI ⑦ */
.date-sep{color:#888;} /* ✅ UI ⑦ */
.btn-reset{position:absolute;right:0;top:50%;transform:translateY(-50%);}
.header-reset{background:transparent;border:1px solid #222;color:#555;border-radius:6px;padding:6px 10px;font-size:1rem;}

/* === 타이머 카드 === */
.timer-card{background:var(--card);border:1px solid #1a1a1a;border-radius:var(--radius-md);padding:14px 16px;display:flex;align-items:center;justify-content:space-between;gap:10px;}
.timer-info{flex:1;min-width:0;}
.timer-display{font-family:var(--font-mono);font-size:1.8rem;font-weight:900;color:#fff;letter-spacing:2px;line-height:1;}
.timer-status{font-size:0.6rem;font-weight:900;letter-spacing:2px;margin-top:4px;}
.status-total{color:#555;}
.status-live{color:var(--green);}
.status-rest{color:var(--orange);}
.timer-actions-row{display:flex;gap:6px;align-items:center;flex-shrink:0;}
.btn-mission{padding:8px 10px;background:transparent;border:1.5px solid #2C2C2E;color:#666;border-radius:var(--radius-sm);font-size:0.7rem;font-weight:700;white-space:nowrap;}
.btn-mission.active{border-color:var(--orange);color:var(--orange);}
.btn-rest{padding:8px 10px;background:transparent;border:1.5px solid var(--orange);color:var(--orange);border-radius:var(--radius-sm);font-size:0.75rem;font-weight:900;min-width:44px;}
.btn-rest.resting{background:var(--orange);color:#000;animation:restPulse 1.5s ease-in-out infinite;}
@keyframes restPulse{0%,100%{opacity:1}50%{opacity:0.6}}
.btn-toggle{padding:10px 16px;border-radius:var(--radius-sm);font-size:0.9rem;font-weight:900;letter-spacing:1px;min-width:64px;}
.btn-start{background:var(--green);color:#000;}
.btn-stop{background:var(--red);color:#fff;}

/* === 히어로 카드 === */
.hero-card{background:var(--card);border:1px solid #1a1a1a;border-radius:var(--radius-md);padding:14px;position:relative;overflow:hidden;min-height:90px;display:flex;flex-direction:column;justify-content:center;}
/* ✅ 거리 표기 화이트, km 단위 회색 (건수 그린 유지) */
.speed-num{color:#ffffff !important;}
.speed-unit-label{color:#aaaaaa !important;}
.pickup-area{display:none;position:absolute;top:10px;left:10px;align-items:center;gap:6px;}
.pickup-area.visible{display:flex;}
.pickup-indicator{font-size:0.7rem;font-weight:700;color:var(--green);}
.pickup-area.warning .pickup-indicator{color:var(--red);animation:warnBlink 0.8s ease-in-out infinite;}
@keyframes warnBlink{0%,100%{opacity:1}50%{opacity:0.3}}
.pickup-time{font-family:var(--font-mono);font-size:0.8rem;color:#fff;}
.mission-badge{position:absolute;top:10px;right:10px;background:var(--orange);color:#000;font-size:0.65rem;font-weight:900;padding:3px 8px;border-radius:10px;letter-spacing:1px;}
.hero-place{width:100%;}
.hero-place.empty{display:none;}
.place-name{font-size:1.1rem;font-weight:900;color:#fff;margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.place-memo-marquee{overflow:hidden;}
.place-memo-marquee span{font-size:0.95rem;font-weight:900;color:var(--orange);display:inline-block;}
.hero-empty{text-align:center;width:100%;}
.hero-empty.hidden{display:none;}

/* === 층수 버튼 === */
.floor-scroll-wrap{position:relative;width:100%;}
.floor-scroll{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;width:100%;}
.floor-btn{padding:10px 4px;background:#000;border:1.5px solid #444;border-radius:var(--radius-sm);font-size:0.85rem;font-weight:900;color:#fff;text-align:center;cursor:pointer;transition:all 0.15s;}
.floor-btn.active{background:#001a0a;border-color:var(--green);color:var(--green);}
.floor-fade-right{position:absolute;right:0;top:0;bottom:0;width:30px;background:linear-gradient(to right,transparent,var(--bg));pointer-events:none;}

/* === 카운터 카드 === */
/* 층수 + 카운터 통합 카드 */
.floor-counter-card {
    background: var(--card);
    border: 1px solid rgba(254,229,0,0.3);
    border-radius: var(--radius-md);
    padding: 12px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.counter-card{background:transparent;border:none;border-radius:var(--radius-md);padding:8px 4px;display:flex;align-items:center;justify-content:center;gap:12px;cursor:pointer;width:100%;}
.count-adjust-btn{width:44px;height:44px;border-radius:50%;background:#1a1a1a;border:1px solid #2C2C2E;color:#fff;font-size:1.3rem;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.count-adjust-btn.mission{border-color:var(--green);color:var(--green);}
/* ✅ UI ④: 카운터 세로 정렬 — 숫자 크게, Total Count 아래 배치 */
.count-block{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;}
.count-num{font-family:var(--font-mono);font-size:3.5rem;font-weight:900;color:var(--green);text-shadow:0 0 12px rgba(0,255,0,0.6),0 0 24px rgba(0,255,0,0.3);line-height:1;}
.count-num.mission{color:var(--green);text-shadow:0 0 10px var(--green);}
.count-num.hourly{color:var(--orange);font-size:1.5rem;}
/* ✅ UI ⑦: count-label #555 → #aaa (시인성 개선) */
.count-label{font-size:0.6rem;color:#aaa;letter-spacing:1px;text-align:center;}
.count-label.mission{color:var(--green);}
.count-label.hourly{color:var(--orange);}

/* === 도착·픽업·드롭 === */
.action-3btns{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;}
.action-2btns{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.btn-arrive,.btn-pickup-new,.btn-drop-new{padding:18px 8px;border-radius:var(--radius-sm);font-size:0.95rem;font-weight:900;letter-spacing:1px;transition:all 0.15s;background:#000;color:#fff;}
.action-2btns .btn-pickup-new,
.action-2btns .btn-drop-new{padding:22px 8px;font-size:1.05rem;}
.btn-arrive    {border:2px solid var(--yellow);}
.btn-pickup-new{border:2px solid var(--green);}
.btn-drop-new  {border:2px solid var(--red);}
.btn-arrive.active    {background:var(--yellow);color:#000;}
.btn-pickup-new.active{background:var(--green); color:#000;}
.btn-drop-new.active  {background:var(--red);  color:#000;}

/* === 현위치 저장 === */
.btn-locate{width:100%;padding:12px;background:#000;color:#aaa;border:1px solid #2C2C2E;border-radius:var(--radius-md);font-size:0.9rem;font-weight:700;letter-spacing:1px;}

/* === 입력 패널 === */
.input-panel{display:flex;flex-direction:column;gap:8px;}
/* ✅ UI ⑥: 입력란 테두리 #1a1a1a → #3a3a3a (시인성 강화) */
.place-input{width:100%;background:var(--card);border:1px solid #3a3a3a;color:#fff;padding:12px;border-radius:var(--radius-sm);font-size:0.9rem;}
.place-input::placeholder{color:#666;}
.place-input:focus{border-color:var(--green);outline:none;}
.input-wrap{position:relative;}
.scroll-placeholder{position:absolute;inset:0;padding:12px;font-size:0.85rem;color:#666;overflow:hidden;pointer-events:none;white-space:nowrap;} /* ✅ UI ⑦ */
.scroll-placeholder span{display:inline-block;animation:marquee 18s linear infinite;}
@keyframes marquee{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
.scroll-placeholder.hidden{display:none;}

/* === 4버튼 === */
.action-btns{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;}
.keymap-btn,.history-btn,.emergency-btn,.settings-btn{padding:12px 4px;border-radius:var(--radius-sm);font-size:0.78rem;font-weight:900;text-align:center;border:none;color:#000;}
.keymap-btn  { background: var(--yellow); }
.history-btn { background: var(--green); }
.emergency-btn { background: var(--red); color:#fff; }
.settings-btn { background: #888; }

/* === 장소 목록 === */
.place-list-area{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;}
.place-item{background:var(--card);border:1px solid #1a1a1a;border-left:3px solid var(--yellow);border-radius:var(--radius-sm);padding:8px 10px;margin-bottom:6px;display:flex;align-items:center;gap:6px;min-height:44px;}
.place-item-pins{display:flex;gap:3px;flex-shrink:0;}
.gps-btn{background:transparent;border:none;font-size:0.85rem;padding:2px;cursor:pointer;line-height:1;}
.place-item-info{flex:1;min-width:0;overflow:hidden;}
.place-item-name{font-size:0.82rem;font-weight:900;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.place-item-memo{font-size:0.72rem;color:var(--orange);font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.place-item-dist{font-size:0.6rem;color:#aaa;flex-shrink:0;} /* ✅ UI ⑦ */
.place-item-actions{display:flex;gap:4px;flex-shrink:0;}
.btn-edit{background:transparent;border:1px solid #2C2C2E;color:#888;border-radius:5px;padding:4px 7px;font-size:0.75rem;cursor:pointer;}
.btn-edit:active{color:var(--green);border-color:var(--green);}
.btn-delete{background:transparent;border:1px solid #2C2C2E;color:#888;border-radius:5px;padding:4px 7px;font-size:0.75rem;cursor:pointer;}
.btn-delete:active{color:var(--red);border-color:var(--red);}

/* 저장 + 리스트보기 버튼 행 */
.save-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.btn-save{width:100%;padding:12px;background:#000;color:#888;border:1px solid #2C2C2E;border-radius:var(--radius-sm);font-size:0.9rem;font-weight:700;}
.btn-view-all{padding:12px 16px;background:#000;border:1px solid #2C2C2E;color:#888;border-radius:var(--radius-sm);font-size:0.9rem;font-weight:700;white-space:nowrap;}
.btn-view-all.active{border-color:var(--green);color:var(--green);background:rgba(0,212,255,0.05);}

/* 전체보기 헤더 */
.place-list-header{display:flex;justify-content:space-between;align-items:center;padding:4px 2px 8px;font-size:0.7rem;color:var(--dim);}
.place-list-close{background:none;border:none;color:var(--green);font-size:0.75rem;font-weight:700;cursor:pointer;}
.locate-feedback{position:fixed;inset:0;background:rgba(0,0,0,0.85);z-index:700;display:flex;flex-direction:column;align-items:center;justify-content:center;}
.copyright{font-size:0.6rem;color:#555;text-align:center;padding:10px 0 20px;}

/* === 설정 페이지 === */
.settings-page{display:none;position:fixed;inset:0;background:var(--bg);z-index:500;flex-direction:column;overflow-y:auto;}
.settings-page.open{display:flex;}
.settings-header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid #222;position:sticky;top:0;background:var(--bg);z-index:10;}
.settings-back{background:none;border:none;color:var(--green);font-size:0.9rem;font-weight:bold;}
.settings-title{font-size:1rem;font-weight:900;color:#fff;letter-spacing:1px;}
.settings-section{margin:14px;padding:16px;background:#111;border:1px solid #222;border-radius:var(--radius-md);}
.settings-section-title{font-size:0.75rem;color:var(--green);font-weight:900;letter-spacing:2px;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid #222;}
.settings-row{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid #1a1a1a;}
.settings-row:last-child{border-bottom:none;}
.settings-row-label{font-size:0.82rem;color:#fff;}
.settings-row-desc{font-size:0.65rem;color:#666;margin-top:2px;}
.settings-preset-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;width:100%;margin-top:8px;}
.settings-preset-grid-5{grid-template-columns:repeat(5,1fr);}
.settings-preset-btn{padding:8px 4px;background:#1a1a1a;border:1px solid #222;border-radius:6px;color:#888;font-size:0.7rem;text-align:center;font-weight:700;}
.settings-preset-btn.active{background:var(--green);color:#000;border-color:var(--green);}
.settings-slider{width:100%;-webkit-appearance:none;height:6px;background:#222;border-radius:3px;outline:none;margin-top:8px;}
.settings-slider::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;background:var(--green);border-radius:50%;}
.settings-action-btn{width:100%;padding:12px;background:#222;border:1px solid #2C2C2E;border-radius:var(--radius-sm);color:#fff;font-size:0.82rem;font-weight:700;margin-top:6px;text-align:left;display:flex;justify-content:space-between;align-items:center;cursor:pointer;}
.settings-action-danger{background:rgba(255,62,62,0.05);border-color:var(--red);color:var(--red);}
.settings-info-row{font-size:0.75rem;color:#aaa;padding:8px 0;display:flex;justify-content:space-between;}
.settings-info-row a{color:var(--green);text-decoration:none;}

/* === 시급 팝업 === */
.wage-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.85);z-index:600;align-items:center;justify-content:center;}
.wage-overlay.open{display:flex;}
.wage-popup{background:#1a1a1a;border:1px solid var(--green);border-radius:var(--radius-lg);padding:24px;width:90%;max-width:360px;max-height:85vh;overflow-y:auto;}
.wage-title{font-size:1rem;font-weight:900;color:#fff;margin-bottom:4px;text-align:center;}
.wage-sub{font-size:0.75rem;color:#888;margin-bottom:16px;text-align:center;}
.wage-input{width:100%;background:#222;border:1px solid #444;color:#fff;padding:12px;border-radius:var(--radius-sm);font-size:1.05rem;text-align:center;margin-bottom:8px;}
.wage-input::placeholder{color:var(--dim);}
.wage-row-label{display:block;font-size:0.7rem;color:#888;text-align:left;margin:4px 0;}
.wage-total-display{background:linear-gradient(135deg,#001a0a,var(--card));border:1px solid var(--green);color:var(--green);padding:14px;border-radius:var(--radius-sm);font-size:1.5rem;font-weight:900;text-align:center;margin-bottom:8px;}
.wage-result{font-size:0.85rem;color:#ccc;margin-bottom:16px;min-height:2em;text-align:center;}
.wage-result b{color:var(--green);font-size:1.1rem;}
.wage-actions{display:flex;gap:8px;}
.wage-btn{flex:1;padding:12px;border:none;border-radius:var(--radius-sm);font-weight:bold;font-size:0.85rem;cursor:pointer;}
.wage-btn-save{background:var(--green);color:#000;}
.wage-btn-rest{background:#333;color:#aaa;}
.wage-divider{height:1px;background:#222;margin:12px 0 8px;}
.wage-pf-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-bottom:12px;}
.wage-pf-tab{padding:7px 4px;background:#1a1a1a;border:1px solid #2C2C2E;border-radius:var(--radius-sm);color:#666;font-size:0.68rem;font-weight:700;text-align:center;position:relative;cursor:pointer;}
.wage-pf-tab.active{background:#111;color:#fff;font-weight:900;}
.wage-pf-dot{display:inline-block;width:5px;height:5px;border-radius:50%;position:absolute;top:4px;right:4px;}
.wage-pf-inputs{margin-bottom:8px;}

/* === 긴급연락처 === */
.emergency-page{display:none;position:fixed;inset:0;background:var(--bg);z-index:500;flex-direction:column;overflow-y:auto;}
.emergency-page.open{display:flex;}
.emergency-header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid #222;position:sticky;top:0;background:var(--bg);z-index:10;}
.emergency-back{background:none;border:none;color:var(--green);font-size:0.9rem;font-weight:bold;}
.emergency-title{font-size:1rem;font-weight:900;color:#fff;}
.emergency-list{padding:14px;display:flex;flex-direction:column;gap:16px;padding-bottom:80px;}
.emg-item{display:flex;align-items:center;gap:10px;background:#121212;border:1px solid #222;border-radius:var(--radius-md);padding:12px 14px;border-left:4px solid #888;}

/* === 커스텀 모달 === */
.modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.85);z-index:9000;align-items:center;justify-content:center;padding:20px;}
.modal-overlay.open{display:flex;}
.modal-box{background:#1a1a1a;border:1px solid #2C2C2E;border-radius:var(--radius-lg);padding:22px;width:100%;max-width:340px;max-height:80vh;overflow-y:auto;}
.modal-box.confirm{border-color:var(--green);}
.modal-box.warn{border-color:var(--red);}
.modal-box.info{border-color:var(--orange);}
.modal-icon{font-size:1.8rem;text-align:center;margin-bottom:8px;}
.modal-title{font-size:1rem;font-weight:900;color:#fff;text-align:center;margin-bottom:10px;}
.modal-body{font-size:0.82rem;color:#ccc;line-height:1.6;margin-bottom:18px;white-space:pre-wrap;word-break:keep-all;text-align:center;}
.modal-actions{display:flex;gap:8px;}
.modal-btn{flex:1;padding:12px;border:none;border-radius:var(--radius-sm);font-weight:bold;font-size:0.85rem;cursor:pointer;}
.modal-btn-primary{background:var(--green);color:#000;}
.modal-btn-danger{background:var(--red);color:#fff;}
.modal-btn-cancel{background:#333;color:#aaa;}

/* === 히트맵 칩 === */
.hm-chip{padding:5px 10px;background:#1a1a1a;border:1px solid #2a2a2a;border-radius:14px;color:#888;font-size:0.7rem;font-family:var(--font-mono);cursor:pointer;transition:all 0.15s;}
.hm-chip.on{border-color:var(--green);color:var(--green);background:#001a0a;box-shadow:0 0 8px rgba(0,255,0,0.3);} /* ✅ ⑬ 글로우 */
.hm-chip.auto-day{border-color:var(--green);color:var(--green);background:#001a0a;box-shadow:0 0 6px rgba(0,255,0,0.2);opacity:0.85;} /* ✅ ⑪ 자동선택 */
.hm-chip.clear{border-color:var(--red);color:var(--red);}

/* ✅ ⑫ 분석 패널 */
.hm-analysis-panel{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:14px;}
.hm-analysis-title{font-size:0.85rem;font-weight:900;color:#fff;margin-bottom:10px;}
.hm-analysis-sub{font-size:0.65rem;color:#555;font-weight:400;margin-left:6px;}
.hm-analysis-section-label{font-size:0.65rem;color:#666;letter-spacing:0.5px;margin-bottom:6px;}
.hm-bar-chart{display:flex;align-items:flex-end;gap:4px;height:80px;}
.hm-bar-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;height:100%;justify-content:flex-end;}
.hm-bar-wrap{width:100%;flex:1;display:flex;align-items:flex-end;}
.hm-bar{width:100%;background:#1a3a1a;border-radius:3px 3px 0 0;min-height:2px;transition:height 0.3s;}
.hm-bar-val{font-size:0.55rem;color:#888;font-weight:700;}
.hm-bar-label{font-size:0.58rem;color:#555;}
.hm-insight-box{margin-top:12px;background:#0d0d0d;border-radius:8px;padding:10px;display:flex;flex-direction:column;gap:6px;}
.hm-insight-row{font-size:0.75rem;color:#aaa;}

/* === 매니저 v3 === */
.mgr-range-tabs{display:flex;gap:6px;padding:10px 14px 0;}
.mgr-range-tab{flex:1;padding:9px 4px;background:#1a1a1a;border:1px solid #222;border-radius:var(--radius-sm);color:#666;font-size:0.75rem;font-weight:700;text-align:center;cursor:pointer;}
.mgr-range-tab.active{background:var(--green);color:#000;border-color:var(--green);}
.mgr-section{margin:10px 14px 0;padding:14px;background:var(--card);border:1px solid #1a1a1a;border-radius:var(--radius-md);}
.mgr-section-title{font-size:0.72rem;color:var(--green);font-weight:900;letter-spacing:1.5px;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid #1a1a1a;}
.mgr-empty{text-align:center;color:var(--dim);font-size:0.8rem;padding:20px 0;}
.mgr-summary{margin:12px 14px 0;padding:18px;background:linear-gradient(135deg,#0d2a1a,var(--card));border:1px solid var(--green);border-radius:var(--radius-lg);text-align:center;}
.mgr-summary-label{font-size:0.65rem;color:var(--green);font-weight:900;letter-spacing:2px;margin-bottom:6px;}
.mgr-summary-income{font-size:1.8rem;font-weight:900;color:#fff;}
.mgr-summary-sub{font-size:0.72rem;color:#aaa;margin-top:6px;display:flex;justify-content:center;gap:6px;flex-wrap:wrap;}
.mgr-sep{color:#333;}
.mgr-time-bar{display:flex;height:12px;border-radius:6px;overflow:hidden;background:#1a1a1a;margin-bottom:10px;}
.mgr-time-seg{transition:width 0.4s;}
.mgr-time-seg.active{background:var(--green);}
.mgr-time-seg.rest{background:var(--orange);}
.mgr-time-seg.idle{background:#ff3e3e55;}
.mgr-time-seg.cooldown{background:#1a1a1a;}
.mgr-time-legend{display:flex;gap:12px;flex-wrap:wrap;}
.mgr-tl-item{display:flex;align-items:center;gap:5px;font-size:0.72rem;color:#aaa;}
.mgr-tl-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;}
.mgr-tl-dot.active{background:var(--green);}
.mgr-tl-dot.rest{background:var(--orange);}
.mgr-tl-dot.idle{background:var(--red);}
.mgr-idle-ratio{background:#ff3e3e22;color:var(--red);border-radius:4px;padding:1px 5px;font-size:0.65rem;font-weight:900;}
.mgr-kpi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:10px 14px 0;}
.mgr-kpi-card{background:#111;border:1px solid #222;border-radius:var(--radius-sm);padding:10px 8px;text-align:center;}
.mgr-kpi-card.green{border-color:var(--green);background:#001a0a;}
.mgr-kpi-label{font-size:0.6rem;color:#666;margin-bottom:5px;white-space:nowrap;}
.mgr-kpi-val{font-size:0.9rem;font-weight:900;color:#fff;}
.mgr-kpi-card.green .mgr-kpi-val{color:var(--green);}
.mgr-kpi-unit{font-size:0.6rem;color:#666;font-weight:400;}
.mgr-platform-row{display:flex;align-items:center;gap:8px;margin-bottom:8px;}
.mgr-platform-label{font-size:0.72rem;font-weight:700;min-width:52px;}
.mgr-platform-bar-wrap{flex:1;height:20px;background:#1a1a1a;border-radius:4px;overflow:hidden;}
.mgr-platform-bar{height:100%;border-radius:4px;position:relative;border:1px solid transparent;min-width:4px;}
.mgr-platform-fill{height:100%;border-radius:4px 0 0 4px;min-width:2px;}
.mgr-platform-val{font-size:0.72rem;color:#ccc;font-weight:700;min-width:52px;text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:2px;}
.mgr-mission-badge{font-size:0.6rem;color:var(--orange);}
.mgr-count-badge{font-size:0.6rem;color:var(--dim);}
.mgr-bars{display:flex;align-items:flex-end;gap:5px;height:100px;}
.mgr-bar-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;height:100%;justify-content:flex-end;}
.mgr-bar{width:100%;background:linear-gradient(180deg,var(--green),#006b1c);border-radius:3px 3px 0 0;min-height:2px;}
.mgr-bar.empty{background:#1a1a1a;}
.mgr-bar-val{font-size:0.55rem;color:#ccc;font-weight:700;}
.mgr-bar-label{font-size:0.6rem;color:#555;}
.mgr-matrix{width:100%;border-collapse:collapse;font-size:0.62rem;}
.mgr-matrix th{color:#555;font-weight:700;padding:4px 2px;text-align:center;font-size:0.58rem;}
.mgr-matrix td{padding:5px 2px;text-align:center;border-radius:3px;font-size:0.65rem;font-weight:700;min-width:30px;}
.mgr-matrix-day{color:#666!important;background:transparent!important;}
.mgr-dist-row{display:flex;align-items:center;gap:8px;margin-bottom:8px;}
.mgr-dist-label{font-size:0.7rem;color:#888;min-width:80px;}
.mgr-dist-bar-wrap{flex:1;height:16px;background:#1a1a1a;border-radius:4px;overflow:hidden;}
.mgr-dist-bar{height:100%;border-radius:4px;min-width:3px;}
.mgr-dist-val{font-size:0.72rem;font-weight:700;min-width:28px;text-align:right;}
.mgr-prediction{background:linear-gradient(135deg,#1a0d00,var(--card));border-color:var(--orange);}
.mgr-pred-main{font-size:1.5rem;font-weight:900;color:var(--orange);text-align:center;margin-bottom:6px;}
.mgr-pred-sub{font-size:0.7rem;color:#888;text-align:center;}
.mgr-records{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.mgr-record-item{background:#111;border:1px solid #222;border-radius:var(--radius-sm);padding:10px;text-align:center;}
.mgr-record-label{font-size:0.65rem;color:#666;margin-bottom:4px;}
.mgr-record-val{font-size:0.95rem;font-weight:900;color:var(--green);}
.mgr-record-date{font-size:0.6rem;color:#444;margin-top:4px;}
.mgr-log-item{background:#111;border:1px solid #1a1a1a;border-radius:var(--radius-sm);padding:12px;margin-bottom:8px;}
.mgr-log-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;}
.mgr-log-date{font-size:0.72rem;color:#666;display:flex;align-items:center;gap:5px;flex-wrap:wrap;}
.mgr-log-income{font-size:1rem;font-weight:900;color:#fff;}
.mgr-log-row{font-size:0.7rem;color:#888;display:flex;justify-content:space-between;flex-wrap:wrap;gap:4px;}
.mgr-pf-badge{display:inline-block;border:1px solid;border-radius:10px;padding:1px 6px;font-size:0.6rem;font-weight:700;}
#gpsWarning{position:fixed;top:0;left:0;right:0;padding:6px;background:rgba(255,62,62,0.9);color:#fff;font-size:0.7rem;font-weight:bold;text-align:center;z-index:900;}
/* ============================================================
   hudpro8 홈 UI 적용 — style.css 하단에 추가
   ============================================================ */

/* ── HUD 탭 레이아웃: 고정상단 + 스크롤 영역 분리 ── */
#hudTab {
    overflow-y: hidden !important;
    display: flex !important;
    flex-direction: column !important;
}
.hud-fixed-top {
    flex-shrink: 0;
    background: #000;
    border-bottom: 1px solid #1a1a1a;
    z-index: 10;
}
.hud-scroll-area {
    flex: 1;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    padding-bottom: calc(60px + env(safe-area-inset-bottom));
}


/* ── 타이머 영역 (hudpro8 스타일) ── */
.hud-timer-area {
    padding: 12px 14px 14px;
}
.hud-timer-controls {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 10px;
}
.hud-timer-display {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

/* WORK / MISSION 모드 토글 버튼 */
.mode-group {
    display: flex;
    gap: 6px;
}
.mode-btn {
    background: var(--card);
    border: 1.5px solid #333;
    color: #aaa;
    padding: clamp(6px, 1.5vw, 10px) clamp(10px, 3vw, 16px);
    border-radius: 8px;
    font-size: clamp(1.1rem, 3.5vw, 1.4rem);
    font-weight: 400;
    transition: all 0.2s;
    line-height: 1;
    font-family: 'Apple Color Emoji','Segoe UI Emoji','Noto Color Emoji',sans-serif;
}
.mode-btn.active-work {
    background: rgba(255,140,0,0.1);
    border-color: var(--orange);
    color: var(--orange);
    box-shadow: 0 0 8px rgba(255,140,0,0.2);
}
.mode-btn.active-mission {
    background: rgba(254,229,0,0.1);
    border-color: var(--yellow);
    color: var(--yellow);
    box-shadow: 0 0 8px rgba(254,229,0,0.2);
}

/* START / STOP 버튼 (hud-start-btn 래퍼) */
.hud-start-btn {
    padding: 9px 22px;
    border-radius: 9px;
    font-size: 13px;
    font-weight: 900;
    letter-spacing: 1px;
    min-width: 84px;
    font-family: var(--font-mono);
    /* btn-start / btn-stop 색상 기존 스타일 그대로 재활용 */
}

/* RESET 버튼 */


.mode-btn-reset {
    border-color: #2C2C2E !important;
    color: #ffffff !important;
    font-size: 1.8rem !important;
}
.mode-btn-reset.active {
    border-color: var(--red) !important;
    color: var(--red) !important;
}
.mode-btn-reset:active {
    background: rgba(255,62,62,0.1);
}

/* 타이머 숫자 — 버튼 아래 */
.hud-timer-val {
    font-family: var(--font-mono);
    font-size: 2.3rem;
    font-weight: 900;
    color: #fff;
    letter-spacing: 2px;
    line-height: 1;
    text-align: center;
    padding: 8px 0 4px;
    width: 100%;
    text-shadow: 0 0 10px rgba(50,255,126,0.4), 0 0 20px rgba(50,255,126,0.2);
}


/* ── 속도 카드 (hudpro8 스타일 히어로) ── */
.speed-card {
    background: var(--card);
    border: 1px solid rgba(0,255,0,0.3);
    border-radius: var(--radius-lg);
    min-height: 160px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 20px 16px;
    position: relative;
    overflow: hidden;
    flex-shrink: 0;
}

/* 히어로 상태별 컨테이너 */
.hero-state {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    text-align: center;
}
.hero-state.hidden { display: none; }

/* 대형 상태 텍스트 */
.hero-state-main {
    font-size: 1.6rem;
    font-weight: 900;
    letter-spacing: 0.02em;
}
.hero-dim    { color: #666; }
.hero-yellow { color: var(--yellow, #FFD600); }
.hero-green  { color: var(--green); }
.hero-mint   { color: var(--mint, #00E5CC); }

/* 서브 텍스트 */
.hero-state-sub {
    font-size: 1.1rem;
    font-weight: 700;
    color: #ccc;
    font-family: var(--font-mono);
}

/* 배달 중 타이머 (크기 확대) */
.hero-state-timer {
    font-size: 1.6rem;
    font-weight: 900;
    color: #aaa;
    font-family: var(--font-mono);
    letter-spacing: 0.05em;
    margin-top: 2px;
}

/* 스탬프 안내 */
.hero-state-stamp {
    font-size: 0.78rem;
    color: #888;
    margin-top: 2px;
}


/* 좌상단 상태 배지 */
.hero-status-row {
    position: absolute;
    top: 12px;
    left: 14px;
    right: 14px;
    display: flex;
    align-items: center;
    gap: 8px;
}
.hero-status-badge {
    font-size: clamp(1rem, 4vw, 1.3rem);
    font-weight: 900;
    color: var(--status-dim);
    letter-spacing: 0.5px;
    transition: color 0.3s;
    white-space: nowrap;
}
.hero-status-badge.live    { color: #ffffff; }
.hero-status-badge.mission { color: var(--orange); }
.hero-status-badge.resting { color: var(--orange); }

/* 우상단 미션 배지 */
.mission-badge-top {
    position: absolute;
    top: 12px;
    right: 12px;
    font-size: 10px;
    font-weight: 900;
    color: var(--yellow);
    background: rgba(254,229,0,0.1);
    border: 1px solid rgba(254,229,0,0.4);
    border-radius: 20px;
    padding: 3px 9px;
    letter-spacing: 1px;
}

/* 속도 숫자 */
.speed-num {
    font-family: var(--font-mono);
    font-size: 4.5rem;
    font-weight: 900;
    color: var(--green);
    line-height: 1;
    transition: color 0.3s;
    text-shadow: 0 0 12px rgba(50,255,126,0.5), 0 0 24px rgba(50,255,126,0.2);
}
.speed-unit-label {
    font-size: 1.1rem;
    color: #555;
    font-weight: 700;
    letter-spacing: 2px;
}

/* 픽업 진행 인디케이터 (속도카드 내 좌하단) */
.speed-card .pickup-area {
    position: absolute;
    bottom: 12px;
    left: 14px;
}

/* 근접 장소 표시 (속도카드 내 하단) */
.speed-card-place {
    position: absolute;
    bottom: 12px;
    left: 0;
    right: 0;
    text-align: center;
    padding: 0 14px;
}
.speed-card-place.hidden { display: none; }
.speed-card-place .place-name {
    font-size: 12px;
    font-weight: 900;
    color: #fff;
}
.speed-card-place .place-memo-marquee span {
    font-size: 11px;
    color: var(--orange);
}

/* 미션 버튼 활성 상태 (4버튼 행 내 #missionBtn) */
#missionBtn.active {
    background: rgba(254,229,0,0.1);
    border-color: var(--yellow) !important;
    color: var(--yellow) !important;
}

/* ── 히어로 카드 근접 장소 텍스트 크기 + 마퀴 ── */
.speed-card-place {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 16px;
    text-align: center;
    background: var(--card);
    border-radius: var(--radius-lg);
    z-index: 2;
}
.speed-card-place.hidden { display: none; }
.speed-card-place .place-name {
    font-size: clamp(1.8rem, 7vw, 2.5rem);
    font-weight: 900;
    color: #fff;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 90vw;
    line-height: 1.2;
    animation: marqueePlace 10s linear infinite;
}
.speed-card-place .place-memo {
    font-size: clamp(1rem, 4vw, 1.4rem);
    color: var(--orange);
    font-weight: 700;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 90vw;
    margin-top: 6px;
    animation: marqueePlace 10s linear 0.5s infinite;
}
@keyframes marqueePlace {
    0%   { transform: translateX(0); }
    30%  { transform: translateX(0); }
    70%  { transform: translateX(min(0px, calc(-100% + 80vw))); }
    100% { transform: translateX(0); }
}

/* ── 픽업 경과시간 ── */
.pickup-elapsed {
    font-family: var(--font-mono);
    font-size: clamp(0.85rem, 3.5vw, 1.1rem);
    font-weight: 900;
    color: var(--yellow);
    background: rgba(255,213,79,0.1);
    border: 1px solid rgba(255,213,79,0.3);
    border-radius: 6px;
    padding: 2px 8px;
    white-space: nowrap;
}

/* ── 정산 팝업 ── */
.settle-popup { max-height: 90vh; overflow-y: auto; }
.settle-tabs {
    display: flex;
    gap: 4px;
    margin-bottom: 14px;
    flex-wrap: wrap;
}
.settle-tab {
    flex: 1;
    padding: 8px 4px;
    background: #111;
    border: 1px solid #333;
    color: #888;
    border-radius: 7px;
    font-size: 0.72rem;
    font-weight: 700;
    cursor: pointer;
    white-space: nowrap;
}
.settle-tab.active {
    background: rgba(0,255,65,0.1);
    border-color: var(--green);
    color: var(--green);
}
.settle-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}
.settle-field label { font-size: 0.7rem; }

/* ── manager 하이라이트 카드 (statv5 스타일) ── */
.mgr-highlight-main {
    background: linear-gradient(145deg, #0d1a0d, var(--card));
    border: 1px solid var(--green);
    border-radius: 12px;
    padding: 20px 16px;
    text-align: center;
    box-shadow: 0 4px 20px rgba(0,255,65,0.1);
    margin-bottom: 10px;
}
.mgr-hl-label {
    display: block;
    font-size: 0.72rem;
    color: #888;
    margin-bottom: 8px;
    letter-spacing: 0.5px;
}
.mgr-hl-value {
    font-size: 2rem;
    font-weight: 900;
    color: var(--green);
    text-shadow: 0 0 12px rgba(0,255,65,0.3);
    font-family: var(--font-mono);
}
.mgr-hl-unit {
    font-size: 1rem;
    font-weight: 400;
    color: #888;
}
.mgr-highlight-sub {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    margin-bottom: 14px;
}
.mgr-hl-sub-card {
    background: var(--card);
    border: 1px solid #1a1a1a;
    border-radius: 10px;
    padding: 14px;
    text-align: center;
}
.mgr-hl-sub-label {
    display: block;
    font-size: 0.68rem;
    color: #888;
    margin-bottom: 6px;
}
.mgr-hl-sub-value {
    font-size: 1.3rem;
    font-weight: 900;
    color: #fff;
    font-family: var(--font-mono);
}

/* ── 인사이트 카드 ── */
.mgr-insight-wrap {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.mgr-insight-card {
    border-radius: 10px;
    padding: 12px 14px;
    border-left: 3px solid;
}
.mgr-insight-card.insight-good {
    background: rgba(0,255,65,0.05);
    border-color: var(--green);
}
.mgr-insight-card.insight-warn {
    background: rgba(254,229,0,0.05);
    border-color: var(--yellow);
}
.mgr-insight-card.insight-bad {
    background: rgba(255,62,62,0.05);
    border-color: var(--red);
}
.mgr-insight-header {
    font-size: 0.68rem;
    font-weight: 700;
    color: #888;
    margin-bottom: 5px;
    letter-spacing: 0.5px;
}
.mgr-insight-msg {
    font-size: 0.82rem;
    color: #ccc;
    line-height: 1.5;
}
.mgr-insight-msg b {
    color: #fff;
}
.mgr-insight-empty {
    text-align: center;
    color: #555;
    font-size: 0.8rem;
    padding: 20px 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.mgr-insight-empty span {
    font-size: 0.72rem;
    color: #444;
}

/* ── 단속카메라 설정 ── */
.region-btn{padding:6px 4px;background:#1a1a1a;border:1px solid #2C2C2E;border-radius:6px;color:#aaa;font-size:0.75rem;cursor:pointer;text-align:center;}
.region-btn.active{background:rgba(0,200,100,0.15);border-color:var(--green);color:var(--green);font-weight:700;}
.settings-chips{display:flex;gap:6px;margin:6px 0 10px;}
.chip{flex:1;padding:7px 4px;background:#1a1a1a;border:1px solid #2C2C2E;border-radius:6px;color:#aaa;font-size:0.78rem;cursor:pointer;text-align:center;}
.chip.active{background:rgba(0,200,100,0.15);border-color:var(--green);color:var(--green);font-weight:700;}
.toggle-switch{position:relative;display:inline-block;width:44px;height:24px;}
.toggle-switch input{opacity:0;width:0;height:0;}
.toggle-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background:#333;border-radius:24px;transition:.3s;}
.toggle-slider:before{position:absolute;content:"";height:18px;width:18px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:.3s;}
.toggle-switch input:checked + .toggle-slider{background:var(--green);}
.toggle-switch input:checked + .toggle-slider:before{transform:translateX(20px);}
.settings-label{font-size:0.82rem;color:#fff;}

/* ── 긴급연락처 페이지 ── */
.emg-fixed-wrap {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    padding: 16px 14px 8px;
}
.emg-fixed-btn {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    padding: 16px 8px;
    border-radius: 12px;
    text-decoration: none;
    border: 2px solid transparent;
    transition: opacity 0.15s;
}
.emg-fixed-btn:active { opacity: 0.7; }
.emg-red    { background: rgba(255,62,62,0.1);  border-color: var(--red); }
.emg-orange { background: rgba(243,156,18,0.1); border-color: var(--orange); }
.emg-green  { background: rgba(0,255,65,0.1);   border-color: var(--green); }
.emg-fixed-icon  { font-size: 1.6rem; }
.emg-fixed-label { font-size: 0.7rem; color: #aaa; font-weight: 700; }
.emg-fixed-num   { font-size: 1.3rem; font-weight: 900; color: #fff; font-family: var(--font-mono); }

.emg-section-title {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 14px 8px;
    font-size: 0.75rem;
    font-weight: 900;
    color: var(--green);
    letter-spacing: 1px;
    border-top: 1px solid #1a1a1a;
    margin-top: 8px;
}
.emg-add-toggle {
    background: transparent;
    border: 1px solid var(--green);
    color: var(--green);
    padding: 4px 12px;
    border-radius: 6px;
    font-size: 0.75rem;
    font-weight: 700;
    cursor: pointer;
}
.emg-form {
    padding: 10px 14px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    background: var(--card);
    border-top: 1px solid #1a1a1a;
    border-bottom: 1px solid #1a1a1a;
}
.emg-input {
    width: 100%;
    padding: 10px 12px;
    background: #111;
    border: 1px solid #333;
    border-radius: 8px;
    color: #fff;
    font-size: 0.9rem;
    box-sizing: border-box;
}
.emg-save-btn {
    padding: 10px;
    background: var(--green);
    color: #000;
    border: none;
    border-radius: 8px;
    font-size: 0.9rem;
    font-weight: 900;
    cursor: pointer;
}
.emg-contact-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: var(--card);
    border: 1px solid #1a1a1a;
    border-radius: 10px;
    padding: 14px;
}
.emg-contact-info { flex: 1; }
.emg-contact-name  { font-size: 1rem; font-weight: 900; color: #fff; }
.emg-contact-memo  { font-size: 0.75rem; color: #888; margin-top: 2px; }
.emg-contact-phone { font-size: 0.85rem; color: var(--green); font-family: var(--font-mono); margin-top: 4px; }
.emg-contact-actions { display: flex; gap: 8px; align-items: center; }
.emg-call-btn {
    font-size: 1.5rem;
    text-decoration: none;
    padding: 6px 10px;
    background: rgba(0,255,65,0.1);
    border-radius: 8px;
    border: 1px solid rgba(0,255,65,0.3);
}
.emg-delete-btn {
    background: transparent;
    border: 1px solid #333;
    color: #666;
    padding: 6px 10px;
    border-radius: 8px;
    font-size: 0.85rem;
    cursor: pointer;
}
.emg-empty {
    text-align: center;
    color: #555;
    font-size: 0.85rem;
    padding: 30px 0;
    line-height: 1.8;
}

/* ── 장소저장 통합 카드 ── */
.place-card {
    background: var(--card);
    border: 1px solid #1a1a1a;
    border-radius: var(--radius-md);
    padding: 10px 12px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.place-card-header {
    display: flex;
    gap: 6px;
    align-items: center;
}
.place-card-title {
    font-size: 0.72rem;
    color: #aaa;
    font-weight: 700;
    letter-spacing: 1px;
}
.place-card-actions {
    display: flex;
    gap: 6px;
}
/* ✅ 현위치저장·후면카메라·메모저장·리스트 — 4개 동일 크기 */
.btn-place-save,
.btn-place-list,
.btn-place-locate,
.btn-place-rear {
    flex: 1;
    height: 44px;
    padding: 0 10px;
    background: #000;
    border-radius: 8px;
    font-size: 0.82rem;
    font-weight: 700;
    text-align: center;
    white-space: nowrap;
}
.btn-place-save   { border: 1px solid var(--green); color: var(--green); }
.btn-place-list   { border: 1px solid #555; color: #fff; }
.btn-place-locate { border: 1px solid #444; color: #fff; }
.btn-place-rear   { border: 1px solid #444; color: #fff; }



/* ── 정산 수동 보정 버튼 ── */
.mgr-edit-btn {
    background: transparent;
    border: 1px solid #2C2C2E;
    color: #666;
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 0.7rem;
    font-weight: 700;
    cursor: pointer;
}
.mgr-edit-btn:active {
    border-color: var(--green);
    color: var(--green);
}

/* ── 정산 팝업 재설계 ── */
/* ── 정산 팝업 v2 ── */
.settle-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:8px; }
.settle-date { font-size:0.7rem; color:#666; font-family:var(--font-mono); }
.settle-summary-bar {
    display:grid; grid-template-columns:repeat(4,1fr);
    gap:4px; background:#0d0d0d; border-radius:8px; padding:8px;
}
.settle-summary-item { display:flex; flex-direction:column; align-items:center; gap:2px; }
.settle-summary-label { font-size:0.55rem; color:#555; letter-spacing:0.5px; }
.settle-summary-val   { font-size:0.8rem; font-weight:700; color:#ccc; font-family:var(--font-mono); }
.settle-divider { height:1px; background:#1a1a1a; margin:12px 0; }
.settle-preview-bar {
    font-size:0.78rem; color:#888; padding:8px 2px;
    min-height:20px; text-align:center;
}
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    margin-bottom: 12px;
}
.settle-input-manual {
    border-color: var(--green) !important;
    font-size: 1.1rem !important;
}
.settle-auto-section {
    background: #111;
    border: 1px solid #2C2C2E;
    border-radius: 10px;
    padding: 10px 12px;
    margin-bottom: 10px;
}
.settle-auto-title {
    font-size: 0.72rem;
    color: #666;
    font-weight: 700;
    letter-spacing: 1px;
    margin-bottom: 8px;
}
.settle-grid-auto {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
}
.settle-auto-field {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.settle-auto-label {
    font-size: 0.65rem;
    color: #555;
    font-weight: 700;
}
.settle-auto-input {
    width: 100%;
    background: #1a1a1a;
    border: 1px solid #2C2C2E;
    color: #aaa;
    padding: 8px 10px;
    border-radius: 6px;
    font-size: 0.9rem;
    box-sizing: border-box;
}
.settle-info-row {
    display: flex;
    gap: 16px;
    padding: 6px 2px;
    font-size: 0.75rem;
    color: #555;
}
.settle-info-item b {
    color: #888;
    margin-left: 4px;
}

/* ── 히트맵 v4 CSS ── */
.hm-btn-bar{display:flex;gap:4px;padding:5px 8px;flex-shrink:0;background:#0d0d0d;border-bottom:1px solid var(--border);}
.hm-header{display:flex;align-items:baseline;gap:8px;padding:8px 12px 6px;background:#0d0d0d;border-bottom:1px solid var(--border);flex-shrink:0;}
.hm-logo{font-size:1rem;font-weight:900;color:var(--green);letter-spacing:2px;font-family:var(--font-mono);}
.hm-sub{font-size:0.72rem;font-weight:700;color:var(--green);opacity:0.7;letter-spacing:1px;}

/* 진행 바 */
.hm-progress-wrap{padding:6px 12px 8px;background:#0d0d0d;border-bottom:1px solid var(--border);flex-shrink:0;}
.hm-progress-label{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px;font-size:0.65rem;color:#666;}
.hm-progress-count{font-family:var(--font-mono);color:var(--green);font-weight:700;}
.hm-progress-bar-bg{background:#1a1a1a;border-radius:3px;height:5px;overflow:hidden;}
.hm-progress-bar-fill{height:100%;border-radius:3px;background:var(--green);transition:width 0.4s ease;}

/* 온보딩 무료 안내 */
.hm-onboard-free{font-family:var(--font-mono);font-size:0.65rem;color:var(--green);opacity:0.7;margin-top:8px;}
.settle-close-btn{display:block;width:100%;padding:12px;background:transparent;border:1px solid #333;border-radius:var(--radius-sm);color:#888;font-size:0.82rem;font-weight:700;cursor:pointer;margin-top:12px;}
.hm-day-btn,.hm-slot-btn{flex:1;padding:8px 2px;background:#1a1a1a;border:1px solid #2a2a2a;color:#666;border-radius:6px;font-size:0.72rem;font-weight:700;cursor:pointer;font-family:var(--font-mono);transition:all 0.15s;}
.hm-day-btn.on,.hm-slot-btn.on{background:rgba(0,255,65,0.1);border-color:var(--green);color:var(--green);box-shadow:0 0 8px rgba(0,255,65,0.3);}
.hm-map-wrap{flex:1;position:relative;background:#e8e8e8;overflow:hidden;}
#hmMap{width:100%;height:100%;}
.vworld-dark{filter:none;}
.hm-onboard{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:rgba(0,0,0,0.55);gap:10px;z-index:500;padding:24px;pointer-events:none;}
.hm-onboard-icon{font-size:2.5rem;}
.hm-onboard-count{font-family:var(--font-mono);font-size:0.85rem;color:var(--green);}
.hm-onboard-bar-wrap{width:200px;height:6px;background:#1a1a1a;border-radius:3px;overflow:hidden;}
.hm-onboard-bar{height:100%;background:linear-gradient(90deg,var(--green),#006b1c);transition:width 0.5s;}
.hm-onboard-msg{font-size:0.78rem;color:#888;text-align:center;line-height:1.6;max-width:260px;}
.hm-legend{position:absolute;bottom:12px;left:12px;display:none;flex-direction:column;gap:4px;background:rgba(10,10,12,0.85);border:1px solid var(--border);border-radius:8px;padding:8px 10px;z-index:500;}
.hm-legend-item{display:flex;align-items:center;gap:6px;font-size:0.68rem;color:#aaa;}
.hm-legend-dot{width:10px;height:10px;border-radius:2px;flex-shrink:0;}
.hm-popup{position:absolute;top:12px;right:12px;z-index:600;pointer-events:none;}
.hm-stage-toast{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);background:rgba(0,0,0,0.88);border:1px solid var(--green);border-radius:20px;padding:8px 16px;font-size:0.75rem;color:#ccc;white-space:nowrap;z-index:600;pointer-events:none;opacity:0;transition:opacity 0.35s;}
.hm-stage-toast.show{opacity:1;}
.hm-toast-count{color:var(--green);font-weight:900;font-family:var(--font-mono);margin-right:4px;}
.hm-popup-inner{background:rgba(10,10,12,0.92);border:1px solid var(--border);border-radius:8px;padding:10px 14px;min-width:160px;}
.hm-popup-title{font-size:0.68rem;color:var(--green);font-family:var(--font-mono);margin-bottom:6px;}
.hm-popup-row{font-size:0.78rem;color:#ccc;margin-bottom:4px;}
.hm-popup-danger{color:#AA66FF;}
.hm-popup-sub{font-size:0.65rem;color:#666;}
.hm-my-loc{position:relative;width:24px;height:24px;}
.hm-my-loc-dot{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:10px;height:10px;background:#fff;border-radius:50%;border:2px solid var(--green);z-index:2;}
.hm-my-loc-pulse{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:24px;height:24px;border:2px solid var(--green);border-radius:50%;animation:hm-pulse 1.5s infinite;opacity:0.6;}
@keyframes hm-pulse{0%{transform:translate(-50%,-50%) scale(0.5);opacity:0.8;}100%{transform:translate(-50%,-50%) scale(1.5);opacity:0;}}

/* ── 정산 지출 섹션 ── */
.settle-expense-title{font-size:0.78rem;font-weight:900;color:#aaa;margin-bottom:8px;}
.settle-expense-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;margin-bottom:6px;}
.settle-expense-item{display:flex;flex-direction:column;gap:3px;}
.settle-expense-item label{font-size:0.62rem;color:#666;}
.settle-expense-input{background:#1a1a1a;border:1px solid var(--border);border-radius:6px;padding:7px 8px;color:#fff;font-size:0.82rem;text-align:right;width:100%;box-sizing:border-box;}

/* ── 장부 탭 ── */
.finance-period-bar{display:flex;gap:6px;padding:10px 0 6px;}
.finance-period-btn{flex:1;background:var(--card);border:1px solid var(--border);border-radius:6px;padding:8px;color:#666;font-size:0.78rem;font-weight:700;cursor:pointer;}
.finance-period-btn.active{background:rgba(0,255,136,0.1);border-color:var(--green);color:var(--green);}
.finance-summary-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:20px;text-align:center;margin-bottom:10px;}
.finance-summary-label{font-size:0.65rem;color:#666;letter-spacing:1px;margin-bottom:6px;}
.finance-net-income{font-size:2rem;font-weight:900;color:var(--green);font-family:var(--font-mono);margin-bottom:12px;}
.finance-summary-row{display:flex;align-items:center;justify-content:center;}
.finance-summary-col{flex:1;text-align:center;}
.finance-summary-divider{width:1px;height:30px;background:var(--border);}
.finance-summary-sub-label{display:block;font-size:0.65rem;color:#555;margin-bottom:4px;}
.finance-summary-sub-val{font-size:1rem;font-weight:900;font-family:var(--font-mono);color:#aaa;}
.finance-summary-sub-val.red{color:var(--red);}
.finance-section{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:14px;margin-bottom:10px;}
.finance-section-title{font-size:0.78rem;font-weight:900;color:#aaa;margin-bottom:10px;}
.finance-detail-list{display:flex;flex-direction:column;gap:6px;}
.finance-log-item{background:#1a1a1a;border-radius:6px;padding:10px 12px;}
.finance-log-date{font-size:0.65rem;color:#555;font-family:var(--font-mono);margin-bottom:4px;}
.finance-log-vals{display:flex;justify-content:space-between;align-items:center;}
.finance-log-income{font-size:0.9rem;font-weight:900;color:var(--green);font-family:var(--font-mono);}
.finance-log-expense{font-size:0.9rem;font-weight:900;color:var(--red);font-family:var(--font-mono);}
.finance-log-count{font-size:0.72rem;color:#555;}
.finance-log-expense-items{font-size:0.72rem;color:#666;margin:4px 0;line-height:1.5;}
.finance-empty{text-align:center;color:#444;font-size:0.8rem;padding:16px 0;}
.finance-pro-preview{opacity:0.5;}
.finance-pro-badge{display:inline-block;font-size:0.6rem;background:rgba(255,214,0,0.15);color:var(--yellow);border:1px solid var(--yellow);border-radius:4px;padding:1px 6px;margin-left:6px;vertical-align:middle;}
.finance-pro-msg{font-size:0.78rem;color:#555;line-height:1.6;}
.finance-btn{background:rgba(0,229,204,0.1);border:1px solid var(--mint);color:var(--mint);border-radius:10px;padding:10px;font-size:0.82rem;font-weight:900;cursor:pointer;flex:1;}

/* ── 세금 계산 테이블 ── */
.finance-tax-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0;font-size:0.82rem;color:#aaa;}
.finance-tax-row.sub{padding:4px 0 4px 12px;font-size:0.75rem;color:#666;}
.finance-tax-row.total{padding:8px 0;font-size:0.88rem;font-weight:900;color:#fff;}
.finance-tax-val{font-family:var(--font-mono);font-weight:700;}
.finance-tax-val.red{color:var(--red);}
.finance-tax-val.green{color:var(--green);}
.finance-tax-divider{height:1px;background:var(--border);margin:6px 0;}

/* ── 목표 설정 (설정 탭) ── */
.goal-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-bottom:12px;}
.goal-item{display:flex;flex-direction:column;gap:4px;}
.goal-item label{font-size:0.62rem;color:#666;}
.goal-input-wrap{display:flex;align-items:center;gap:4px;}
.goal-input{flex:1;background:#1a1a1a;border:1px solid var(--border);border-radius:6px;padding:8px;color:#fff;font-size:0.82rem;text-align:right;width:100%;}
.goal-unit{font-size:0.65rem;color:#555;white-space:nowrap;}
.goal-save-btn{width:100%;padding:10px;background:rgba(0,255,136,0.1);border:1px solid var(--green);border-radius:8px;color:var(--green);font-size:0.82rem;font-weight:900;cursor:pointer;}

/* ── 목표 달성률 (HUD 타이머 아래) ── */
.goal-progress-wrap{padding:6px 16px 8px;background:#0a0a0a;border-bottom:1px solid var(--border);}
.goal-progress-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px;}
.goal-progress-label{font-size:0.65rem;color:#666;}
.goal-progress-pct{font-family:var(--font-mono);font-size:0.72rem;font-weight:700;color:var(--green);}
.goal-progress-bg{background:#1a1a1a;border-radius:3px;height:4px;overflow:hidden;margin-bottom:3px;}
.goal-progress-fill{height:100%;border-radius:3px;background:var(--green);transition:width 0.4s ease;}
.goal-progress-remain{font-size:0.62rem;color:#555;text-align:right;}

/* ── 얼리버드 버튼 ── */
.earlybird-btn{width:100%;padding:12px;background:rgba(255,214,0,0.1);border:1px solid var(--yellow);border-radius:8px;color:var(--yellow);font-size:0.85rem;font-weight:900;cursor:pointer;letter-spacing:0.5px;}
