:root{--bg-header: #10261c;--bg-header-2: #163527;--bg-canvas: #f6f4ec;--bg-card: #ffffff;--line: #dedacb;--line-strong: #c7c2ac;--text-dark: #1b2620;--text-muted: #6e7468;--text-faint: #9a9b8c;--accent-trail: #b4552b;--accent-forest: #2e6b4c;--accent-forest-soft: #dcebe1;--danger: #a6392d;--danger-soft: #f5deda;--radius: 10px;--radius-sm: 6px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{height:100%}body{margin:0;background:var(--bg-canvas);font-family:IBM Plex Sans KR,sans-serif;color:var(--text-dark)}.mono{font-family:IBM Plex Mono,monospace}button{font-family:inherit}.app-frame{max-width:480px;margin:0 auto;min-height:100vh;background:var(--bg-canvas);position:relative;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:20;background:var(--bg-card);border-bottom:1px solid var(--line);padding:14px 16px;display:flex;align-items:center;gap:10px;min-height:26px}.topbar-back{background:transparent;border:none;font-size:18px;color:var(--text-dark);cursor:pointer;padding:2px 4px 2px 0;line-height:1}.topbar-title{font-size:16px;font-weight:700;flex:1}.topbar-brand{font-size:17px;font-weight:800;color:var(--accent-forest);letter-spacing:-.02em}.app-body{flex:1;padding:14px 16px 90px}.bottom-nav{position:sticky;bottom:0;z-index:20;background:var(--bg-card);border-top:1px solid var(--line);display:flex;padding:6px 4px calc(6px + env(safe-area-inset-bottom,0px)) 4px}.bottom-nav-item{flex:1;background:transparent;border:none;display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 4px;color:var(--text-faint);font-size:11px;cursor:pointer;border-radius:var(--radius-sm)}.bottom-nav-item .icon{font-size:19px;line-height:1}.bottom-nav-item.active{color:var(--accent-forest);font-weight:700}.auth-wrap{min-height:100vh;display:flex;flex-direction:column;justify-content:center;padding:32px 26px;background:linear-gradient(155deg,var(--bg-header) 0%,var(--bg-header-2) 100%)}.auth-card{background:var(--bg-card);border-radius:16px;padding:30px 24px}.auth-brand{font-size:22px;font-weight:800;color:var(--accent-forest);margin-bottom:4px}.auth-sub{font-size:12.5px;color:var(--text-faint);margin:0 0 22px;line-height:1.5}.auth-error{color:var(--danger);font-size:12.5px;margin:8px 0 0}.auth-divider{display:flex;align-items:center;gap:10px;margin:20px 0;color:var(--text-faint);font-size:11.5px}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--line)}.auth-switch{text-align:center;font-size:12.5px;color:var(--text-muted);margin-top:18px}.auth-switch button{background:none;border:none;color:var(--accent-forest);font-weight:700;cursor:pointer;padding:0 2px}.social-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 14px;border-radius:var(--radius-sm);font-size:13.5px;font-weight:600;border:1px solid var(--line-strong);background:#fff;color:var(--text-dark);cursor:pointer;margin-bottom:8px}.social-btn:last-child{margin-bottom:0}.social-btn.kakao{background:#fee500;border-color:#fee500;color:#1b1b1b}.social-btn.naver{background:#03c75a;border-color:#03c75a;color:#fff}.social-btn.google{background:#fff}label{display:block;font-size:12.5px;font-weight:600;color:var(--text-muted);margin-bottom:6px}select,input[type=text],input[type=password],input[type=email],input[type=number]{width:100%;font-family:IBM Plex Sans KR,sans-serif;font-size:15px;padding:11px 12px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:#fff;color:var(--text-dark)}select:focus,input:focus{outline:2px solid var(--accent-forest);outline-offset:-1px;border-color:var(--accent-forest)}.field{margin-bottom:14px}.field:last-child{margin-bottom:0}.hint{font-size:12px;color:var(--text-faint)}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;cursor:pointer;border-radius:var(--radius-sm);font-family:IBM Plex Sans KR,sans-serif;font-weight:700;font-size:14.5px;padding:12px 18px;display:inline-flex;align-items:center;justify-content:center;gap:6px}.btn-block{width:100%}.btn-primary{background:var(--accent-forest);color:#fff}.btn-primary:hover{background:#255a3f}.btn-primary:disabled{background:#c9cfc7;cursor:not-allowed}.btn-ghost{background:transparent;color:var(--text-muted);border:1px solid var(--line-strong)}.btn-outline{background:#fff;color:var(--accent-forest);border:1.5px solid var(--accent-forest)}.section{margin-bottom:24px}.section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.section-title{font-size:15px;font-weight:700}.section-more{font-size:12px;color:var(--text-faint);background:none;border:none;cursor:pointer}.card{background:var(--bg-card);border:1px solid var(--line);border-radius:var(--radius);padding:16px}.card+.card{margin-top:10px}.course-card{background:var(--bg-card);border:1px solid var(--line);border-radius:var(--radius);padding:14px;margin-bottom:10px;cursor:pointer;display:flex;flex-direction:column;gap:6px}.course-card:active{background:#f2efe6}.course-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.course-card-name{font-size:14.5px;font-weight:700;line-height:1.35}.course-card-dest{font-size:12px;color:var(--accent-forest);font-weight:600;margin-bottom:2px}.course-card-meta{display:flex;gap:10px;font-size:12px;color:var(--text-muted);flex-wrap:wrap}.course-card-meta span{display:inline-flex;align-items:center;gap:3px}.destination-card{background:var(--bg-card);border:1px solid var(--line);border-radius:var(--radius);padding:16px;margin-bottom:10px;cursor:pointer}.destination-card:active{background:#f2efe6}.destination-card-name{font-size:15.5px;font-weight:700}.destination-card-loc{font-size:12px;color:var(--text-faint);margin-top:2px}.destination-card-foot{display:flex;justify-content:space-between;align-items:center;margin-top:10px}.chip-row{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;margin-bottom:14px;-webkit-overflow-scrolling:touch}.chip-row::-webkit-scrollbar{display:none}.chip{flex-shrink:0;padding:8px 14px;border-radius:999px;font-size:12.5px;font-weight:600;border:1px solid var(--line-strong);background:#fff;color:var(--text-muted);cursor:pointer;white-space:nowrap}.chip.active{background:var(--accent-forest);color:#fff;border-color:var(--accent-forest)}.badge{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;padding:2px 8px;border-radius:20px;font-family:IBM Plex Mono,monospace}.badge.forest{background:var(--accent-forest-soft);color:var(--accent-forest)}.badge.trail{background:#f5e3d5;color:var(--accent-trail)}.badge.muted{background:#eeede4;color:var(--text-faint)}.empty-state{border:1px dashed var(--line-strong);border-radius:var(--radius);padding:26px 18px;text-align:center;color:var(--text-faint);font-size:13px}.loading-state{text-align:center;padding:40px 0;color:var(--text-faint);font-size:13px}.error-state{color:var(--danger);font-size:13px;text-align:center;padding:20px 0}.search-input-wrap{position:relative;margin-bottom:14px}.search-input-wrap input{padding-left:34px}.search-input-wrap .icon{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--text-faint);font-size:14px}.course-hero{margin-bottom:16px}.course-hero-dest{font-size:12.5px;color:var(--accent-forest);font-weight:700;margin-bottom:4px}.course-hero-title{font-size:19px;font-weight:800;line-height:1.35;margin-bottom:10px}.stat-row{display:flex;gap:18px;margin-top:10px;flex-wrap:wrap}.stat{min-width:60px}.stat .v{font-family:IBM Plex Mono,monospace;font-size:16px;font-weight:700;color:var(--text-dark)}.stat .k{font-size:10.5px;color:var(--text-faint);margin-top:2px}.waypoint-list{margin-top:4px}.waypoint-row{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line)}.waypoint-row:last-child{border-bottom:none}.wp-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}.waypoint-row .wp-name{font-size:13.5px;font-weight:600;flex:1}.waypoint-row .wp-type{font-size:11px;color:var(--text-faint)}.waypoint-row .wp-ele{font-size:11.5px;color:var(--text-muted);font-family:IBM Plex Mono,monospace}.open-gpx-bar{margin:8px 0 22px}.toast{position:fixed;bottom:88px;left:50%;transform:translate(-50%);background:var(--text-dark);color:#fff;padding:11px 18px;border-radius:var(--radius-sm);font-size:13px;box-shadow:0 8px 24px #0000002e;opacity:0;transition:opacity .25s;pointer-events:none;z-index:50;max-width:90%;text-align:center}.toast.show{opacity:1}@media (min-width: 481px){.app-frame{box-shadow:0 0 0 1px var(--line),0 20px 60px #0000001f;margin:16px auto;min-height:calc(100vh - 32px);border-radius:20px;overflow:hidden}}
