/* tools.css — cert 셀프 도구 4종 공용 (다크 기본, html.light-mode 는 cert 토글이 붙인다)  [FTR-D 2026-10-28] */
:root{--bg:#212124;--panel:#2f3136;--panel2:#26282c;--line:#444;--text:#fff;--mute:#9ca3af;--link:#74b9ff;--ok:#2ecc71;--warn:#f39c12;--bad:#e74c3c;--accent:#2ecc71;--input:#1b1c1f;}
html.light-mode{--bg:#f4f5f7;--panel:#fff;--panel2:#f0f2f5;--line:#d1d5db;--text:#111827;--mute:#4b5563;--link:#1d4ed8;--ok:#15803d;--warn:#b45309;--bad:#b91c1c;--accent:#15803d;--input:#fff;}
*{box-sizing:border-box}
body.tl-body{margin:0;background:var(--bg);color:var(--text);font-family:'Noto Sans KR','Malgun Gothic','Apple SD Gothic Neo',sans-serif;line-height:1.65;-webkit-text-size-adjust:100%}
html.light-mode body.tl-body{background:var(--bg);color:var(--text)}
.tl-wrap{max-width:980px;margin:0 auto;padding:16px 16px 40px}
.tl-nav{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 18px;font-size:14px}
.tl-nav a{padding:7px 12px;border:1px solid var(--line);border-radius:20px;color:var(--text);text-decoration:none;background:var(--panel)}
.tl-nav a.on{border-color:var(--accent);color:var(--accent);font-weight:700}
.tl-nav a.tl-lang{margin-left:auto;color:var(--mute)}
.tl-h1{font-size:26px;line-height:1.3;margin:6px 0 8px;letter-spacing:-.5px;word-break:keep-all}
.tl-lead{color:var(--mute);margin:0 0 16px;word-break:keep-all}
.tl-h2{font-size:19px;margin:26px 0 10px;border-left:4px solid var(--accent);padding-left:10px;word-break:keep-all}
.tl-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;margin:12px 0}
.tl-note{font-size:13px;color:var(--mute);background:var(--panel2);border:1px solid var(--line);border-left:4px solid var(--warn);border-radius:8px;padding:10px 12px;margin:12px 0;word-break:keep-all}
.tl-note.ok{border-left-color:var(--ok)}
.tl-note.bad{border-left-color:var(--bad);color:var(--text)}
.tl-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}
.tl-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
label.tl-l{display:block;font-size:13px;color:var(--mute);margin:8px 0 3px}
.tl-in,.tl-sel,.tl-ta{width:100%;max-width:100%;background:var(--input);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:9px 10px;font:inherit;font-size:15px}
.tl-in:focus,.tl-sel:focus,.tl-ta:focus{outline:2px solid var(--accent);outline-offset:1px}
.tl-ta{min-height:70px;resize:vertical}
.tl-btn{display:inline-block;border:1px solid var(--line);background:var(--panel2);color:var(--text);border-radius:8px;padding:10px 16px;font:inherit;font-size:15px;font-weight:700;cursor:pointer;text-decoration:none;text-align:center}
.tl-btn:hover{border-color:var(--accent)}
.tl-btn.pri{background:var(--accent);border-color:var(--accent);color:#fff}
html.light-mode .tl-btn.pri{color:#fff}
.tl-btn.bad{border-color:var(--bad);color:var(--bad)}
.tl-btn.sm{padding:6px 10px;font-size:13px}
.tl-btn[disabled]{opacity:.5;cursor:not-allowed}
.tl-tabs{display:flex;gap:6px;margin:10px 0}
.tl-tabs button{flex:1;padding:11px 8px;border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:10px;font:inherit;font-weight:700;cursor:pointer}
.tl-tabs button.on{border-color:var(--accent);color:var(--accent)}
.tl-msg{margin:8px 0;font-size:14px;min-height:20px;word-break:keep-all}
.tl-msg.err{color:var(--bad)}.tl-msg.good{color:var(--ok)}
.tl-small{font-size:12.5px;color:var(--mute)}
.tl-mono{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px;word-break:break-all}
.tl-table{width:100%;border-collapse:collapse;font-size:14px}
.tl-table th,.tl-table td{border-bottom:1px solid var(--line);padding:7px 6px;text-align:left;vertical-align:top}
.tl-scroll{overflow-x:auto;max-width:100%}
.tl-drop{border:2px dashed var(--line);border-radius:12px;padding:26px 14px;text-align:center;color:var(--mute);cursor:pointer;background:var(--panel2)}
.tl-drop.on{border-color:var(--accent);color:var(--accent)}
.tl-checker{background-image:linear-gradient(45deg,#8883 25%,transparent 25%),linear-gradient(-45deg,#8883 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#8883 75%),linear-gradient(-45deg,transparent 75%,#8883 75%);background-size:20px 20px;background-position:0 0,0 10px,10px -10px,-10px 0}
.tl-article{max-width:760px}
.tl-article p{margin:0 0 14px;word-break:keep-all}
.tl-article h2{font-size:19px;margin:26px 0 8px}
.tl-article li{margin-bottom:6px;word-break:keep-all}
.tl-crumb{font-size:13px;color:var(--mute);margin:0 0 6px}
.tl-crumb a{color:var(--link)}
a.tl-a{color:var(--link)}
.tl-tool-links{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0}
/* 전자서명 */
.es-badge{display:inline-block;font-size:12px;padding:2px 8px;border-radius:10px;border:1px solid var(--line)}
.es-badge.waiting{color:var(--warn);border-color:var(--warn)}.es-badge.signed{color:var(--ok);border-color:var(--ok)}.es-badge.expired,.es-badge.deleted{color:var(--mute)}
.es-pdfbox{position:relative;border:1px solid var(--line);background:#777;max-width:100%;overflow:auto;border-radius:8px;text-align:center}
.es-pdfbox canvas{max-width:100%;height:auto;display:block;margin:0 auto;cursor:crosshair}
.es-sigmark{position:absolute;border:2px dashed #e11;pointer-events:none;box-sizing:border-box}
.sigpad{width:100%;height:auto;aspect-ratio:1000/320;background:#fff;border:1px solid var(--line);border-radius:10px;touch-action:none;display:block;cursor:crosshair}
/* 견적서 문서(종이는 항상 흰 바탕) */
.qt-paper{background:#fff;color:#111;width:100%;max-width:794px;margin:12px auto;padding:34px 38px;border:1px solid #ccc;font-family:'Malgun Gothic','Noto Sans KR',sans-serif;font-size:13px;line-height:1.5;overflow-x:auto}
.qt-paper h2{text-align:center;font-size:28px;letter-spacing:12px;margin:0 0 18px;border:0;padding:0;color:#111}
.qt-paper table{width:100%;border-collapse:collapse}
.qt-paper th,.qt-paper td{border:1px solid #555;padding:5px 6px;color:#111}
.qt-paper th{background:#eef0f3;font-weight:700;text-align:center}
.qt-paper td.r{text-align:right;font-variant-numeric:tabular-nums}
.qt-paper td.c{text-align:center}
.qt-meta{display:flex;gap:14px;justify-content:space-between;margin-bottom:12px}
.qt-meta>div{flex:1;min-width:0}
.qt-paper .qt-stampbox{position:relative}
.qt-paper img.qt-stamp{position:absolute;right:2px;top:-6px;width:64px;height:64px;object-fit:contain;mix-blend-mode:multiply}
.qt-sum td{font-weight:700}
.qt-total{font-size:16px;background:#eef0f3}
@media (max-width:560px){.tl-h1{font-size:22px}.qt-paper{padding:14px 10px;font-size:11.5px}.qt-paper h2{font-size:22px;letter-spacing:6px}.tl-btn{padding:10px 12px}.tl-wrap{padding:12px 16px 40px}}
@media print{
  @page{size:A4;margin:12mm}
  html,body{background:#fff!important}
  body>*:not(main.tl-wrap){display:none!important}
  main.tl-wrap>*:not(#qtPrintArea){display:none!important}
  main.tl-wrap{max-width:none;padding:0}
  #qtPrintArea{display:block!important;margin:0;border:0;padding:0;max-width:none;overflow:visible}
  .qt-paper{border:0;margin:0;padding:0;max-width:none;overflow:visible}
}
