:root{
  --green:#03c75a;
  --green-dark:#02a94f;
  --green-soft:#eafbf1;
  --ink:#172033;
  --muted:#667085;
  --bg:#f4f7f5;
  --card:#ffffff;
  --line:#e3e9e5;
  --shadow:0 10px 28px rgba(31,52,44,.07);
  --danger:#e60012;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:"NanumSquare","Malgun Gothic",Arial,sans-serif;color:var(--ink);background:var(--bg);font-size:14px;line-height:1.45}
button,input{font:inherit}
a{color:inherit}
.app{min-height:100vh;min-height:100svh;display:flex;flex-direction:column}
.topbar{height:66px;background:#fff;border-bottom:1px solid #edf1ee;display:flex;align-items:center;justify-content:space-between;padding:0 22px;position:sticky;top:0;z-index:20}
.logo{font-size:24px;font-weight:900;letter-spacing:-1.5px}
.title-base{color:#111}
.title-change{color:var(--danger)}
.title-service{color:var(--green)}
.top-actions{display:flex;align-items:center;gap:10px}
.home-btn{border:1px solid #cfe6d8;background:#fff;color:#0b6f39;border-radius:10px;padding:9px 13px;font-weight:800;cursor:pointer;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease,background-color .18s ease}
.home-btn:hover{border-color:var(--green);background:var(--green-soft);transform:translateY(-1px);box-shadow:0 5px 12px rgba(3,199,90,.08)}
.workspace{display:grid;grid-template-columns:260px minmax(720px,1fr) 260px;gap:20px;max-width:1880px;width:100%;margin:0 auto;padding:16px 20px 18px;flex:1;align-items:stretch}
.content-frame{min-width:0;display:flex}
.main-scroll{min-width:0;display:flex;flex:1;width:100%}
.main{max-width:1120px;width:100%;margin:0 auto;display:flex;flex-direction:column;min-height:100%}
.hero{margin-bottom:14px}
.hero h1,.section-title-row h2{font-size:24px;line-height:1.2;margin:0;letter-spacing:-.7px}
.section-title-row{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:12px}
.section-note{margin:0;color:var(--muted);font-size:12px;line-height:1.4}
.card,.card-lite{background:var(--card);border:1px solid #e6ebe7;border-radius:17px;box-shadow:var(--shadow)}
.card{padding:19px;margin-bottom:16px}
.card-lite{padding:16px 18px;margin-bottom:18px}
.option-layout{display:grid;grid-template-columns:minmax(0,1fr) 90px minmax(0,1fr);gap:18px;align-items:center;max-width:800px;margin:0 auto}
.option-card{position:relative;top:0;border:1.5px solid #d7e4da;background:#fff;border-radius:18px;padding:16px 20px;min-height:136px;text-align:left;box-shadow:0 5px 12px rgba(23,32,51,.045);cursor:pointer;transition:top .24s cubic-bezier(.22,1,.36,1),border-color .2s ease,box-shadow .22s ease,background-color .2s ease}
.option-card:not(.is-active):hover{border-color:#97d8b2;top:-2px;box-shadow:0 7px 14px rgba(23,32,51,.06)}
.option-card.is-active{border-color:var(--green);background:#fff;top:-6px;box-shadow:0 8px 14px rgba(3,199,90,.13),0 2px 5px rgba(3,199,90,.08),0 0 0 1px rgba(3,199,90,.08)}


.option-line{display:flex;align-items:center;gap:14px;min-height:36px}
.option-label{min-width:68px;font-size:21px;font-weight:900;letter-spacing:-.55px}
.option-text{font-size:14px;font-weight:800;letter-spacing:-.28px}
.option-divider{height:1px;background:#e7ece9;margin:10px 0}
.base-label,.base-text{color:#111}
.change-label,.change-text{color:var(--danger)}
.option-switch-wrap{text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px}
.switch-btn{width:54px;height:54px;border-radius:50%;border:1px solid #b7ebca;background:linear-gradient(180deg,#f5fff9 0%,#edfbf3 100%);color:var(--green-dark);font-size:23px;font-weight:900;cursor:pointer;box-shadow:0 6px 14px rgba(3,199,90,.09);transition:transform .38s cubic-bezier(.22,1,.36,1),border-color .2s ease,box-shadow .25s ease,background-color .2s ease}
.switch-btn:hover{transform:rotate(24deg) scale(1.03);border-color:var(--green);box-shadow:0 9px 16px rgba(3,199,90,.13)}
.switch-text{font-size:12px;font-weight:800;color:#2f8b55}
.option-help{text-align:center;margin:12px 0 0;color:#475467;font-size:12.5px;font-weight:700}
.file-input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.dropzone{border:2px dashed #8dddaf;border-radius:15px;background:#f8fffb;padding:25px 20px;text-align:center;transition:border-color .18s ease,background-color .18s ease,box-shadow .18s ease;cursor:pointer;display:block;outline:none}
.dropzone:hover,.dropzone:focus,.dropzone.drag{border-color:var(--green);background:var(--green-soft);box-shadow:0 7px 16px rgba(3,199,90,.06)}
.dropzone.processing{pointer-events:none;opacity:.72}
.drop-icon{width:46px;height:46px;border-radius:13px;background:var(--green);color:#fff;margin:0 auto 10px;display:grid;place-items:center;font-size:25px;font-weight:300}
.drop-main{font-weight:900;font-size:15px;letter-spacing:-.15px}
.drop-sub{color:var(--muted);margin-top:6px;font-size:12px;line-height:1.6}
.file-card{display:none;align-items:center;justify-content:space-between;border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-top:12px;background:#fff;gap:10px}
.file-left{display:flex;align-items:center;gap:12px;min-width:0}
.excel-icon{width:39px;height:39px;border-radius:10px;background:var(--green-soft);color:var(--green-dark);display:grid;place-items:center;font-weight:900;flex:none}
.file-name{font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:650px}
.file-meta{font-size:12px;color:var(--muted);margin-top:2px}
.mini-btn{border:1px solid var(--line);background:#fff;border-radius:9px;padding:8px 11px;font-weight:800;color:#475467;cursor:pointer}
.mini-btn:hover{border-color:var(--green);color:var(--green-dark)}
.mini-btn:disabled{opacity:.45;cursor:not-allowed;background:#f2f4f3}
.upload-error{display:none;color:#b42318;background:#fff2f1;border:1px solid #f5b7b3;border-radius:10px;padding:10px 12px;margin-top:10px;line-height:1.55;font-weight:700}
.warn{color:#9a5b00;background:#fff9e8;border:1px solid #f3d68a;border-radius:10px;padding:10px 12px;margin-top:10px;display:none}
.status{display:none;margin-top:12px;border:1px solid #a8dfbd;background:#f3fff8;border-radius:12px;padding:13px}
.status-head{display:flex;justify-content:space-between;font-weight:800;margin-bottom:8px}
.progress{height:9px;border-radius:99px;background:#dff2e7;overflow:hidden}
.bar{height:100%;width:0;background:var(--green);transition:.2s}
.log{margin-top:8px;font-size:12px;color:#475467;max-height:80px;overflow:auto;white-space:pre-line}
.stage-actions{display:flex;justify-content:center;margin:14px 0 0}
.stage-guide{text-align:center}
.stage-guide-sub{font-size:12px;color:var(--muted);line-height:1.75}
.stage-guide-sub+.stage-guide-sub{margin-top:2px}
.secondary-info-zone{margin-top:auto;width:100%;padding-bottom:1vh}
.secondary-guide{text-align:center}
.secondary-info-zone .frame-footer{margin-top:1.4vh}
.side-frame{background:#fff;border:1px solid #edf1ee;border-radius:22px;display:flex;align-items:flex-start;justify-content:center;padding:22px 0;min-height:620px}
.ad-panel,.ad-slot-shell{width:260px;max-width:100%}
.ad-slot{width:100%;min-width:0}
.ad-slot .adsbygoogle{display:block;width:100%}
.bottom-ad-region{display:none;width:100%;margin:0 auto}
.bottom-ad-shell{width:100%;max-width:970px;margin:0 auto}
.ad-slot-bottom{width:100%}
.frame-footer{margin-top:0;border-top:1px solid #e9efeb;background:#fff;padding:10px 14px;font-size:12px;color:var(--muted);line-height:1.5;text-align:center;display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap}
.frame-footer a{color:var(--muted);text-decoration:none}
.frame-footer a:hover{color:var(--green-dark);text-decoration:underline}
.footer-nav{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:center}
.footer-sep{color:#c0c8c3}
.toast{position:fixed;right:24px;bottom:24px;background:#153d28;color:#fff;padding:12px 15px;border-radius:10px;box-shadow:0 12px 28px rgba(0,0,0,.22);opacity:0;transform:translateY(12px);pointer-events:none;transition:.25s;z-index:99}
.toast.show{opacity:1;transform:translateY(0)}
@media(min-width:1600px){.side-left,.side-right{display:flex}}
@media(min-width:1280px) and (max-width:1599px){.workspace{grid-template-columns:minmax(760px,1fr) 260px;max-width:1560px}.side-left{display:none}.side-right{display:flex}}
@media(max-width:1279px){.workspace{grid-template-columns:1fr;max-width:1180px;padding:14px}.side-frame{display:none}.bottom-ad-region{display:block}.topbar{padding:0 14px}}
@media(max-width:860px){.option-layout{grid-template-columns:1fr;gap:14px}.option-switch-wrap{order:3}.section-title-row{align-items:flex-start;flex-direction:column}}
@media(max-width:640px){.workspace{padding:10px}.card,.card-lite{padding:14px}.frame-footer{padding:12px 10px;gap:6px}.frame-footer>.footer-sep{display:none}.footer-mail{width:100%}.topbar{height:auto;min-height:68px;padding:12px 14px;gap:10px;align-items:flex-start}.logo{font-size:22px}.top-actions{flex-wrap:wrap;justify-content:flex-end}.option-card{padding:16px 16px;min-height:132px}.option-label{min-width:60px;font-size:20px}.option-text{font-size:14px}}
@media(max-width:1279px){.secondary-info-zone{padding-bottom:.8vh}.bottom-ad-region:has(.adsbygoogle){margin-top:2vh}.bottom-ad-region:has(.adsbygoogle)+.frame-footer{margin-top:2vh}}
@media(max-width:760px){.secondary-info-zone{padding-bottom:.6vh}}

.option-card:active{top:-1px}
.option-card.is-active:active{top:-5px}
.switch-btn:active{transform:rotate(90deg) scale(.96)}
@media(prefers-reduced-motion:reduce){.option-card,.switch-btn,.home-btn{transition:none!important}}

/* integrated tool tabs + color swap */
.tool-tabs-shell{height:56px;background:#fff;border-bottom:1px solid #edf1ee;display:flex;align-items:flex-end;position:relative;z-index:15}
.tool-tabs-inner{max-width:1880px;width:100%;margin:0 auto;padding:0 22px;display:flex;gap:8px;align-items:flex-end}
.tool-tab{appearance:none;-webkit-appearance:none;font-family:inherit;cursor:pointer;position:relative;top:0;min-width:178px;height:48px;padding:0 18px;border:1px solid #dfe7e2;border-bottom-color:#e7ece9;border-radius:12px 12px 0 0;background:#fff;color:#5c6677;text-decoration:none;font-weight:800;font-size:13px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 5px rgba(23,32,51,.025);transition:top .22s cubic-bezier(.22,1,.36,1),border-color .18s ease,box-shadow .2s ease,color .18s ease,background-color .18s ease}
.tool-tab:hover{top:-2px;border-color:#b6ddc4;color:#167a42;box-shadow:0 7px 15px rgba(23,32,51,.06)}


[hidden]{display:none!important}
.tool-tab.is-active{top:-5px;border-color:#8ddca9;border-top:2px solid var(--green);border-bottom-color:#fff;color:var(--green-dark);background:#fff;box-shadow:0 9px 18px rgba(3,199,90,.09),0 3px 9px rgba(23,32,51,.05)}
.tool-tab:focus-visible{outline:3px solid rgba(3,199,90,.18);outline-offset:2px}
.tool-panel{display:flex;flex-direction:column;min-height:calc(100vh - 190px)}


.shared-bottom{margin-top:auto;width:100%}
.panel-secondary{margin-top:auto;padding:18px 0 4px;text-align:center}
.color-head{margin-bottom:12px}
.color-head h1{font-size:24px;line-height:1.2;margin:0 0 7px;letter-spacing:-.7px;color:#111}
.color-head p{margin:0;color:#111;font-size:12px;line-height:1.6}
.color-example-card{background:#fff;border:1px solid #e6ebe7;border-radius:17px;box-shadow:var(--shadow);padding:16px 18px;margin-bottom:16px}
.color-example-grid{display:grid;grid-template-columns:minmax(0,1fr) 82px minmax(0,1fr);gap:18px;align-items:center}
.color-example-title{font-size:21px;font-weight:900;letter-spacing:-.55px;margin-bottom:10px;color:#111}
.color-example-title.after{color:var(--danger)}
.color-table{border:1px solid #dfe5e1;border-radius:10px;overflow:hidden;background:#fff}
.color-row{display:grid;grid-template-columns:56px 1fr;min-height:48px;border-bottom:1px solid #e7ece9}
.color-row:last-child{border-bottom:0}
.color-num{display:grid;place-items:center;border-right:1px solid #e7ece9;font-size:14px;font-weight:800;color:#111}
.color-cell{display:flex;align-items:center;justify-content:center;padding:8px 12px;font-weight:800;font-size:14px;letter-spacing:-.28px;color:#111;text-align:center}
.text-red{color:#f00000!important}
.color-arrow{text-align:center;color:#7b8494;font-size:43px;font-weight:300}
.color-info{background:#fff;border:1px solid #e4ebe6;border-radius:15px;padding:13px 18px;display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:16px;color:#111;font-size:14px;line-height:1.55}
.color-check{width:38px;height:38px;border:1px solid #9fe1b8;border-radius:50%;display:grid;place-items:center;color:var(--green);font-size:21px;font-weight:900;flex:none}
.color-status{display:none;margin-top:12px;border:1px solid #a8dfbd;background:#f3fff8;border-radius:12px;padding:13px}
.color-status-head{display:flex;justify-content:space-between;font-weight:800;margin-bottom:8px}
.color-progress{height:9px;border-radius:99px;background:#dff2e7;overflow:hidden}
.color-bar{height:100%;width:0;background:var(--green);transition:.2s}
.color-log{margin-top:8px;font-size:12px;color:#475467;max-height:80px;overflow:auto;white-space:pre-line}
.color-file-card{display:none;align-items:center;justify-content:space-between;border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-top:12px;background:#fff;gap:10px}
@media(max-width:1279px){.tool-tabs-inner{padding:0 14px}.tool-panel{min-height:auto}}
@media(max-width:760px){.tool-tabs-shell{height:52px}.tool-tabs-inner{padding:0 10px;gap:6px}.tool-tab{appearance:none;-webkit-appearance:none;font-family:inherit;cursor:pointer;min-width:0;flex:1;height:44px;padding:0 8px;font-size:12.5px}.color-example-grid{grid-template-columns:1fr;gap:12px}.color-arrow{transform:rotate(90deg);font-size:34px}.color-example-card{padding:14px}.color-head h1{font-size:22px}.color-info{font-size:13px}}
@media(prefers-reduced-motion:reduce){.tool-tab{appearance:none;-webkit-appearance:none;font-family:inherit;cursor:pointer;transition:none!important}}
.info-modal[hidden]{display:none!important}.info-modal{position:fixed;inset:0;z-index:200;display:grid;place-items:center;padding:18px;background:rgba(17,24,39,.42)}.info-modal-card{width:min(720px,100%);max-height:min(78vh,760px);overflow:auto;background:#fff;border:1px solid #e3e9e5;border-radius:18px;box-shadow:0 24px 60px rgba(17,24,39,.22)}.info-modal-head{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:17px 20px;background:#fff;border-bottom:1px solid #edf1ee}.info-modal-title{margin:0;font-size:21px}.info-modal-close{width:38px;height:38px;border:1px solid #dfe7e2;border-radius:10px;background:#fff;color:#475467;font-size:22px;cursor:pointer}.info-modal-body{padding:20px;color:#344054;line-height:1.75}.info-modal-body h3{margin:20px 0 7px;font-size:16px;color:#172033}.info-modal-body h3:first-child{margin-top:0}.info-modal-body ul{padding-left:22px}.info-faq-item{padding:13px 0;border-bottom:1px solid #edf1ee}.info-faq-q{font-weight:900;color:#172033;margin-bottom:5px}.footer-action{border:0;background:transparent;padding:0;color:var(--muted);font:inherit;cursor:pointer}.footer-action:hover{color:var(--green-dark);text-decoration:underline}