:root{
  --bg:#f6f7f9; --card:#fff; --ink:#1f2937; --muted:#6b7280;
  --line:#e5e7eb; --brand:#111827; --accent:#10b981; --warn:#f59e0b; --error:#ef4444;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--bg);color:var(--ink);font-family:system-ui,-apple-system,Segoe UI,Roboto,Apple SD Gothic Neo,Pretendard,sans-serif}
.app-header,.app-footer{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--line);background:#fff}
.app-footer{border-top:1px solid var(--line);border-bottom:none;font-size:12px;color:var(--muted)}
.badge{font-size:12px;color:#065f46;background:#ecfdf5;border:1px solid #a7f3d0;padding:4px 8px;border-radius:999px}
.layout{display:grid;grid-template-columns:1fr 1fr;gap:18px;max-width:1200px;margin:20px auto;padding:0 16px}
@media (max-width:960px){.layout{grid-template-columns:1fr}}
/* ++ 추가 시작 : 헤더 우측 유저바 */
.header-right{display:flex;align-items:center;gap:10px}
.userbar{display:flex;gap:8px;align-items:center}
.userbar .who{font-size:14px;color:var(--ink)}
.userbar .pill{border:1px solid var(--line);padding:4px 10px;border-radius:999px;font-size:12px}
.userbar .pill.plus{background:#111827;color:#fff;border-color:#111827} /* 플랜 PLUS */
.userbar .pill.free{background:#fff;color:#374151}                     /* 플랜 FREE */
.userbar .pill.paid{background:#10b9811a;color:#065f46;border-color:#a7f3d0}
.userbar .pill.unpaid{background:#fde68a;border-color:#f59e0b;color:#7c2d12}
@media print {.userbar{display:none}}
/* ++ 추가 끝 */


.panel{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px}
h1,h2{margin:0 0 12px}
.field-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:10px}
.field-col{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}
label{display:flex;flex-direction:column;gap:6px;font-size:14px}
input[type="number"],input[type="file"],textarea{
  border:1px solid var(--line);border-radius:10px;padding:10px;font-size:14px;background:#fff;color:var(--ink)
}
textarea{resize:vertical}
.hint{font-size:12px;color:var(--muted)}
/* ++ 추가 시작 */
.btn-row{ position:relative; z-index:5; }
/* ++ 추가 끝 */
.btn-row{display:flex;gap:10px;margin:10px 0}
.btn-row.right{justify-content:flex-end}
/* ++ 추가 시작 : 헤더 우측 배치/여백 개선 */
.app-header{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid var(--line);}
.header-right{margin-left:auto;display:flex;align-items:center;}
.userbar{display:flex;align-items:center;gap:12px;}
.userbar .who{font-size:14px;}
.userbar .pill{display:inline-flex;align-items:center;line-height:1;border:1px solid var(--line);padding:6px 12px;border-radius:999px;font-size:12px}
/* 색상(이미 있으면 생략 가능) */
.userbar .pill.plus{background:#111827;color:#fff;border-color:#111827}
.userbar .pill.free{background:#fff;color:#374151}
.userbar .pill.paid{background:#10b9811a;color:#065f46;border-color:#a7f3d0}
.userbar .pill.unpaid{background:#fde68a;border-color:#f59e0b;color:#7c2d12}
/* ++ 추가 끝 */

.btn{border:1px solid var(--line);background:#fff;border-radius:10px;padding:10px 14px;cursor:pointer}
.btn:hover{background:#f9fafb}
.btn.primary{background:var(--brand);color:#fff;border-color:var(--brand)}
.btn.primary:hover{opacity:.9}
.btn.ghost{background:#fff}

/* 링크처럼 안 보이게 만드는 유틸 */
.link-clean,
.link-clean:link,
.link-clean:visited,
.link-clean:hover,
.link-clean:active,
.link-clean:focus {
  text-decoration: none;  /* 밑줄 제거 */
  color: inherit;         /* 방문/호버에도 색 고정 */
}

.card{border:1px solid var(--line);border-radius:12px;padding:12px;background:#fff;margin-top:10px}
.card.small{font-size:13px}
.card.warn{background:#fff7ed;border-color:#fed7aa;color:#9a3412}

.summary-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin:6px 0 12px}
.summary-item{border:1px solid var(--line);border-radius:10px;padding:10px;background:#fafafa}
.summary-item .label{font-size:12px;color:var(--muted)}
.summary-item .value{font-weight:700;font-size:18px}

.results{display:flex;flex-direction:column;gap:14px}
.stock-card{border:1px solid var(--line);border-radius:12px;padding:10px;background:#fff}
.stock-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;font-size:14px}
/*☆
.stock-bar{position:relative;width:100%;height:26px;background:#f3f4f6;border-radius:10px;overflow:hidden;border:1px solid var(--line)}
*/
/*★*/
.stock-bar{
  position:relative;
  display:flex;            /* 가로로 배치 */
  flex-direction:row;
  align-items:stretch;
  width:100%;height:30px;
  background:#f3f4f6;border-radius:10px;overflow:hidden;border:1px solid var(--line)
}
/*☆
.seg{height:100%;display:flex;align-items:center;justify-content:center;font-size:11px;white-space:nowrap}
*/
.seg{
  height:100%;
  display:flex;align-items:center;justify-content:center;
  font-size:14px;white-space:nowrap;
  flex:0 0 auto;          /* 픽셀 너비 그대로 표시(줄바꿈/수축 방지) */
}

.seg.cut{background:#111827;color:#fff;border-right:1px solid #fff}
.seg.kerf{background:#ffffff}
.seg.leftover{background:#dcfce7;color:#065f46}
.seg.margin{background:#e5e7eb;color:#374151}

/*★*/
.stock-bar{
  ...;
  width:100%;height:32px;
  ...
}


/* 막대는 한 줄 유지, 텍스트만 두 줄로 쌓기 */
.seg{ overflow:hidden; }               /* 넘치면 잘라 ellipsis 적용 가능 */

.seg.two-line{
  flex-direction:column;               /* 세로 쌓기 */
  align-items:center; justify-content:center;
  white-space:normal;                  /* 줄바꿈 허용(자식은 개별 제어) */
  padding:2px 4px;                     /* 안쪽 여백 조금 */
  gap:1px;                             /* 사이즈-라벨 간격 최소화 */
}
.seg.two-line .len{
  font-weight:700;
  line-height:1.05;
  white-space:nowrap;                  /* 각 줄은 한 줄로만 */
  overflow:hidden; text-overflow:ellipsis;
}
.seg.two-line .lab{
  font-size:12px;
  line-height:1.05;
  margin-top:1px;                      /* 간격 매우 작게 */
  opacity:.9;
  white-space:nowrap;
  overflow:hidden; text-overflow:ellipsis;
}

.pill.plan { background:#0ea5e9; color:#fff; }
.pill.plan:hover { filter:brightness(0.95); }

.hidden{display:none}

/* ☆
.print-only{display:none}
@media print{
  .app-header,.btn-row,.field-row,.field-col,#parsePreview,#validateArea,.badge,.app-footer{display:none !important}
  .layout{grid-template-columns:1fr}
  .print-only{display:block}
  .panel{border:none}
}
*/
.print-only{display:none}

@media print{
  /* 배경/색 유지 + 용지 설정 */
  *{-webkit-print-color-adjust:exact; print-color-adjust:exact}
  @page{size:A4; margin:12mm}
  .panel-input{ display:none !important; }

  /* 페이지 버튼으로만 인쇄 허용: 허용 아님 → 전부 숨기고 안내문만 */
  /*
  body:not(.allow-print) * { display:none !important }
  body:not(.allow-print)::before{
    content:"이 페이지에서는 단축키/브라우저 인쇄가 비활성화되었습니다.\A화면의 '인쇄하기' 버튼을 사용해 주세요.";
    white-space:pre-line; display:block; margin:20mm; font-size:14pt; color:#000;
  }
  */

  /* 화면 요소 숨김(입력/버튼 등) */
  .app-header,.btn-row,.field-row,.field-col,#parsePreview,#validateArea,.badge,.app-footer{display:none !important}
  .layout{grid-template-columns:1fr}
  .print-only{display:block}

  /* 글씨/테두리 대비 강화 */
  body{color:#000}
  .panel{border:none}
  .card,.summary-item,.stock-card,.stock-bar{border-color:#000 !important; background:#fff}
  .summary-item .label{color:#000}
  .summary-item .value{font-weight:700}

  /* 막대/세그먼트: 선명한 색 & 구분선 */
  .stock-bar{border:1px solid #000}
  .seg{border-right:1px solid #000; font-size:10pt}
  .seg.cut{background:#000 !important; color:#fff !important}
  .seg.kerf{background:#fff !important}
  .seg.leftover{background:#eee !important; color:#000 !important}
}
/* ++ 추가 시작 : 이메일 인증 레이아웃 미세 조정 */
.field-col > div { margin-top: 6px; }
#verifyBlock .hint { margin-top: 4px; }
#timer { font-variant-numeric: tabular-nums; }
/* ++ 추가 끝 */
/* ★ 교체 후 끝 */