:root{--bg:#f3f6fb;--fg:#172945;--primary:#2859dc;--muted:#586b84;--border:#dbe3ef;--radius:12px}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--fg);font-family:"Malgun Gothic","Apple SD Gothic Neo",Arial,sans-serif;font-size:16px;line-height:1.65}
button{cursor:pointer;font:inherit}button:disabled{cursor:wait;opacity:.55}
code{background:#eef2f9;padding:2px 6px;border-radius:5px;font-size:14px}
.shell{max-width:1240px;margin:auto;padding:0 40px 60px}
header{min-height:96px;display:flex;justify-content:space-between;align-items:center;gap:20px;border-bottom:1px solid var(--border)}
.brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:24px;letter-spacing:-1px}.brand svg{color:var(--primary);width:30px;height:30px}
.pill{display:inline-flex;gap:7px;align-items:center;font-size:14px;background:#e8eef9;padding:7px 13px;border-radius:50px;color:#455976;border:0}
.pill.ok{background:#e1f5ea;color:#1e6b3a}.pill.bad{background:#fff0f0;color:#a32435}
.heading{padding:42px 0 25px}.eyebrow{color:var(--primary);font-weight:700;letter-spacing:2px;font-size:12px;margin:0 0 8px}
h1{font-size:34px;letter-spacing:-1.5px;line-height:1.4;margin:0 0 9px}
p{margin:8px 0;color:var(--muted)}h2{font-size:20px;line-height:1.5;margin:0 0 8px;font-weight:700}h3{font-size:16px;margin:16px 0 6px}
.grid-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:25px}
.stat{padding:19px 22px;border-radius:var(--radius);background:#fff;border:1px solid var(--border)}.stat strong{display:block;font-size:24px}.stat span{font-size:14px;color:#63758d}.stat small{font-size:14px;color:#63758d;font-weight:400}
.tabbar{display:flex;gap:24px;border-bottom:1px solid var(--border);margin-bottom:26px;flex-wrap:wrap}
.tabbar button{background:none;border:0;border-bottom:3px solid transparent;padding:14px 3px;font-size:15px;color:#6b7b91}.tabbar button.active{color:var(--primary);font-weight:700;border-bottom-color:var(--primary)}
.workspace-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:26px;align-items:start}
.panel{background:#fff;border:1px solid var(--border);border-radius:18px;padding:28px;margin-bottom:20px}
.dropzone{display:flex;flex-direction:column;gap:10px;align-items:center;justify-content:center;min-height:170px;border:1.5px dashed #adc1e7;border-radius:13px;background:#f7faff;margin-top:20px;text-align:center;padding:24px;cursor:pointer}
.dropzone.over{background:#e9f0ff}.dropzone span{font-size:14px;color:#65758c}.dropzone input{font-size:14px;max-width:100%}
.result-card{background:#18335f;color:#fff;border-radius:18px;padding:28px;position:sticky;top:24px}
.result-card p,.result-card small{color:#c5d4eb}.result-card h2{font-size:26px;margin:12px 0 20px;color:#fff}.result-card hr{border:0;border-top:1px solid #ffffff25;margin:20px 0}
.result-card small{font-size:13px}.result-card .muted{color:#aebfdc}.result-card details{margin-top:8px}.result-card summary{color:#c5d4eb;cursor:pointer;font-size:14px}
.result-amount{font-size:36px!important;letter-spacing:-1px}
.breakdown{display:flex;justify-content:space-between;gap:16px;padding:8px 0;font-size:14px}
.notice{background:#edf2ff;color:#3b5590;padding:14px 18px;border-radius:10px;margin:14px 0;font-size:14px}.notice.error{background:#fff0f0;color:#a32435}
.fields{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:16px 0}
.field{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:600}
.field input,.field textarea,.field select{background:#fff;color:var(--fg);border:1px solid #cbd6e5;border-radius:8px;padding:10px 12px;width:100%;font-size:16px;font-weight:400;font-family:inherit}
.field textarea{min-height:80px}.wide{grid-column:1/-1}
.actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:12px}
.primary,.secondary{border:0;padding:11px 19px;border-radius:9px;font-size:15px;font-weight:600;display:inline-flex;align-items:center;gap:8px}
.primary{background:var(--primary);color:#fff}.secondary{background:#eaf0fb;color:#345278}
.link{color:var(--primary);text-decoration:underline;font-size:14px;background:none;border:0;padding:0}.link.danger{color:#a32435}
.muted{font-size:14px;color:#63758d}
.record{border:1px solid var(--border);padding:18px;border-radius:var(--radius);margin:14px 0;background:#fff}
.record-head{display:flex;gap:12px;align-items:flex-start;justify-content:space-between;flex-wrap:wrap}.record h3{margin:0;font-size:17px}
.file-row{display:flex;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid #edf1f7;font-size:14px;overflow-wrap:anywhere}.file-row a{color:var(--primary)}
.badge{font-size:12px;background:#eef3fb;color:#476489;border-radius:5px;padding:4px 7px;white-space:nowrap}.badge.warn{color:#975b1d;background:#fff2dc}.badge.ok{color:#1e6b3a;background:#e1f5ea}.badge.bad{color:#a32435;background:#fff0f0}
.benefit{border-top:1px solid #edf1f7;padding:12px 0}.benefit .issue{color:#975b1d;font-size:13px;margin:2px 0}
.evidence{border-left:3px solid #7b9bea;padding-left:12px;margin:8px 0;font-size:13px;color:#63758d;white-space:pre-wrap}
.checkline{display:flex;align-items:flex-start;gap:10px;font-size:14px;margin:14px 0}.checkline input{margin-top:4px}
.intro-note{border-left:3px solid #7b9bea;padding-left:15px;margin:18px 0;font-size:14px}
.progress{display:flex;gap:10px;align-items:center;font-size:14px;color:#3b5590;margin:10px 0}.spinner{width:16px;height:16px;border:3px solid #c9d7f5;border-top-color:var(--primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.toast{position:fixed;top:20px;left:50%;transform:translateX(-50%);background:#172945;color:#fff;padding:12px 20px;border-radius:10px;z-index:50;font-size:14px;box-shadow:0 8px 24px #0003}.toast.error{background:#a32435}
dialog{border:0;border-radius:18px;padding:28px;max-width:720px;width:calc(100% - 32px);box-shadow:0 20px 60px #0004}dialog::backdrop{background:#0006}
footer{margin-top:30px;border-top:1px solid var(--border);padding-top:18px;font-size:13px;color:#64748b}
@media(max-width:850px){.workspace-grid{grid-template-columns:1fr}.result-card{position:static}.shell{padding:0 22px 40px}h1{font-size:28px}}
@media(max-width:500px){.fields,.grid-stats{grid-template-columns:1fr}.panel{padding:20px}.shell{padding:0 16px 35px}h1{font-size:26px}}

.person-picker{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:14px}.person-picker button{border:1.5px solid #cbd6e5;background:transparent;color:inherit;border-radius:50px;padding:7px 14px;font-size:14px}.person-picker button.active{border-color:var(--primary);background:var(--primary);color:#fff}
.calc-steps{font-size:13px;color:#c5d4eb;margin:6px 0 10px;padding-left:10px;border-left:2px solid #ffffff30}.calc-steps div{display:flex;justify-content:space-between;gap:10px;padding:2px 0}
.cmp{border:1px solid var(--border);border-radius:var(--radius);padding:14px;margin:12px 0}.cmp-head{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;align-items:center}.cmp-nums{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:10px 0;text-align:center}.cmp-nums div{background:#eef2f9;border-radius:8px;padding:8px}.cmp-nums span{display:block;font-size:12px;color:#63758d}.cmp-nums strong{font-size:16px}
.verdict-match{color:#1e6b3a}.verdict-diff{color:#975b1d}.verdict-bad{color:#a32435}
.suggest{display:flex;gap:10px;align-items:flex-start;background:#edf2ff;border-radius:8px;padding:10px 12px;margin:6px 0;font-size:14px}

/* ---------- 휴대폰 최적화 ---------- */
.workspace-grid>*{min-width:0}
.panel,.record,.result-card,.cmp{min-width:0;overflow-wrap:anywhere}
.dropzone input[type=file]{width:100%;max-width:100%;box-sizing:border-box}
.breakdown span:last-child,.breakdown strong{text-align:right}
@media(max-width:850px){
  /* 보험금 계산 탭: 결과 카드를 입력 위로 올려 바로 보이게 */
  section[data-tab=expense] .workspace-grid{display:flex;flex-direction:column}
  section[data-tab=expense] .result-card{order:-1}
  /* 내 보험 탭의 안내 카드는 휴대폰에서 숨김 */
  section[data-tab=policy] .result-card{display:none}
  .grid-stats{grid-template-columns:repeat(3,1fr);gap:8px}
  .stat{padding:12px 10px}.stat span{font-size:12px}.stat strong{font-size:18px}.stat small{font-size:11px}
  .heading{padding:22px 0 14px}h1{font-size:26px}.heading p{font-size:15px}
  .tabbar{gap:0;justify-content:space-between;margin-bottom:16px}.tabbar button{padding:12px 2px;font-size:14px;flex:1;text-align:center}
}
@media(max-width:500px){
  header{min-height:64px;gap:10px}.brand{font-size:20px;letter-spacing:-.5px;white-space:nowrap}.brand svg{width:24px;height:24px}
  .pill{font-size:12px;padding:5px 9px;white-space:nowrap}
  .panel{padding:18px 16px;border-radius:14px}.record{padding:14px}.result-card{padding:20px 18px;border-radius:14px}
  .dropzone{padding:16px 12px;min-height:120px;margin-top:14px}.dropzone strong{font-size:15px}.dropzone span{font-size:13px}
  h2{font-size:18px}.result-card h2{font-size:22px}.result-amount{font-size:30px!important}
  .fields{grid-template-columns:1fr;gap:12px}.field input,.field textarea,.field select{font-size:16px;padding:10px}
  .actions .primary,.actions .secondary{width:100%;justify-content:center}
  .cmp-nums{grid-template-columns:repeat(3,1fr);gap:6px}.cmp-nums strong{font-size:14px}.cmp-nums span{font-size:11px}
  .file-row{flex-direction:column;align-items:flex-start;gap:2px}
  .person-picker button{padding:9px 14px;font-size:15px}
  dialog{padding:18px 16px;width:calc(100% - 20px)}
  body{font-size:15px}.muted,.notice{font-size:13.5px}.calc-steps{font-size:12.5px}
}
/* 폴드 펼친 화면·태블릿(600~900px): 한 열이지만 여백을 넉넉히 */
@media(min-width:600px) and (max-width:900px){
  .shell{padding-left:max(28px,env(safe-area-inset-left,0px));padding-right:max(28px,env(safe-area-inset-right,0px))}
  .fields{grid-template-columns:1fr 1fr}
  .grid-stats{grid-template-columns:repeat(3,1fr)}
}
/* 노치·홈바 영역 피하기 (홈 화면 앱으로 열었을 때) */
.shell{padding-top:env(safe-area-inset-top,0px);padding-bottom:calc(40px + env(safe-area-inset-bottom,0px))}
.done-banner{display:flex;justify-content:space-between;align-items:center;gap:12px;background:#e1f5ea;color:#1e6b3a;border-radius:12px;padding:12px 16px;margin:0 0 16px;font-size:15px;font-weight:600}
.done-banner.error{background:#fff0f0;color:#a32435}.done-banner button{background:none;border:0;color:inherit;font-size:18px;cursor:pointer;padding:0 4px}
#coverageSummary .breakdown span:first-child{white-space:nowrap;margin-right:8px}#coverageSummary .breakdown{align-items:flex-start}
