/* 모의주식 앱 공통 스타일 — G마켓 산스, 토스증권 감성 */
@font-face{font-family:'GmarketSansBold';src:url('https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_2001@1.1/GmarketSansBold.woff') format('woff');font-weight:700;font-display:swap}
@font-face{font-family:'GmarketSansMedium';src:url('https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_2001@1.1/GmarketSansMedium.woff') format('woff');font-weight:500;font-display:swap}
@import url('https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/static/pretendard.min.css');

:root{
  --bg:#f2f4f6; --card:#fff; --ink:#191f28; --sub:#8b95a1; --line:#e5e8eb;
  --blue:#2563eb; --navy:#1e3a5f;
  --up:#f04452; --down:#3182f6; /* 한국: 상승 빨강, 하락 파랑 */
  --good:#f04452; --bad:#3182f6;
  --radius:16px; --shadow:0 2px 12px rgba(0,0,0,.06);
}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
body{font-family:'GmarketSansMedium','Pretendard',sans-serif;background:var(--bg);color:var(--ink);
  line-height:1.5;font-size:15px;padding-bottom:env(safe-area-inset-bottom)}
.wrap{max-width:480px;margin:0 auto;min-height:100vh;background:var(--bg);position:relative}
.bold{font-family:'GmarketSansBold','Pretendard',sans-serif;font-weight:700}
.up{color:var(--up)} .down{color:var(--down)} .mut{color:var(--sub)}

/* 상단 바 */
.topbar{position:sticky;top:0;z-index:10;background:#fff;border-bottom:1px solid var(--line);
  padding:14px 18px;display:flex;align-items:center;justify-content:space-between}
