/* 자금조달계획서 작성 도우미 — 세금 맑음, 써니(kyuntax.pages.dev)와 같은 하늘색 바탕 · 선명한 파랑 · 굵은 테두리 · 큰 글씨 */
:root{
  --paper:#EAF2FE; --card:#FFFFFF; --card2:#F3F8FF; --line:#B5CDF2; --edge:#5F7BA8;
  --blue:#1F5AC8; --blue2:#3577E6; --blue-dark:#123B91; --blue-soft:#DDEAFD; --blue-mark:#BBD3F8;
  --text:#151A23; --muted:#46505F; --danger:#B3261E; --danger-soft:#FDECEA; --warn:#8A4B00; --warn-soft:#FFF3DC; --ok:#146B3A; --ok-soft:#E6F5EC;
  --display:'Noto Sans KR','Malgun Gothic','Apple SD Gothic Neo',sans-serif;
  color-scheme:light;
}
*{box-sizing:border-box;word-break:keep-all;overflow-wrap:break-word}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--text);font-family:var(--display);font-size:19px;line-height:1.65}
button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}
button{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
:focus-visible{outline:4px solid #F2A900;outline-offset:3px}
a{color:var(--blue)}
header{background:linear-gradient(90deg,#1A4FBF,#3379EA);padding:12px 20px;border-bottom:5px solid var(--blue-dark)}
header .in{max-width:680px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px}
header .brand{display:flex;align-items:center;gap:10px;padding:4px 0;color:#fff;font-size:18px;font-weight:900;letter-spacing:2px;text-decoration:none}
header .brand:hover{text-decoration:underline}
header .brand img{width:32px;height:32px;display:block;border-radius:6px}
header .tool{color:#DCE8FF;font-size:15px;font-weight:500;letter-spacing:0}
main{max-width:680px;margin:0 auto;padding:20px 16px 36px;overflow-x:clip;outline:none}
footer{max-width:680px;margin:0 auto;text-align:center;color:var(--muted);font-size:16px;line-height:1.6;padding:0 20px 36px}
footer p{margin:0 0 8px}
noscript{display:block;padding:20px;font-size:20px;text-align:center}
@keyframes wf{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* 버튼 */
.btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:68px;padding:12px 20px 14px;border:3px solid var(--blue-dark);border-radius:10px;background:var(--blue);color:#fff;font-weight:900;font-size:23px;line-height:1.3;text-align:center;text-decoration:none;cursor:pointer;box-shadow:0 5px 0 var(--blue-dark)}
.btn:active{transform:translateY(4px);box-shadow:0 1px 0 var(--blue-dark)}
.btn.sub{background:#fff;color:var(--blue);border-color:var(--blue);box-shadow:0 5px 0 rgba(31,90,200,.35)}
.btn.sub:active{box-shadow:0 1px 0 rgba(31,90,200,.35)}
.btn.sm{width:auto;min-height:52px;padding:6px 18px 8px;font-size:19px;box-shadow:0 4px 0 rgba(31,90,200,.35)}
.btn.warn{background:#fff;color:var(--danger);border-color:var(--danger);box-shadow:0 5px 0 rgba(179,38,30,.3)}
.btn:disabled,.btn[aria-disabled="true"]{opacity:.55;cursor:default;box-shadow:none;transform:none}
.row2{display:grid;grid-template-columns:1fr 1.4fr;gap:12px;margin-top:22px}
.stack{display:grid;gap:14px}
.linkbtn{display:block;margin:12px auto 0;min-height:48px;padding:10px;background:none;border:0;color:var(--muted);font-size:17px;font-weight:500;text-decoration:underline;cursor:pointer}

/* 카드 · 글 */
.card{background:var(--card);border:3px solid var(--blue);border-radius:12px;padding:24px 18px;margin-bottom:18px;box-shadow:0 6px 0 rgba(31,90,200,.18);animation:wf .25s ease}
.card.plain{box-shadow:none;border-color:var(--line)}
.pill{display:inline-block;padding:2px 14px 3px;border:3px solid var(--blue);border-radius:6px;background:#fff;color:var(--blue);font-weight:900;font-size:19px;letter-spacing:2px;line-height:1.4;transform:rotate(-3deg)}
.q{margin:12px 0 10px;color:var(--blue);font-weight:900;font-size:clamp(25px,6.6vw,31px);line-height:1.38;letter-spacing:-.3px}
.q.big{font-size:clamp(32px,9vw,44px);line-height:1.28;margin-top:16px}
.q:focus{outline:none}
.hint{margin:0 0 16px;color:var(--muted);font-size:18px}
.exp{margin:14px 0 0;font-size:19px;line-height:1.75}
.exp b,mark{background:linear-gradient(transparent 55%,var(--blue-mark) 55%);color:inherit;font-weight:900;padding:0 2px}
.small{font-size:16px;color:var(--muted)}
h3{margin:0 0 8px;color:var(--blue);font-weight:900;font-size:22px;line-height:1.4}
.checks{list-style:none;margin:18px 0 22px;padding:0;display:grid;gap:8px}
.checks li{position:relative;padding-left:32px;font-weight:500}
.checks li::before{content:"✓";position:absolute;left:0;top:0;width:24px;height:24px;border-radius:50%;background:var(--blue);color:#fff;font-weight:900;font-size:15px;line-height:24px;text-align:center;margin-top:3px}

/* 진행 표시 */
.prog{margin:0 0 14px}
.prog .top{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-weight:700;color:var(--blue-dark);font-size:17px}
.prog .top b{font-weight:900}
.prog .bar{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;margin-top:6px}
.prog .bar i{height:9px;border-radius:5px;background:var(--blue-mark);border:2px solid var(--blue-dark)}
.prog .bar i.on{background:var(--blue)}
.prog .bar i.cur{background:#F2A900;border-color:#8A4B00}

/* 입력 */
.field{margin:0 0 22px}
.field>label,.field>.lab{display:block;margin:0 0 6px;font-weight:700}
.field .no{display:inline-block;min-width:1.4em;color:var(--blue);font-weight:900}
.fhint{margin:-2px 0 8px;color:var(--muted);font-size:16.5px;line-height:1.55}
.req{color:var(--danger)}
input[type=text],input[type=tel],input[type=email],input[type=date],input[type=month],select,textarea{width:100%;min-height:58px;padding:10px 14px;border:3px solid var(--blue);border-radius:10px;background:#fff;font-size:21px;line-height:1.4}
textarea{min-height:110px;resize:vertical}
input::placeholder,textarea::placeholder{color:#7A8494}
.money{position:relative}
.money input{padding-right:46px;text-align:right;font-weight:700;font-size:23px;font-variant-numeric:tabular-nums}
.money .unit{position:absolute;right:14px;top:50%;transform:translateY(-50%);font-weight:700;color:var(--muted);pointer-events:none}
.read{min-height:1.5em;margin:5px 2px 0;color:var(--blue-dark);font-weight:700;font-size:17px;text-align:right}
.read.bad{color:var(--danger)}
.bad{border-color:var(--danger)!important}
.ferr,.err{margin:6px 0 0;color:var(--danger);font-weight:700;font-size:17px}
.sub2{margin:0 0 20px;padding:14px 14px 2px;border:2px dashed var(--line);border-radius:10px;background:var(--card2)}
.sub2>.lab{display:block;margin:0 0 6px;font-weight:700;color:var(--blue-dark)}
.grp{margin:0 0 26px;padding:0 0 4px}
.grp>h3{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.help{margin:-2px 0 14px;color:var(--muted);font-size:17px;line-height:1.6}
details.more{margin:4px 0 16px}
details.more>summary{cursor:pointer;color:var(--blue);font-weight:700;min-height:44px;display:flex;align-items:center}
.tgl{display:flex;align-items:center;gap:12px;min-height:60px;padding:10px 14px;border:3px solid var(--blue);border-radius:10px;background:#F1F7FF;font-weight:700;cursor:pointer;margin:0 0 14px}
.tgl input{width:26px;height:26px;accent-color:var(--blue);flex:none}
.tgl.on{background:var(--blue-soft)}
.opts{display:grid;gap:10px;margin:0 0 6px}
.opts.two{grid-template-columns:1fr 1fr}
.opts.three{grid-template-columns:1fr 1fr 1fr}
.opt{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:62px;padding:10px 12px 12px;border:3px solid var(--blue);border-radius:10px;background:#F1F7FF;color:var(--blue);font-weight:900;font-size:19px;line-height:1.35;text-align:center;cursor:pointer;box-shadow:0 4px 0 rgba(31,90,200,.28)}
.opt input{position:absolute;opacity:0;inset:0;cursor:pointer}
.opt small{display:block;margin-top:2px;color:inherit;font-weight:500;font-size:15px;opacity:.9}
.opt.on{background:var(--blue);color:#fff;border-color:var(--blue-dark);box-shadow:0 4px 0 var(--blue-dark)}
.opt:focus-within{outline:4px solid #F2A900;outline-offset:3px}
.chk,.field>label.chk{display:flex;gap:12px;align-items:flex-start;min-height:56px;padding:10px 14px;border:3px solid var(--line);border-radius:10px;background:#fff;font-weight:500;cursor:pointer;margin:0 0 10px;line-height:1.5}
.chk input{width:26px;height:26px;margin-top:2px;accent-color:var(--blue);flex:none}
.chk.on,.field>label.chk.on{border-color:var(--blue);background:#F1F7FF}
.chk b{font-weight:900}
.chk small{display:block;color:var(--muted);font-size:15.5px;font-weight:400}
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}

/* 판정 · 상태 상자 */
.note{margin:0 0 18px;padding:14px 16px;border-radius:10px;border:2px solid var(--line);background:var(--card2);font-size:18px;line-height:1.65}
.note b{font-weight:900}
.note.ok{background:var(--ok-soft);border-color:#8CCBA5;color:#0F4F2B}
.note.bad2{background:var(--danger-soft);border-color:#E7A8A3;color:#7C1A14}
.note.warn{background:var(--warn-soft);border-color:#E8C27A;color:#5E3300}
.note.info{background:var(--blue-soft);border-color:var(--line);color:var(--blue-dark)}
.note ul{margin:6px 0 0;padding-left:22px}
.note .big{display:block;font-size:23px;font-weight:900;line-height:1.35;margin-bottom:4px}

/* 합계 막대 (3~5단계 아래에 붙어 다닌다) */
.bar2{position:sticky;bottom:0;z-index:5;margin:0 -16px;padding:10px 16px 12px;background:#fff;border-top:4px solid var(--blue-dark);box-shadow:0 -6px 14px rgba(18,59,145,.15)}
.bar2 .grid{display:grid;grid-template-columns:1fr 1fr;gap:2px 14px}
.bar2 .grid div{display:flex;flex-direction:column;line-height:1.3}
.bar2 .grid span{color:var(--muted);font-size:14px}
.bar2 .grid b{font-size:18px;font-variant-numeric:tabular-nums;white-space:nowrap}
.bar2 .diff{grid-column:1/-1;margin-top:4px;padding:5px 10px;border-radius:8px;font-weight:900;text-align:center;font-size:17px}
.bar2 .diff.ok{background:var(--ok-soft);color:var(--ok)}
.bar2 .diff.no{background:var(--warn-soft);color:var(--warn)}

/* 상담 필요 항목 */
.flagbox{margin:8px 0 18px}
.flagbox>h3{color:var(--danger);font-size:21px}
details.flag{margin:0 0 10px;border:3px solid var(--line);border-left-width:10px;border-radius:10px;background:#fff}
details.flag.A{border-color:#E7A8A3;border-left-color:var(--danger)}
details.flag.B{border-color:#E8C27A;border-left-color:#C77700}
details.flag.C{border-color:var(--line);border-left-color:var(--blue2)}
details.flag>summary{display:block;list-style:none;cursor:pointer;padding:10px 12px;font-weight:700;line-height:1.45}
details.flag>summary::-webkit-details-marker{display:none}
details.flag>summary::after{content:"＋";float:right;color:var(--muted);font-weight:900}
details.flag[open]>summary::after{content:"−"}
.lv{display:inline-block;margin:0 8px 2px 0;padding:0 9px;border-radius:5px;color:#fff;font-size:15px;font-weight:900;line-height:1.55;vertical-align:1px}
.lv.A{background:var(--danger)} .lv.B{background:#B45F00} .lv.C{background:var(--blue)}
.who{display:block;margin-top:2px;color:var(--blue-dark);font-size:15.5px;font-weight:700}
.fbody{padding:0 14px 14px;font-size:17.5px;line-height:1.65}
.fbody p{margin:0 0 8px}
.fbody ul{margin:2px 0 8px;padding-left:20px}
.fbody .basis{color:var(--muted);font-size:14.5px}
.noflag{padding:12px 14px;border:2px dashed var(--line);border-radius:10px;color:var(--muted);font-size:17px}

/* 점검 표 */
.tiles{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 0 18px}
.tile{padding:10px 12px;border-radius:10px;border-left:8px solid var(--blue);background:var(--blue-soft)}
.tile small{display:block;color:var(--muted);font-size:14.5px;line-height:1.3}
.tile b{display:block;font-size:20px;font-variant-numeric:tabular-nums;color:var(--blue-dark);line-height:1.35;margin-top:2px}
.tile.ok{border-color:var(--ok);background:var(--ok-soft)} .tile.ok b{color:var(--ok)}
.tile.no{border-color:var(--danger);background:var(--danger-soft)} .tile.no b{color:var(--danger)}
table.sum{width:100%;border-collapse:collapse;font-size:17px;margin:0 0 6px}
table.sum th,table.sum td{padding:7px 6px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
table.sum td.n{text-align:right;font-variant-numeric:tabular-nums;font-weight:700;white-space:nowrap}
table.sum th{color:var(--blue-dark);font-weight:900;border-bottom:3px solid var(--blue)}
table.sum tr.tot td{border-top:3px solid var(--blue);font-weight:900;color:var(--blue-dark)}
.issue{display:flex;gap:10px;align-items:flex-start;margin:0 0 8px;padding:10px 12px;border-radius:10px;font-size:17.5px;line-height:1.5}
.issue.err{background:var(--danger-soft);border:2px solid #E7A8A3}
.issue.warn{background:var(--warn-soft);border:2px solid #E8C27A}
.issue .lv{flex:none;margin:2px 0 0}
.issue button{flex:none;margin-left:auto;padding:4px 12px;border:2px solid currentColor;border-radius:8px;background:#fff;font-weight:700;font-size:15.5px;cursor:pointer;color:var(--blue)}
.ok-line{color:var(--ok);font-weight:900}
.cl{margin:0;padding:0;list-style:none}
.cl li{display:flex;gap:10px;align-items:flex-start;padding:9px 0;border-bottom:1px solid var(--line);font-size:17px;line-height:1.5}
.cl .tag{flex:none;margin-top:1px;padding:0 8px;border-radius:5px;font-size:14.5px;font-weight:900;color:#fff;background:var(--blue)}
.cl .tag.must{background:var(--danger)}

/* 제출 전 주의사항 목록 */
.gl{margin:0;padding:0;list-style:none;counter-reset:g}
.gl li{counter-increment:g;position:relative;padding:12px 0 12px 42px;border-bottom:1px solid var(--line);font-size:17.5px;line-height:1.65}
.gl li:last-child{border-bottom:0}
.gl li::before{content:counter(g);position:absolute;left:0;top:13px;width:28px;height:28px;border-radius:7px;background:var(--blue-dark);color:#fff;font-weight:900;text-align:center;line-height:28px;font-size:16px}
.gl b{display:block;margin-bottom:2px;color:var(--blue-dark);font-weight:900;font-size:18.5px}
.gl small{display:block;margin-top:3px;color:var(--muted);font-size:14.5px;line-height:1.5}

/* PDF 단계 */
.pdfbox{padding:18px;border:3px solid var(--blue-dark);border-radius:12px;background:var(--blue-soft);margin:0 0 18px}
.pdfbox .btn{margin-top:10px}
.prog2{margin:12px 0 0;font-weight:700;color:var(--blue-dark)}
.done-card{margin-top:14px;padding:14px;border-radius:10px;background:var(--ok-soft);border:2px solid #8CCBA5;color:#0F4F2B}
.done-card b{font-weight:900}
.cta{margin:8px 0 18px;padding:22px 18px;border-radius:12px;background:var(--blue);color:#fff;border:3px solid var(--blue-dark);box-shadow:0 6px 0 var(--blue-dark)}
.cta b{display:block;margin:0 0 4px;color:#fff;font-weight:900;font-size:26px;line-height:1.38}
.cta span{display:block;margin:0 0 14px;font-size:18px}
.cta .btn{background:#fff;color:var(--blue-dark);border-color:var(--blue-dark);box-shadow:0 5px 0 var(--blue-dark)}
.cta .btn:active{box-shadow:0 1px 0 var(--blue-dark)}
.consent{margin:6px 0 4px;padding:14px 16px;background:var(--card2);border:2px solid var(--line);border-radius:8px;color:var(--muted);font-size:16.5px;line-height:1.75}
.consent b{color:var(--text)}
.agree{display:flex;align-items:center;gap:10px;margin:12px 0 16px;font-weight:700;min-height:48px;cursor:pointer}
.agree input{width:26px;height:26px;accent-color:var(--blue)}
.testbar{margin:0 0 14px;padding:10px 12px;border-radius:8px;background:var(--warn-soft);border:2px solid #E8C27A;color:#5E3300;font-size:16px}
.privacy{margin:18px 0 0;padding:14px 16px;border:2px solid var(--line);border-radius:10px;background:#fff;color:var(--muted);font-size:16.5px;line-height:1.7}
.privacy b{display:block;margin-bottom:4px;color:var(--blue-dark)}
#banner .inapp{max-width:680px;margin:12px auto 0;padding:12px 16px;background:var(--warn-soft);border:2px solid #E8C27A;border-radius:10px;color:#5E3300;font-size:16.5px;line-height:1.6}
.hero .pill{margin-bottom:4px}
.steps3{display:grid;gap:10px;margin:14px 0 4px;padding:0;list-style:none;counter-reset:s}
.steps3 li{counter-increment:s;position:relative;padding:8px 8px 8px 46px;border-radius:10px;background:var(--card2);font-size:18px;line-height:1.5}
.steps3 li::before{content:counter(s);position:absolute;left:10px;top:8px;width:28px;height:28px;border-radius:7px;background:var(--blue);color:#fff;font-weight:900;text-align:center;line-height:28px}

@media (max-width:420px){
  body{font-size:18px}
  .opts.three{grid-template-columns:1fr}
  .row2{grid-template-columns:1fr}
  .tiles{grid-template-columns:1fr}
}
@media print{header,footer,.bar2,#banner,.btn{display:none!important}body{background:#fff}}
