/* Math Tools v3 */
.mt-wrap *{box-sizing:border-box}
.mt-wrap{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:13px;color:#1a1a1a;background:#f0f1f4;border:1px solid #d0d0d8;border-radius:8px;overflow:hidden}
.mt-admin{margin-top:12px}

/* 툴바 */
.mt-toolbar{display:flex;align-items:center;gap:8px;background:#1e2433;color:#e8eaf0;padding:7px 12px;flex-wrap:wrap}
.mt-toolbar label{color:#9ba3b8;font-size:11px}
.mt-toolbar select,.mt-toolbar input[type=number]{font-size:12px;padding:2px 5px;border-radius:3px;border:1px solid #3a4060;background:#2a3048;color:#e8eaf0;height:26px}
.mt-toolbar-mid{display:flex;align-items:center;gap:5px;flex:1}
.mt-logo{font-size:13px;font-weight:600;white-space:nowrap;margin-right:4px}

/* 버튼 */
.mt-btn{padding:4px 10px;border-radius:4px;border:1px solid #ccc;background:#fff;cursor:pointer;font-size:12px;color:#333}
.mt-btn:hover{background:#f0f0f0}
.mt-btn-pri{background:#2563eb;border-color:#1d4ed8;color:#fff}
.mt-btn-pri:hover{background:#1d4ed8}
.mt-full-btn{width:100%;text-align:center}
.mt-icon-btn{width:24px;height:24px;border-radius:4px;border:1px solid #ddd;background:#fff;cursor:pointer;font-size:13px;display:inline-flex;align-items:center;justify-content:center;padding:0;flex-shrink:0}
.mt-icon-btn:hover{background:#f0f0f0}
/* 함수 추가 버튼 */
.mt-add-func-btn{padding:4px 10px;border-radius:4px;border:1.5px solid #2563eb;background:#eff6ff;color:#2563eb;cursor:pointer;font-size:12px;font-weight:600;white-space:nowrap;transition:background .12s}
.mt-add-func-btn:hover{background:#dbeafe}
/* 큰 버튼 (모달 등) */
.mt-btn-lg{padding:8px 18px;font-size:14px;font-weight:500}

/* 본문 레이아웃 */
.mt-body{display:flex;align-items:flex-start;min-height:500px}
.mt-panel{flex:1;min-width:200px;max-width:420px;flex-shrink:0;background:#fff;border-right:1px solid #e2e2ea;overflow-y:auto;max-height:720px}
.mt-canvas-col{flex:2;padding:12px;display:flex;flex-direction:column;gap:10px;min-width:0}

/* 패널 섹션 */
.mt-sec{border-bottom:1px solid #f0f0f5;padding:8px 10px}
.mt-sec:last-child{border-bottom:none}
.mt-sec-head{display:flex;align-items:center;justify-content:space-between;font-weight:600;font-size:11px;color:#555;margin-bottom:6px;text-transform:uppercase;letter-spacing:.4px}

/* 함수 아이템 */
.mt-func-item{background:#fafafe;border:1px solid #e6e6f0;border-radius:5px;padding:6px 7px;margin-bottom:5px;border-left:3px solid #2563eb}
.mt-func-item.mt-err{border-left-color:#ef4444!important;background:#fff8f8}
.mt-func-row{display:flex;align-items:center;gap:4px;margin-bottom:3px;position:relative}
.mt-func-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;border:1.5px solid rgba(0,0,0,.12)}
/* 색상 버튼 & 팝업 */
.mt-color-btn{width:16px;height:16px;border-radius:50%;border:2px solid rgba(0,0,0,.25);cursor:pointer;flex-shrink:0;padding:0;position:relative;transition:transform .12s}
.mt-color-btn:hover{transform:scale(1.25)}
.mt-color-popup{position:absolute;z-index:50;top:22px;left:0;background:#fff;border:1px solid #ddd;border-radius:6px;padding:6px;box-shadow:0 4px 16px rgba(0,0,0,.15);display:flex;flex-wrap:wrap;gap:4px;width:162px}
.mt-color-swatch{width:22px;height:22px;border-radius:4px;border:2px solid transparent;cursor:pointer;padding:0;transition:transform .1s}
.mt-color-swatch:hover{transform:scale(1.15);border-color:rgba(0,0,0,.3)}
.mt-color-swatch.active{border-color:#fff;outline:2px solid #333}
.mt-color-custom{width:100%;height:28px;border:1px solid #ddd;border-radius:4px;cursor:pointer;padding:1px}
.mt-func-y{font-size:11px;color:#888;font-style:italic;white-space:nowrap}
.mt-func-input{flex:1;border:1px solid #ddd;border-radius:3px;padding:2px 4px;font-size:12px;font-family:"Courier New",monospace;min-width:0}
.mt-func-input:focus{outline:2px solid #2563eb;outline-offset:-1px;border-color:transparent}
.mt-func-del{width:16px;height:16px;border-radius:50%;border:1px solid #ddd;background:#fff;font-size:11px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0;color:#bbb;flex-shrink:0}
.mt-func-del:hover{background:#fee2e2;color:#ef4444}
.mt-func-meta{display:flex;gap:8px;margin-bottom:3px}
.mt-func-meta label{display:flex;align-items:center;gap:3px;font-size:11px;color:#666;cursor:pointer}

/* LaTeX 미리보기 */
.mt-func-latex-preview{font-size:12px;padding:3px 6px;background:#f5f5ff;border-radius:3px;min-height:22px;color:#333;margin-bottom:3px;overflow:hidden}
.mt-func-latex-preview.mt-empty{color:#bbb;font-size:11px;font-style:italic}

/* 레이블 선택 */
.mt-label-toggle{display:flex;gap:0;margin-bottom:3px;border:1px solid #ddd;border-radius:4px;overflow:hidden}
.mt-label-toggle button{flex:1;padding:2px 0;font-size:10px;border:none;background:#f5f5f5;cursor:pointer;color:#555}
.mt-label-toggle button.active{background:#1d4ed8;color:#fff;font-weight:600}
.mt-label-toggle button:hover:not(.active){background:#dbeafe;color:#1e3a5f}

/* 사용자 지정 수식 입력 */
.mt-custom-latex-row{display:flex;align-items:center;gap:4px;margin-bottom:3px}
.mt-custom-latex-inp{flex:1;border:1px solid #ddd;border-radius:3px;padding:2px 4px;font-size:11px;font-family:"Courier New",monospace;min-width:0}

/* 슬라이더 패널 */
.mt-slider-panel{background:#f8f9ff;border:1px solid #e0e4ff;border-radius:4px;padding:5px 7px;margin-top:3px}
.mt-slider-toggle{font-size:10px;padding:2px 7px;border:1px solid #c0c8ff;border-radius:10px;background:#fff;cursor:pointer;color:#4455cc;margin-bottom:4px;display:inline-block}
.mt-slider-toggle:hover{background:#eef0ff}
.mt-slider-rows{display:none}
.mt-slider-rows.open{display:block}
.mt-slider-row{display:grid;grid-template-columns:18px 1fr 38px;align-items:center;gap:4px;margin-bottom:4px}
.mt-slider-name{font-size:11px;font-weight:600;color:#444;font-style:italic}
.mt-slider-val{font-size:11px;text-align:right;color:#2563eb;font-family:"Courier New",monospace;font-weight:600}
input.mt-slider-range{width:100%;height:3px;accent-color:#2563eb}
.mt-slider-cfg{display:flex;align-items:center;gap:3px;margin-top:2px;flex-wrap:wrap}
.mt-slider-cfg label{font-size:10px;color:#888}
.mt-slider-cfg input[type=number]{width:46px;font-size:10px;padding:1px 3px;border:1px solid #ddd;border-radius:2px}

/* 오류 메시지 */
.mt-err-msg{font-size:10px;color:#ef4444;margin-top:2px}

/* ── 범위 제한 패널 ── */
.mt-range-section{margin-top:4px}
.mt-range-panel{margin-bottom:3px}
.mt-range-header{display:flex;align-items:center;justify-content:space-between;gap:4px;margin-bottom:2px}
.mt-range-toggle-lbl{display:flex;align-items:center;gap:5px;font-size:11px;color:#555;cursor:pointer;white-space:nowrap}
.mt-range-toggle-lbl input[type=checkbox]{width:12px;height:12px;cursor:pointer;accent-color:#2563eb}
.mt-range-vals{font-size:10px;color:#2563eb;font-family:"Courier New",monospace;white-space:nowrap}
/* 듀얼 슬라이더 트랙 */
.mt-dual-slider-wrap{padding:4px 2px 2px}
.mt-dual-track{position:relative;height:18px;display:flex;align-items:center}
.mt-dual-track::before{content:'';position:absolute;left:0;right:0;height:4px;background:#e0e0e0;border-radius:2px;top:50%;transform:translateY(-50%)}
.mt-dual-fill{position:absolute;height:4px;background:#2563eb;border-radius:2px;top:50%;transform:translateY(-50%);pointer-events:none}
/* 두 range input을 겹쳐서 듀얼 슬라이더 구현 */
.mt-dual-track input[type=range]{position:absolute;left:0;right:0;width:100%;height:4px;appearance:none;-webkit-appearance:none;background:transparent;pointer-events:none;margin:0}
.mt-dual-track input[type=range]::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:14px;height:14px;border-radius:50%;background:#2563eb;border:2px solid #fff;box-shadow:0 1px 3px rgba(0,0,0,.2);cursor:pointer;pointer-events:auto}
.mt-dual-track input[type=range]::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:#2563eb;border:2px solid #fff;box-shadow:0 1px 3px rgba(0,0,0,.2);cursor:pointer;pointer-events:auto;border:none}
.mt-dual-track input[type=range]::-webkit-slider-runnable-track{background:transparent;height:4px}
.mt-dual-track input[type=range]:focus{outline:none}
/* hi 핸들이 lo 핸들 위에 오도록 */
.mt-range-hi{z-index:2}
.mt-range-lo{z-index:1}

/* 카테고리 탭 */
.mt-cat-tabs{display:flex;flex-wrap:wrap;gap:3px;margin-bottom:6px}
.mt-cat-tab{font-size:10px;padding:2px 6px;border-radius:8px;border:1px solid #dde;background:#f5f5fb;cursor:pointer;color:#555}
.mt-cat-tab.active{background:#1d4ed8;border-color:#1e40af;color:#fff;font-weight:600}
.mt-cat-tab:hover:not(.active){background:#dbeafe;border-color:#93c5fd;color:#1e3a5f}

/* 프리셋 버튼 */
.mt-preset-list{display:flex;flex-direction:column;gap:3px}
.mt-preset-btn{text-align:left;padding:5px 8px;border:1px solid #e2e2ea;border-radius:4px;background:#fafafe !important;cursor:pointer;font-size:12px;color:#222;line-height:1.4;min-height:32px;transition:background .12s;display:flex;flex-direction:column;gap:1px;width:100%;-webkit-tap-highlight-color:transparent;outline:none;-webkit-appearance:none;appearance:none}
.mt-preset-btn:hover{background:#dbeafe !important;border-color:#93c5fd}
.mt-preset-btn:active{background:#e0eeff !important;border-color:#93c5fd}
.mt-preset-btn:active .mt-preset-name{color:#1e3a5f}
.mt-preset-btn:active .mt-preset-tex{color:#555}
.mt-preset-btn:focus{background:#eef4ff !important;border-color:#93c5fd}
.mt-preset-btn:focus .mt-preset-name{color:#1e3a5f}
.mt-preset-btn:focus .mt-preset-tex{color:#555}
.mt-preset-name{font-size:12px;font-weight:500;color:#1e3a5f;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mt-preset-tex{font-size:10px;color:#666;line-height:1.3;overflow:hidden}
.mt-preset-tex mjx-container{display:inline!important;vertical-align:middle}
.mt-preset-tex svg{max-height:1.1em;vertical-align:middle}

/* 범위 그리드 */
.mt-range-grid{display:grid;grid-template-columns:auto 1fr auto 1fr;align-items:center;gap:3px 4px}
.mt-range-grid label{font-size:12px;color:#666;font-style:italic}
.mt-range-grid span{font-size:11px;color:#aaa;text-align:center}
.mt-range-grid input{border:1px solid #ddd;border-radius:3px;padding:2px 4px;font-size:12px;width:100%}

/* 옵션 */
.mt-opts{display:flex;flex-direction:column;gap:4px}
.mt-opts label{display:flex;align-items:center;gap:5px;font-size:11px;color:#444;cursor:pointer}
.mt-opts input[type=checkbox]{width:12px;height:12px}
/* 가로 배치 모드 */
.mt-opts-wrap{flex-direction:row;flex-wrap:wrap;gap:2px 8px}
/* 축별 눈금 설정 */
.mt-axis-tick-grid{display:flex;flex-direction:column;gap:5px}
.mt-axis-tick-grid label{display:flex;align-items:center;gap:5px;font-size:11px;color:#444;cursor:pointer}
.mt-axis-tick-grid input[type=checkbox]{width:12px;height:12px}
.mt-tick-row{display:flex;align-items:center;gap:4px;flex-wrap:wrap}
.mt-tick-row label{flex-shrink:0}
.mt-tick-step-inp{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:#666;margin-left:4px}
.mt-tick-step-pi{color:#2563eb}
.mt-step-inp{width:64px;padding:4px 6px;border:1px solid #ddd;border-radius:3px;font-size:13px;text-align:right;height:28px}
.mt-step-inp:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 1px #2563eb}
.mt-pi-inp{width:56px;text-align:center;letter-spacing:1px}
.mt-pi-hint{font-size:10px;color:#aaa;display:block;margin-top:1px;white-space:nowrap}

/* 스타일 그리드 */
.mt-style-grid{display:grid;grid-template-columns:auto 1fr;gap:4px 6px;align-items:center}
.mt-style-grid label{font-size:11px;color:#555;white-space:nowrap}
.mt-style-grid select{font-size:11px;padding:2px 4px;border-radius:3px;border:1px solid #ddd}

/* 캔버스 래퍼 - 모바일 대응 */
.mt-canvas-wrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.mt-canvas-outer{position:relative;background:#fff;border:1px solid #ddd;border-radius:6px;overflow:visible;display:inline-block;line-height:0;box-shadow:0 1px 5px rgba(0,0,0,.07);max-width:100%}
.mt-graph-canvas{display:block;cursor:crosshair;max-width:100%;height:auto}

/* MathJax 오버레이 */
.mt-latex-overlay{position:absolute;inset:0;pointer-events:none;overflow:visible}
.mt-latex-label{position:absolute;font-weight:500;white-space:nowrap;pointer-events:auto;cursor:grab;
  user-select:none;-webkit-user-select:none;padding:2px 6px;border-radius:3px;
  background:rgba(255,255,255,0.88);box-shadow:0 1px 4px rgba(0,0,0,.13);
  border:1px solid rgba(0,0,0,.06);transition:box-shadow .12s,opacity .12s}
.mt-latex-label:hover{box-shadow:0 2px 8px rgba(0,0,0,.18)}
.mt-latex-label:active{cursor:grabbing}
.mt-latex-label mjx-container svg{fill:currentColor}
/* 축 기호 (x, y, O, π눈금) */
.mt-axis-sym{position:absolute;pointer-events:none;font-weight:500;color:#111;line-height:1}
.mt-axis-sym mjx-container{display:inline!important;vertical-align:middle}
.mt-axis-sym svg{fill:#111!important;vertical-align:middle}
.mt-axis-num{color:#555;text-align:center}
.mt-axis-num svg{fill:#555!important}
.mt-axis-num-y{text-align:right}
/* 교점 좌표 레이블 */
.mt-coord-label{white-space:nowrap;font-weight:400}
.mt-coord-label svg{fill:currentColor!important}

/* 교점 박스 */
.mt-intersect-box{background:#fff;border:1px solid #e2e2ea;border-radius:5px;padding:8px 10px}
.mt-intersect-box strong{font-size:11px;color:#555;display:block;margin-bottom:4px}
.mt-intersect-list{display:flex;flex-wrap:wrap;gap:3px}
.mt-ipoint{font-size:11px;padding:2px 7px;border-radius:8px;background:#eff6ff;border:1px solid #bfdbfe;color:#1d4ed8;font-family:"Courier New",monospace}
.mt-ipoint-axis{background:#f0fdf4;border-color:#a7f3d0;color:#065f46}
.mt-muted{font-size:11px;color:#bbb}

/* 모달 */
.mt-modal{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:99999;display:flex;align-items:center;justify-content:center}
.mt-modal-box{background:#fff;border-radius:8px;padding:18px;max-width:92vw;max-height:90vh;overflow:auto;box-shadow:0 6px 30px rgba(0,0,0,.2)}
.mt-modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.mt-modal-head strong{font-size:14px}
.mt-modal-foot{display:flex;align-items:center;gap:7px;margin-top:10px;flex-wrap:wrap}
/* PC: 버튼 행 표시, 안내문구 숨김 */
.mt-modal-foot-mobile{display:none}
.mt-modal-foot-pc{display:flex}
/* 모바일 안내문구 스타일 */
.mt-save-hint{font-size:13px;color:#1d4ed8;font-weight:600;padding:6px 0;display:block;text-align:center;width:100%}
.mt-modal-preview img{max-width:100%;border:1px solid #e0e0e0;border-radius:3px;display:block}
@media(max-width:680px){
  .mt-modal-box{padding:12px;width:92vw}
  .mt-modal-preview img{width:100%;border-radius:6px;cursor:pointer}
  .mt-copy-msg{display:block;width:100%;margin-top:4px;font-size:12px}
}

/* ── 모바일 컨트롤 버튼 행 ── */
.mt-mobile-ctrl{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  padding:6px 4px;
  background:#f8f8fb;
  border:1px solid #e2e2ea;
  border-radius:6px;
  margin-top:2px;
}
.mt-mob-zoom-group{
  display:flex;
  gap:0;
  border-radius:5px;
  overflow:hidden;
  border:1px solid #d0d0dd;
}
.mt-mob-btn{
  min-width:44px;
  height:40px;
  border:1px solid #d0d0dd;
  border-radius:5px;
  background:#fff;
  color:#333;
  font-size:18px;
  line-height:1;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  transition:background .12s;
  -webkit-tap-highlight-color:transparent;
  touch-action:manipulation;
}
.mt-mob-btn:active{background:#e8eaf6}
.mt-mob-zoom-group .mt-mob-btn{
  border:none;
  border-radius:0;
  min-width:48px;
}
.mt-mob-zoom-group .mt-mob-btn+.mt-mob-btn{
  border-left:1px solid #d0d0dd;
}
.mt-mob-reset{font-size:16px}
.mt-mob-capture{font-size:17px}

/* 데스크톱에서는 숨김 (터치스크린 데스크톱은 표시) */
@media(hover:hover) and (pointer:fine){
  .mt-mobile-ctrl{display:none}
}

/* 모바일 반응형 */
@media(max-width:680px){
  .mt-body{flex-direction:column}
  .mt-panel{width:100%;max-height:none;border-right:none;border-bottom:1px solid #e2e2ea}
  .mt-canvas-col{padding:8px}
  .mt-toolbar-mid{order:3;width:100%}
  /* 모바일: 캔버스를 컨테이너 너비에 맞게 축소 */
  .mt-canvas-outer{display:block;width:100%;touch-action:none}
  .mt-graph-canvas{width:100%!important;height:auto!important}
  .mt-mobile-ctrl{display:flex} /* 모바일에서 강제 표시 */
  /* 모달: 버튼 숨기고 안내문구만 표시 */
  .mt-modal-foot-pc{display:none}
  .mt-modal-foot-mobile{display:flex;justify-content:center}
}