.topbar .title{font-family:'GmarketSansBold';font-size:17px}
.phase-pill{font-size:12px;padding:4px 10px;border-radius:20px;background:#eef2ff;color:var(--blue);font-family:'GmarketSansBold'}
.timer-chip{font-size:15px;padding:5px 12px;border-radius:20px;background:#1e3a5f;color:#fff;font-family:'GmarketSansBold';letter-spacing:1px}

/* 자산 헤더 */
.asset-hero{background:linear-gradient(135deg,#1e3a5f,#2563eb);color:#fff;padding:22px 20px;margin:0}
.asset-hero .label{font-size:13px;opacity:.85}
.asset-hero .amount{font-family:'GmarketSansBold';font-size:30px;margin-top:4px}
.asset-hero .meta{display:flex;gap:14px;margin-top:10px;font-size:13px;opacity:.92}

/* 카드/리스트 */
.section{padding:14px 16px}
.section-title{font-family:'GmarketSansBold';font-size:15px;margin:6px 2px 10px;display:flex;justify-content:space-between;align-items:center}
.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
.row{display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid var(--line);cursor:pointer}
.row:last-child{border-bottom:none}
.row:active{background:#f7f8fa}
.emoji{width:42px;height:42px;border-radius:12px;background:#f2f4f6;display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0}
.row .name{font-family:'GmarketSansBold';font-size:15px}
.row .sub{font-size:12px;color:var(--sub)}
.row .right{margin-left:auto;text-align:right}
.row .price{font-family:'GmarketSansBold';font-size:15px}
.row .chg{font-size:12px}

/* 스파크라인 */
.spark{width:54px;height:24px;flex-shrink:0}

/* 버튼 */
.btn{display:block;width:100%;padding:15px;border:none;border-radius:14px;font-family:'GmarketSansBold';
  font-size:16px;cursor:pointer;background:var(--blue);color:#fff;transition:.1s}
.btn:active{transform:scale(.98)} .btn:disabled{opacity:.4}
.btn.buy{background:var(--up)} .btn.sell{background:var(--down)}
.btn.ghost{background:#eef2ff;color:var(--blue)}
.btn-row{display:flex;gap:10px}

/* 입력 */
.field{margin-bottom:14px}
.field label{display:block;font-size:13px;color:var(--sub);margin-bottom:6px}
input,select,textarea{width:100%;padding:14px;border:1.5px solid var(--line);border-radius:12px;font-size:16px;
  font-family:'GmarketSansMedium','Pretendard',sans-serif;background:#fff;color:var(--ink);resize:vertical}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--blue)}

/* 사업계획서 폼 */
.plan-step{font-family:'GmarketSansBold';font-size:14px;color:var(--navy);margin:18px 0 10px;padding-bottom:6px;border-bottom:2px solid #eef2ff}
.plan-step:first-child{margin-top:0}
.org-grid{display:flex;flex-direction:column;gap:8px;margin-bottom:4px}
.org-row{display:flex;align-items:center;gap:10px}
.org-role{flex-shrink:0;width:84px;font-size:13px;font-family:'GmarketSansBold';color:var(--sub)}
.org-row input{flex:1;padding:10px 12px;font-size:14px}
.plan-line{font-size:13.5px;line-height:1.55;margin:7px 0;color:#374151}
.plan-line b{font-family:'GmarketSansBold';color:var(--navy);margin-right:4px}
.ir-box{background:#fff8e1;border-radius:10px;padding:10px 12px;font-size:13px;color:#6b5400;margin-top:10px;line-height:1.5}
.ir-box b{font-family:'GmarketSansBold'}
.rank-chip{background:rgba(255,255,255,.22);color:#fff;font-family:'GmarketSansBold';font-size:13px;padding:4px 12px;border-radius:20px}

/* 조직도 차트 (계층) */
.orgchart{display:flex;flex-direction:column;align-items:center;padding:6px 0 2px}
.oc-box{border:1.5px solid var(--line);border-radius:10px;padding:7px 10px;text-align:center;background:#fff;min-width:74px}
.oc-box.ceo{border-color:var(--blue);background:#eef2ff}
.oc-role{font-family:'GmarketSansBold';font-size:12px;color:var(--navy);white-space:nowrap}
.oc-box.ceo .oc-role{color:var(--blue)}
.oc-name{font-size:12px;color:var(--sub);margin-top:2px}
.oc-stem{width:2px;height:16px;background:#c4cdd6}
.oc-row{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;position:relative;padding-top:14px}
.oc-row::before{content:"";position:absolute;top:0;left:12%;right:12%;height:2px;background:#c4cdd6}
.oc-cell{position:relative;padding-top:0}
.oc-cell::before{content:"";position:absolute;top:-14px;left:50%;width:2px;height:14px;background:#c4cdd6}

/* 모달(주문) */
.modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.45);display:none;align-items:flex-end;justify-content:center;z-index:50}
.modal-bg.on{display:flex}
.modal{background:#fff;width:100%;max-width:480px;border-radius:22px 22px 0 0;padding:22px 20px 28px;animation:up .22s}
@keyframes up{from{transform:translateY(100%)}to{transform:translateY(0)}}
.modal .mhead{display:flex;align-items:center;gap:12px;margin-bottom:18px}
.modal .mprice{font-family:'GmarketSansBold';font-size:26px}
.qty-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:12px 0}
.qty-grid button{padding:12px 0;border:1.5px solid var(--line);border-radius:10px;background:#fff;font-family:'GmarketSansBold';cursor:pointer}
.qty-grid button:active{background:#f2f4f6}

/* 로그인 화면 */
.login{padding:40px 24px;display:flex;flex-direction:column;justify-content:center;min-height:100vh}
.login .logo{font-family:'GmarketSansBold';font-size:32px;text-align:center;margin-bottom:6px}
.login .tag{text-align:center;color:var(--sub);margin-bottom:36px}

/* 결산/랭킹 */
.rank-item{display:flex;align-items:center;gap:12px;padding:13px 16px;border-bottom:1px solid var(--line)}
.rank-no{width:26px;height:26px;border-radius:50%;background:#f2f4f6;display:flex;align-items:center;justify-content:center;font-family:'GmarketSansBold';font-size:13px}
.rank-no.gold{background:#ffd233} .rank-no.silver{background:#d9dee3} .rank-no.bronze{background:#f0b27a}

/* 뉴스 티커 */
.news-card{padding:13px 16px;border-bottom:1px solid var(--line)}
.news-card .hl{font-family:'GmarketSansBold';font-size:14px}
.news-card .badge{font-size:11px;padding:2px 8px;border-radius:6px;color:#fff;margin-left:6px}
.badge.good{background:var(--good)} .badge.bad{background:var(--bad)}

.hint{font-size:11px;color:var(--sub);margin-top:4px}
.pitch{font-size:12px;color:#4b5563;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}
.pitch-box{background:#f7f8fa;border-radius:10px;padding:10px 12px;font-size:13px;color:#374151;margin-bottom:12px;line-height:1.4}
.pause-banner{background:#fff3cd;color:#856404;text-align:center;padding:11px 14px;font-size:13px;font-family:'GmarketSansBold';border-bottom:1px solid #ffe08a}
.seed-notice{background:#eef2ff;border-radius:14px;padding:14px 16px;text-align:center;font-size:13px;color:#3a4a6b;line-height:1.6;margin-bottom:28px}
.seed-notice b{color:var(--blue);font-family:'GmarketSansBold'}
.profit-card{padding:18px}
.pc-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;font-size:14px}
.pc-row.big{border-top:1.5px solid var(--line);margin-top:6px;padding-top:14px;font-family:'GmarketSansBold';font-size:18px}
.empty{text-align:center;color:var(--sub);padding:40px 20px;font-size:14px}
.toast{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);background:#191f28;color:#fff;
  padding:12px 20px;border-radius:30px;font-size:14px;z-index:100;opacity:0;transition:.2s;pointer-events:none}
.toast.on{opacity:1}

/* 푸터 */
.foot{text-align:center;font-size:11px;color:var(--sub);padding:24px 16px}

/* 튜토리얼 */
.tut-bg{position:fixed;inset:0;background:rgba(15,25,45,.6);display:flex;align-items:center;justify-content:center;z-index:200;padding:24px}
.tut-card{background:#fff;border-radius:24px;max-width:360px;width:100%;padding:30px 26px 22px;text-align:center;animation:up .25s}
.tut-img{width:172px;height:172px;object-fit:contain;border-radius:16px;background:#f7f8fa}
.tut-step{font-size:12px;color:var(--sub);margin:10px 0 6px;font-family:'GmarketSansBold'}
.tut-title{font-family:'GmarketSansBold';font-size:20px;color:var(--ink);margin-bottom:10px}
.tut-desc{font-size:15px;color:#4b5563;line-height:1.65}
.tut-desc b{font-family:'GmarketSansBold'}
.tut-dots{display:flex;gap:6px;justify-content:center;margin:20px 0 18px}
.tut-dots span{width:7px;height:7px;border-radius:50%;background:var(--line);transition:.2s}
.tut-dots span.on{background:var(--blue);width:20px;border-radius:4px}
.tut-btns{display:flex;gap:10px}
.tut-skip{margin-top:14px;font-size:13px;color:var(--sub);cursor:pointer;padding:4px}

/* 도움말 버튼 */
.help-fab{position:fixed;right:16px;bottom:84px;width:44px;height:44px;border-radius:50%;background:#fff;
  box-shadow:0 2px 10px rgba(0,0,0,.18);display:flex;align-items:center;justify-content:center;font-size:20px;cursor:pointer;z-index:90}

/* 순위 뱃지 */
.rank-badge{width:22px;text-align:center;font-family:'GmarketSansBold';font-size:13px;color:var(--sub);flex-shrink:0}

/* 가격 변동 flash (강화 — 더 길고 눈에 띄게) */
@keyframes fu{0%{background:rgba(240,68,82,.32);transform:scale(1.12)}60%{background:rgba(240,68,82,.18)}100%{background:transparent;transform:scale(1)}}
@keyframes fd{0%{background:rgba(49,130,246,.32);transform:scale(.9)}60%{background:rgba(49,130,246,.18)}100%{background:transparent;transform:scale(1)}}
.flash-up{animation:fu 1.3s ease-out;border-radius:8px;display:inline-block}
.flash-down{animation:fd 1.3s ease-out;border-radius:8px;display:inline-block}

/* 실시간 TOP3 리더보드 */
.leaderboard{display:flex;gap:8px}
.lb-item{flex:1;background:#fff;border-radius:14px;box-shadow:var(--shadow);padding:12px 8px;text-align:center}
.lb-item.me{background:#eef2ff;outline:2px solid var(--blue)}
.lb-medal{font-size:22px}
.lb-name{font-family:'GmarketSansBold';font-size:13px;margin:3px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lb-ret{font-size:12px;font-family:'GmarketSansBold'}

/* 상장 대기 예측 카드 */
.predict-card{background:linear-gradient(135deg,#eef2ff,#f7f8fa);border-radius:16px;padding:22px 18px;text-align:center;font-size:15px;line-height:1.7;box-shadow:var(--shadow)}
.predict-card b{font-family:'GmarketSansBold';color:var(--blue);font-size:17px}

/* 하단 탭바 */
.tabbar{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:480px;
  background:#fff;border-top:1px solid var(--line);display:flex;z-index:40;padding-bottom:env(safe-area-inset-bottom)}
.tabbar .tab{flex:1;border:none;background:none;padding:10px 0 12px;font-family:'GmarketSansBold';font-size:12px;color:var(--sub);cursor:pointer}
.tabbar .tab.on{color:var(--blue)}
.tabbar .tab .ti{font-size:20px;margin-bottom:2px;filter:grayscale(1);opacity:.5}
.tabbar .tab.on .ti{filter:none;opacity:1}

/* 종목 상세 */
.detail{padding:18px 18px 0}
.d-head{display:flex;align-items:center;gap:12px;margin-bottom:16px}
.d-name{font-family:'GmarketSansBold';font-size:20px}
.d-price{font-family:'GmarketSansBold';font-size:34px;display:inline-block;padding:2px 4px}
.d-chg{font-family:'GmarketSansBold';font-size:15px;margin-top:2px}
.d-chg .sub{font-family:'GmarketSansMedium';font-weight:400}
.d-chart{margin:18px -4px 6px}
.chart-empty{height:170px;display:flex;align-items:center;justify-content:center;color:var(--sub);font-size:13px;background:#f7f8fa;border-radius:12px}
.d-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:14px 0 4px}
.d-stats>div{background:#f7f8fa;border-radius:10px;padding:10px 6px;text-align:center}
.d-stats .sl{font-size:11px;color:var(--sub)}
.d-stats .sv{font-family:'GmarketSansBold';font-size:13px;margin-top:3px}
.d-section{padding:16px 0;border-top:1px solid var(--line);margin-top:12px}
.d-stitle{font-family:'GmarketSansBold';font-size:14px;margin-bottom:8px}

/* 하단 고정 매수/매도 바 */
.trade-bar{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:480px;
  background:#fff;border-top:1px solid var(--line);display:flex;gap:10px;padding:12px 16px calc(12px + env(safe-area-inset-bottom));z-index:45}
.trade-bar .btn{margin:0}
