:root{--bg:#f4f7fb;--card:#fff;--text:#172033;--muted:#667085;--line:#e4e9f2;--blue:#2563eb;--blue2:#eff6ff;--yellow:#fff8d8;--green:#ecfdf3;--green-text:#067647;--orange:#fff4e8;--red:#b42318;--shadow:0 12px 32px rgba(31,41,55,.07);font-family:"Malgun Gothic","Apple SD Gothic Neo",system-ui,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}button,input,select{font:inherit}.app-shell{max-width:1500px;margin:auto;padding:0 28px 48px}.topbar{height:82px;display:flex;align-items:center;justify-content:space-between}.brand-wrap{display:flex;align-items:center;gap:13px}.brand-icon{width:54px;height:54px;object-fit:contain;display:block;filter:drop-shadow(0 7px 12px rgba(23,32,51,.12))}h1{font-size:20px;margin:0 0 3px}.brand-wrap p{margin:0;color:var(--muted);font-size:12px}.accent-expense{color:#2563eb}.accent-card{color:#f97316}.accent-gift{color:#16a34a}.privacy-pill{padding:9px 14px;border:1px solid #cfe0ff;background:#f7fbff;color:#315a9e;border-radius:999px;font-size:12px}.card{background:var(--card);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow)}.hero{display:flex;justify-content:space-between;align-items:center;gap:30px;padding:34px 38px}.hero-copy{max-width:800px}.eyebrow{display:inline-block;color:var(--blue);background:var(--blue2);padding:7px 10px;border-radius:8px;font-size:12px;font-weight:700}.hero h2{font-size:28px;line-height:1.35;margin:14px 0 10px}.hero p{margin:0;color:var(--muted);line-height:1.7;font-size:14px}.upload-box{min-width:285px;min-height:155px;border:2px dashed #aac4f8;border-radius:18px;background:#f8fbff;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;transition:.18s}.upload-box:hover,.upload-box.drag{border-color:var(--blue);background:#eff6ff;transform:translateY(-1px)}.upload-icon{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--blue);color:#fff;font-size:20px;margin-bottom:9px}.upload-box strong{font-size:14px}.upload-box small{color:var(--muted);margin-top:5px}.hidden{display:none!important}.notice{margin:16px 0;padding:13px 16px;border-radius:12px;font-size:13px}.notice.warning{background:#fff1f0;color:#912018;border:1px solid #ffd4cf}.notice.info{background:#eff6ff;color:#1d4ed8;border:1px solid #cfe0ff}.notice.subtle{background:#f8fafc;color:#475467;border:1px solid var(--line);margin:0 0 16px}.control-bar{margin-top:20px;padding:18px 20px;display:flex;align-items:center;gap:20px}.file-info{display:flex;align-items:center;gap:10px;min-width:0;flex:1}.file-info>div{min-width:0}.file-info strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-info small{display:block;color:var(--muted);margin-top:3px}.status-dot{width:10px;height:10px;border-radius:50%;background:#12b76a;box-shadow:0 0 0 5px #ecfdf3}.month-control{display:flex;align-items:center;gap:8px}.month-control label{font-size:12px;color:var(--muted)}select,input[type=text],input[type=number]{border:1px solid #d8deea;border-radius:9px;background:#fff;padding:8px 10px;outline:none}.month-control select{min-width:130px}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:16px 0}.stat-card{padding:18px;border-radius:16px;border:1px solid var(--line);background:#fff}.stat-card>div{display:flex;justify-content:space-between;align-items:center}.stat-card span{font-weight:700;font-size:13px}.stat-card strong{font-size:23px}.stat-card small{display:block;color:var(--muted);margin-top:8px}.stat-card.expense{border-top:3px solid #f0b429}.stat-card.cardpay{border-top:3px solid #3b82f6}.stat-card.gift{border-top:3px solid #12b76a}.stat-card.review{border-top:3px solid #f04438}.tabs{padding:7px;display:flex;gap:5px;margin-bottom:16px;box-shadow:none}.tab{border:0;background:transparent;padding:11px 16px;border-radius:11px;color:#667085;font-weight:700;cursor:pointer}.tab span{margin-left:5px;display:inline-block;min-width:22px;padding:2px 6px;border-radius:999px;background:#eef2f7;font-size:11px}.tab.active{background:#edf4ff;color:#1d4ed8}.panel{display:none;padding:22px;margin-bottom:16px;box-shadow:none}.panel.active{display:block}.panel-head,.download-card{display:flex;justify-content:space-between;align-items:center;gap:18px}.panel-head{margin-bottom:16px}.panel h3,.download-card h3{margin:0 0 5px;font-size:17px}.panel-head p,.download-card p{margin:0;color:var(--muted);font-size:12px}.table-scroll{overflow:auto;border:1px solid var(--line);border-radius:12px}table{width:100%;border-collapse:separate;border-spacing:0;min-width:980px;font-size:12px}th{position:sticky;top:0;z-index:1;background:#f8fafc;color:#475467;font-weight:700;text-align:center;padding:11px 10px;border-bottom:1px solid var(--line);white-space:nowrap}td{padding:8px 9px;border-bottom:1px solid #eef1f5;vertical-align:middle}tr:last-child td{border-bottom:0}td.amount{text-align:right;font-variant-numeric:tabular-nums}td.center{text-align:center}td.editable{background:#fffbea}.cell-input,.cell-select{width:100%;min-width:120px;padding:7px 8px;border-radius:7px;border:1px solid #e6d895;background:#fffdf4}.cell-select{min-width:170px}.status-badge{display:inline-flex;align-items:center;padding:5px 8px;border-radius:999px;font-size:11px;font-weight:700;white-space:nowrap}.status-badge.ok{background:var(--green);color:var(--green-text)}.status-badge.review{background:#fff1f0;color:var(--red)}.category-badge{display:inline-block;padding:5px 8px;border-radius:7px;background:#eef4ff;color:#315a9e;font-weight:700}.btn{border:0;border-radius:10px;padding:10px 14px;font-weight:700;font-size:12px;cursor:pointer}.btn.primary{background:var(--blue);color:#fff;box-shadow:0 6px 14px rgba(37,99,235,.2)}.btn.secondary{background:#eef4ff;color:#2456a6}.btn.ghost{background:#f5f7fa;color:#475467}.download-card{padding:22px 24px}.download-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}dialog{width:min(1100px,94vw);max-height:88vh;border:0;border-radius:16px;padding:0;box-shadow:0 24px 80px rgba(17,24,39,.25)}dialog::backdrop{background:rgba(15,23,42,.48)}.dialog-head{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--line)}.dialog-head button{border:0;background:#f2f4f7;width:32px;height:32px;border-radius:9px;font-size:20px;cursor:pointer}.preview-paper{padding:32px;overflow:auto;max-height:74vh}.preview-paper h2{text-align:center;text-decoration:underline;margin:0 0 26px}.preview-paper h4{margin:20px 0 8px}.preview-paper table{min-width:0;font-size:11px}.preview-paper th{position:static;background:#fff9a8;color:#222}.preview-paper td,.preview-paper th{border:1px solid #333;padding:6px}.toast{position:fixed;right:24px;bottom:24px;background:#172033;color:#fff;padding:12px 16px;border-radius:11px;opacity:0;transform:translateY(10px);pointer-events:none;transition:.2s;box-shadow:var(--shadow);font-size:13px}.toast.show{opacity:1;transform:translateY(0)}@media(max-width:900px){.app-shell{padding:0 14px 30px}.topbar{height:auto;padding:18px 0}.privacy-pill{display:none}.hero{flex-direction:column;align-items:stretch;padding:24px}.hero h2{font-size:23px}.upload-box{min-width:0}.stat-grid{grid-template-columns:repeat(2,1fr)}.control-bar,.panel-head,.download-card{align-items:flex-start;flex-direction:column}.month-control{width:100%;justify-content:space-between}.download-actions{justify-content:flex-start}.tabs{overflow:auto}.tab{white-space:nowrap}}@media(max-width:520px){.stat-grid{grid-template-columns:1fr}.hero p{font-size:13px}.brand-wrap p{display:none}}.privacy-control{display:flex;flex-direction:column;gap:5px;min-width:150px}.privacy-control small{color:#667085;font-size:11px}.privacy-cell{background:#f8fbff}.muted-dash{color:#98a2b3}.privacy-control .cell-select{min-width:140px}
.expense-board-wrap{margin:0 0 20px;padding:16px;border:1px solid var(--line);border-radius:14px;background:#f8fafc}
.expense-board-title,.detail-review-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.expense-board-title>div{min-width:0}.expense-board-title strong,.detail-review-title strong{font-size:13px}
.expense-board-title small,.detail-review-title small{display:block;color:var(--muted);font-size:11px;margin-top:4px;line-height:1.5}
.drag-hint{white-space:nowrap;padding:6px 9px;border-radius:999px;background:#eef4ff;color:#315a9e;font-size:10px;font-weight:700}
.expense-board{display:grid;grid-template-columns:repeat(5,minmax(220px,1fr));gap:10px;overflow-x:auto;padding-bottom:4px}
.expense-drop-group{min-width:220px;border:1px solid #dde4ef;border-radius:12px;background:#fff;overflow:hidden}
.expense-drop-group>header{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;padding:11px 12px;border-bottom:1px solid #e8edf4;background:#f7f9fc}
.expense-drop-group>header strong{display:block;font-size:11px;line-height:1.35}
.expense-drop-group>header small{display:block;margin-top:4px;color:var(--muted);font-size:10px}
.expense-drop-group>header>span{font-size:10px;font-weight:800;color:#475467;white-space:nowrap}
.expense-dropzone{min-height:92px;padding:8px;display:flex;flex-direction:column;gap:7px}
.expense-drag-item{display:flex;align-items:stretch;gap:7px;border:1px solid #e4e9f2;border-radius:10px;background:#fff;box-shadow:0 2px 7px rgba(31,41,55,.05);overflow:hidden}
.drag-handle{width:30px;flex:0 0 30px;border:0;border-right:1px solid #edf0f5;background:#f8fafc;color:#667085;cursor:grab;touch-action:none;font-size:15px}
.drag-handle:active{cursor:grabbing}
.drag-item-body{min-width:0;flex:1;padding:8px 8px 8px 0}
.drag-item-meta{display:flex;align-items:center;justify-content:space-between;gap:6px;font-size:10px;color:#667085}
.drag-item-meta strong{color:#344054;font-size:10px}
.drag-item-detail{margin-top:5px;font-size:11px;line-height:1.4;color:#344054;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.privacy-mini{display:inline-block;margin-top:6px;padding:3px 6px;border-radius:999px;background:#fff1f0;color:#b42318;font-size:9px;font-weight:700}
.empty-drop{min-height:72px;display:grid;place-items:center;border:1px dashed #d5dbe6;border-radius:8px;color:#98a2b3;font-size:10px;background:#fbfcfe}
.drag-ghost{opacity:.35}.drag-chosen{box-shadow:0 8px 20px rgba(37,99,235,.18)}.drag-active{transform:rotate(.5deg)}
.detail-review-title{justify-content:flex-start;margin-top:4px}
@media(max-width:900px){.expense-board{grid-template-columns:repeat(5,minmax(205px,1fr))}.expense-board-wrap{padding:12px}.expense-board-title{align-items:flex-start}.drag-hint{display:none}}

/* 업무추진비: 보고서 순서대로 위→아래 한 화면에서 분류와 검토 */
.expense-board.vertical{display:flex;flex-direction:column;gap:12px;overflow:visible;padding:0}
.expense-board.vertical .expense-drop-group{min-width:0;width:100%;overflow:visible}
.expense-board.vertical .expense-drop-group>header{align-items:center;padding:12px 14px}
.expense-group-name{display:flex;align-items:center;gap:9px;min-width:0}
.expense-group-name .order-no{width:24px;height:24px;display:grid;place-items:center;border-radius:7px;background:#eef4ff;color:#2456a6;font-size:11px;font-weight:800;flex:0 0 auto}
.expense-group-name strong{font-size:13px!important}
.expense-group-summary{display:flex;align-items:center;gap:14px;color:#667085;font-size:11px;white-space:nowrap}
.expense-group-summary b{color:#2456a6;font-size:11px}
.expense-board.vertical .expense-dropzone{min-height:54px;padding:8px 10px;gap:7px}
.expense-board.vertical .expense-drag-item{width:100%;align-items:stretch;border-radius:9px}
.expense-board.vertical .drag-handle{width:36px;flex-basis:36px;font-size:16px}
.expense-row-content{min-width:0;flex:1;padding:9px 11px}
.expense-main-line{display:grid;grid-template-columns:108px minmax(260px,1fr) 112px;align-items:center;gap:12px}
.expense-date{font-variant-numeric:tabular-nums;color:#475467;font-size:11px;white-space:nowrap}
.expense-detail{font-size:12px;line-height:1.5;color:#172033;overflow-wrap:anywhere}
.expense-amount{text-align:right;font-size:12px;font-variant-numeric:tabular-nums;white-space:nowrap}
.expense-sub-line{display:grid;grid-template-columns:minmax(170px,1.1fr) minmax(180px,1.2fr) minmax(100px,.7fr) minmax(170px,1fr);gap:8px 12px;margin-top:8px;padding-top:8px;border-top:1px dashed #e6eaf0}
.expense-field{min-width:0;display:flex;align-items:center;gap:7px}
.expense-field label{flex:0 0 auto;color:#667085;font-size:10px;font-weight:700}
.expense-field>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#475467;font-size:11px}
.expense-field .compact{min-width:0;width:100%;padding:6px 8px;font-size:11px}
.expense-field.privacy-field{grid-column:auto}
.expense-board.vertical .empty-drop{min-height:38px}
@media(max-width:900px){
  .expense-main-line{grid-template-columns:92px minmax(180px,1fr) 92px;gap:8px}
  .expense-sub-line{grid-template-columns:1fr 1fr}
  .expense-field.privacy-field{grid-column:1/-1}
}
@media(max-width:600px){
  .expense-board-title{display:block}
  .expense-board-title small{margin-top:6px}
  .expense-drop-group>header{gap:8px}
  .expense-group-summary{gap:8px;font-size:10px}
  .expense-group-summary span:nth-child(2){display:none}
  .expense-main-line{grid-template-columns:1fr auto}
  .expense-date{grid-column:1/-1}
  .expense-detail{font-size:12px}
  .expense-sub-line{grid-template-columns:1fr}
  .expense-field.privacy-field{grid-column:auto}
  .expense-field{align-items:flex-start;flex-direction:column;gap:4px}
  .expense-field>span{white-space:normal}
}

.item-menu{position:relative;align-self:stretch;display:flex;align-items:flex-start}
.item-menu>summary{list-style:none;width:34px;height:34px;margin:6px 6px 0 0;display:grid;place-items:center;border-radius:8px;color:#667085;cursor:pointer;font-size:20px;user-select:none}
.item-menu>summary::-webkit-details-marker{display:none}
.item-menu[open]>summary,.item-menu>summary:hover{background:#f2f4f7;color:#344054}
.item-menu-pop{position:absolute;right:6px;top:40px;z-index:20;width:170px;padding:7px;background:#fff;border:1px solid #e4e9f2;border-radius:10px;box-shadow:0 12px 28px rgba(31,41,55,.16)}
.item-menu-pop button{width:100%;border:0;background:#fff4f2;color:#b42318;border-radius:7px;padding:8px 9px;text-align:left;font-size:11px;font-weight:700;cursor:pointer}
.item-menu-pop small{display:block;color:#98a2b3;font-size:9px;margin:6px 2px 1px}
.excluded-panel{margin-top:2px;border:1px dashed #d0d5dd;border-radius:10px;background:#fafafa;overflow:hidden}
.excluded-panel>summary{cursor:pointer;padding:11px 13px;color:#667085;font-size:11px;list-style:none}
.excluded-panel>summary::-webkit-details-marker{display:none}
.excluded-panel>summary b{color:#475467;margin-left:4px}
.excluded-panel>summary span{margin-left:10px;color:#98a2b3}
.excluded-list{border-top:1px solid #eaecf0}
.excluded-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 12px;border-bottom:1px solid #f0f1f3}
.excluded-item:last-child{border-bottom:0}
.excluded-item>div{min-width:0;display:grid;grid-template-columns:100px minmax(0,1fr) auto;gap:10px;align-items:center;font-size:10px;color:#667085}
.excluded-item strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#475467;font-size:11px}
.excluded-item small{white-space:nowrap}
.restore-btn{border:0;background:#eef4ff;color:#2456a6;border-radius:7px;padding:7px 10px;font-size:10px;font-weight:700;cursor:pointer;white-space:nowrap}
.toast{display:flex;align-items:center;gap:12px}
.toast-action{border:0;background:transparent;color:#9ec5ff;font-weight:800;cursor:pointer;padding:0;text-decoration:underline}
@media(max-width:600px){
  .item-menu>summary{margin-right:2px}
  .item-menu-pop{right:2px}
  .excluded-item>div{grid-template-columns:1fr}
  .excluded-item strong{white-space:normal}
  .excluded-item small{display:none}
}

.app-footer{margin:18px 0 0;padding:18px 4px 4px;display:flex;align-items:center;justify-content:space-between;gap:18px;color:#667085;font-size:11px}
.footer-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.footer-meta strong{color:#344054}
.footer-divider{color:#c0c6d0}
.version-check{display:flex;align-items:center;gap:8px}
.version-status{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border-radius:999px;font-size:10px;font-weight:700;white-space:nowrap}
.version-status.checking{background:#f2f4f7;color:#667085}
.version-status.latest{background:#ecfdf3;color:#067647}
.version-status.update{background:#fff7ed;color:#c2410c}
.version-status.error{background:#fff1f0;color:#b42318}
.version-check-btn{border:1px solid #d0d5dd;background:#fff;color:#475467;border-radius:8px;padding:6px 9px;font-size:10px;font-weight:700;cursor:pointer}
.version-check-btn:hover{background:#f8fafc}
@media(max-width:700px){.app-footer{align-items:flex-start;flex-direction:column}.version-check{width:100%;justify-content:space-between}}

.source-guide{margin-top:16px;padding:20px 24px;box-shadow:none}
.source-guide-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:15px}
.source-guide-head h3{margin:9px 0 0;font-size:16px}
.source-format-badge{padding:7px 10px;border-radius:9px;background:#f2f4f7;color:#475467;font-size:11px;font-weight:800;white-space:nowrap}
.source-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.source-step{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid #e6ebf2;border-radius:11px;background:#fbfcfe}
.source-step>b{width:28px;height:28px;display:grid;place-items:center;flex:0 0 auto;border-radius:8px;background:#eef4ff;color:#2456a6;font-size:12px}
.source-step strong{display:block;font-size:12px;color:#344054}
.source-step span{display:block;margin-top:3px;font-size:10px;color:#667085;line-height:1.45}
.source-guide-note{margin:12px 0 0;color:#667085;font-size:10px;line-height:1.6}
@media(max-width:800px){.source-steps{grid-template-columns:1fr}.source-guide-head{align-items:flex-start;flex-direction:column}.source-format-badge{white-space:normal}}

.hero-click-row{display:flex;align-items:center;gap:12px;margin:14px 0 4px}
.click-pop{position:relative;display:inline-flex;align-items:center;gap:8px;padding:9px 16px 9px 18px;border-radius:16px;background:linear-gradient(135deg,#2563eb,#3b82f6);color:#fff;box-shadow:0 9px 20px rgba(37,99,235,.22);transform-origin:center;animation:ddalkkak-pop .62s cubic-bezier(.2,.8,.2,1) both}
.click-word{font-size:20px;line-height:1;font-weight:900;letter-spacing:-1px;text-shadow:0 1px 0 rgba(0,0,0,.08)}
.click-spark{font-size:18px;line-height:1;animation:ddalkkak-spark 2.6s ease-in-out 1s infinite}
.click-caption{font-size:12px;color:#667085;font-weight:700;letter-spacing:-.2px}
.click-ray{position:absolute;width:7px;height:2px;border-radius:99px;background:#fbbf24;opacity:.85}
.click-ray.ray1{right:-7px;top:7px;transform:rotate(-35deg)}
.click-ray.ray2{right:-9px;bottom:8px;transform:rotate(28deg)}
.click-pop:hover{transform:translateY(-2px) rotate(-1deg);box-shadow:0 12px 24px rgba(37,99,235,.27)}
.click-pop:active{transform:scale(.96)}
@keyframes ddalkkak-pop{0%{opacity:0;transform:scale(.76) rotate(-4deg)}65%{opacity:1;transform:scale(1.06) rotate(1deg)}100%{opacity:1;transform:scale(1) rotate(0)}}
@keyframes ddalkkak-spark{0%,70%,100%{transform:scale(1) rotate(0);opacity:.95}78%{transform:scale(1.38) rotate(18deg);opacity:1}86%{transform:scale(.92) rotate(-8deg)}}
@media(max-width:600px){.hero-click-row{gap:9px;align-items:center}.click-pop{padding:8px 13px 8px 15px;border-radius:14px}.click-word{font-size:18px}.click-caption{font-size:11px;line-height:1.35}}
@media(prefers-reduced-motion:reduce){.click-pop,.click-spark{animation:none}}

/* 딸깍 시그니처를 메인 상단 제목에 배치 */
.brand-title{display:flex;align-items:center;gap:10px;margin:0 0 4px;font-size:20px;line-height:1}
.brand-click-pop{position:relative;display:inline-flex;align-items:center;gap:6px;padding:7px 13px 7px 15px;border-radius:13px;background:linear-gradient(135deg,#2563eb,#3b82f6);color:#fff;box-shadow:0 7px 16px rgba(37,99,235,.22);transform-origin:center;animation:ddalkkak-pop .62s cubic-bezier(.2,.8,.2,1) both;white-space:nowrap}
.brand-click-pop .click-word{font-size:17px}
.brand-click-pop .click-spark{font-size:15px}
.brand-report-title{font-weight:800;white-space:nowrap}
.brand-click-pop:hover{transform:translateY(-1px) rotate(-1deg);box-shadow:0 9px 18px rgba(37,99,235,.27)}
.brand-click-pop:active{transform:scale(.96)}
@media(max-width:600px){
  .brand-title{gap:7px;font-size:18px}
  .brand-click-pop{padding:6px 10px 6px 12px;border-radius:11px}
  .brand-click-pop .click-word{font-size:15px}
  .brand-click-pop .click-spark{font-size:13px}
}

/* v0.2.1 typography scale: aligned with 딸깍 여비정산서 */
:root{
  font-family:"Pretendard","Noto Sans KR","Malgun Gothic","Apple SD Gothic Neo",sans-serif;
  font-size:16px
}
body{line-height:1.55}
.app-shell{max-width:1580px;padding:0 24px 52px}
.topbar{height:104px}
.brand-wrap{gap:14px}
.brand-icon{width:70px;height:70px}
.brand-title{gap:11px;font-size:28px;line-height:1.15;margin-bottom:6px;letter-spacing:-.02em}
.brand-click-pop{padding:8px 15px 8px 17px;border-radius:14px}
.brand-click-pop .click-word{font-size:21px}
.brand-click-pop .click-spark{font-size:16px}
.brand-wrap p{font-size:14px;line-height:1.45}
.privacy-pill{padding:10px 15px;font-size:13px;font-weight:700}

.hero{gap:36px;padding:38px 40px}
.hero-copy{max-width:850px}
.eyebrow{padding:8px 12px;border-radius:9px;font-size:13px;font-weight:800}
.hero h2{font-size:32px;line-height:1.3;margin:16px 0 12px;letter-spacing:-.025em}
.hero p{font-size:15.5px;line-height:1.75;font-weight:500}
.upload-box{min-width:300px;min-height:165px;border-radius:16px}
.upload-icon{width:40px;height:40px;font-size:22px;margin-bottom:10px}
.upload-box strong{font-size:16px}
.upload-box small{font-size:13px;margin-top:6px}

.source-guide{margin-top:18px;padding:24px 26px}
.source-guide-head{margin-bottom:17px}
.source-guide-head h3{margin-top:10px;font-size:19px;letter-spacing:-.015em}
.source-format-badge{padding:8px 11px;font-size:12.5px}
.source-steps{gap:12px}
.source-step{gap:12px;padding:15px;border-radius:12px}
.source-step>b{width:32px;height:32px;font-size:13px}
.source-step strong{font-size:14px}
.source-step span{margin-top:4px;font-size:12.5px;line-height:1.5}
.source-guide-note{margin-top:14px;font-size:11.5px;line-height:1.65}

.notice{font-size:13.5px;line-height:1.6}
.control-bar{padding:20px 22px}
.file-info strong{font-size:14px}
.file-info small{font-size:12.5px}
.month-control label{font-size:13px}
.month-control select{min-width:145px}
select,input[type=text],input[type=number]{font-size:13.5px;padding:9px 11px}

.stat-card{padding:20px}
.stat-card span{font-size:14px}
.stat-card strong{font-size:26px}
.stat-card small{font-size:12.5px;margin-top:9px}

.tab{padding:12px 18px;font-size:13.5px}
.tab span{font-size:12px}
.panel{padding:24px}
.panel h3,.download-card h3{font-size:20px}
.panel-head p,.download-card p{font-size:13.5px;line-height:1.55}
table{font-size:13.5px}
th{padding:12px 11px;font-size:13px}
td{padding:10px 10px}
.cell-input,.cell-select{font-size:13px;padding:8px 9px}
.status-badge,.category-badge{font-size:12px}
.btn{min-height:42px;padding:11px 15px;font-size:13.5px}
.download-card{padding:24px 26px}

.expense-board-title strong,.detail-review-title strong{font-size:14.5px}
.expense-board-title small,.detail-review-title small{font-size:12.5px}
.drag-hint{font-size:11.5px;padding:7px 10px}
.expense-group-name strong{font-size:14px!important}
.expense-group-name .order-no{width:27px;height:27px;font-size:12px}
.expense-group-summary{font-size:12px}
.expense-group-summary b{font-size:12px}
.expense-main-line{grid-template-columns:118px minmax(300px,1fr) 120px}
.expense-date{font-size:12.5px}
.expense-detail{font-size:13.5px;line-height:1.55}
.expense-amount{font-size:13.5px}
.expense-field label{font-size:11.5px}
.expense-field>span{font-size:12.5px}
.expense-field .compact{font-size:12.5px}
.item-menu-pop button{font-size:12px}
.item-menu-pop small{font-size:10px}
.excluded-panel>summary{font-size:12px}
.excluded-item strong{font-size:12px}
.restore-btn{font-size:11.5px}

.app-footer{font-size:12px;padding-top:20px}
.version-status,.version-check-btn{font-size:11px}

@media(max-width:900px){
  .topbar{height:auto;padding:20px 0}
  .brand-icon{width:60px;height:60px}
  .brand-title{font-size:22px}
  .brand-click-pop .click-word{font-size:17px}
  .brand-wrap p{font-size:12.5px}
  .hero{padding:28px}
  .hero h2{font-size:27px}
  .hero p{font-size:14.5px}
  .source-guide{padding:22px}
}
@media(max-width:600px){
  .app-shell{padding:0 14px 34px}
  .brand-icon{width:54px;height:54px}
  .brand-title{font-size:20px;gap:7px}
  .brand-click-pop{padding:6px 10px 6px 12px}
  .brand-click-pop .click-word{font-size:16px}
  .hero{padding:23px}
  .hero h2{font-size:24px}
  .hero p{font-size:14px}
  .eyebrow{font-size:11.5px}
  .upload-box{min-height:150px}
  .source-guide-head h3{font-size:17px}
  .source-step strong{font-size:13px}
  .source-step span{font-size:11.5px}
}

/* V2.0 visual refinement after PC review */
body{word-break:keep-all}
.topbar{height:116px}
.brand-icon{width:76px;height:76px}
.brand-title{font-size:34px;gap:12px;margin-bottom:7px;letter-spacing:-.03em}
.brand-click-pop{padding:9px 16px 9px 18px;border-radius:15px}
.brand-click-pop .click-word{font-size:24px}
.brand-click-pop .click-spark{font-size:17px}
.brand-wrap p{font-size:14.5px;line-height:1.5}
.privacy-pill{font-size:13.5px;padding:10px 16px}

.hero{padding:40px 40px;gap:40px}
.hero-copy{max-width:900px}
.hero .eyebrow{font-size:13.5px}
.hero h2{font-size:34px;line-height:1.28;margin:17px 0 13px}
.hero p{max-width:860px;font-size:16px;line-height:1.78}
.upload-box{min-width:320px;min-height:174px}
.upload-box strong{font-size:16.5px}
.upload-box small{font-size:13.5px}

.source-guide{padding:26px 26px}
.source-guide-head h3{font-size:20.5px}
.source-format-badge{font-size:12.5px}
.source-step{padding:16px 14px}
.source-step strong{font-size:14.5px}
.source-step span{font-size:12.5px}
.source-guide-note{font-size:11.8px}

.app-footer{font-size:12.5px;margin-top:22px}
.version-status,.version-check-btn{font-size:11.5px}

.hero p,.source-guide-note,.source-step span,.panel-head p,.download-card p{word-break:keep-all;overflow-wrap:break-word}

@media(max-width:900px){
  .topbar{height:auto}
  .brand-icon{width:62px;height:62px}
  .brand-title{font-size:24px}
  .brand-click-pop .click-word{font-size:18px}
  .hero h2{font-size:28px}
  .hero p{font-size:14.5px}
}
@media(max-width:600px){
  .brand-icon{width:54px;height:54px}
  .brand-title{font-size:20px}
  .brand-click-pop .click-word{font-size:16px}
  .hero h2{font-size:24px}
  .hero p{font-size:14px}
}

/* title strip inspired by 장바구니품의서 */
.topbar{
  position:relative;
  z-index:1;
  margin-bottom:20px;
}
.topbar::before{
  content:"";
  position:absolute;
  z-index:-1;
  top:0;
  bottom:0;
  left:50%;
  width:100vw;
  transform:translateX(-50%);
  background:linear-gradient(90deg,#f8fbff 0%,#f4f8ff 58%,#fbfdff 100%);
  border-bottom:1px solid #dbe7f5;
  box-shadow:0 4px 14px rgba(37,99,235,.035);
}
.brand-title{flex-wrap:wrap}
.title-version-badge{
  display:inline-flex;
  align-items:center;
  min-height:30px;
  padding:5px 10px;
  border-radius:999px;
  border:1px solid #d9e6fb;
  background:#eef5ff;
  color:#3568b8;
  font-size:12px;
  font-weight:850;
  letter-spacing:0;
  white-space:nowrap;
  box-shadow:0 2px 6px rgba(37,99,235,.06);
}
@media(max-width:600px){
  .topbar{margin-bottom:14px}
  .title-version-badge{min-height:26px;padding:4px 8px;font-size:10.5px}
}

/* polish source guide, subtitle and footer scale */
.brand-subtitle{
  font-size:16px!important;
  line-height:1.55!important;
  font-weight:550;
  color:#5b6b7e!important;
  letter-spacing:-.01em;
}
.brand-subtitle strong{font-weight:850}

.source-guide{
  padding:30px 30px 28px;
}
.source-guide-head{
  margin-bottom:20px;
}
.source-guide-head .eyebrow{
  font-size:14px;
}
.source-guide-head h3{
  margin-top:11px;
  font-size:22px;
  line-height:1.35;
}
.source-format-badge{
  padding:9px 12px;
  font-size:13.5px;
  font-weight:850;
}
.source-steps{
  gap:14px;
}
.source-step{
  min-height:82px;
  gap:13px;
  padding:17px 16px;
}
.source-step>b{
  width:34px;
  height:34px;
  font-size:14px;
}
.source-step strong{
  font-size:15.5px;
  line-height:1.35;
}
.source-step span{
  margin-top:5px;
  font-size:13.5px;
  line-height:1.55;
}
.source-guide-note{
  margin-top:16px;
  font-size:12.8px;
  line-height:1.7;
}

.app-footer{
  margin-top:24px;
  padding:15px 16px;
  border:1px solid #e1e9f3;
  border-radius:14px;
  background:#f8fbff;
  font-size:13.5px;
  color:#5b6b7e;
}
.footer-meta strong{
  font-size:14px;
  color:#26384f;
}
.version-check{
  gap:10px;
}
.version-status{
  padding:7px 10px;
  font-size:12px;
}
.version-check-btn{
  min-height:34px;
  padding:7px 11px;
  font-size:12px;
  border-radius:9px;
}

@media(max-width:900px){
  .brand-subtitle{font-size:13.5px!important}
  .source-guide{padding:24px}
  .source-guide-head h3{font-size:19px}
  .source-step{min-height:auto;padding:14px}
  .source-step strong{font-size:14px}
  .source-step span{font-size:12.5px}
  .source-guide-note{font-size:11.8px}
  .app-footer{font-size:12.5px}
}
@media(max-width:600px){
  .source-guide{padding:20px}
  .source-guide-head h3{font-size:17.5px}
  .source-format-badge{font-size:11.5px}
  .app-footer{padding:13px 14px}
}

/* V2.1 work-area readability */
#workArea{font-size:15px}

/* 파일/기준월 바 */
#workArea .control-bar{padding:22px 24px;gap:24px}
#workArea .file-info{gap:12px}
#workArea .file-info strong{font-size:16px;line-height:1.4}
#workArea .file-info small{font-size:13.5px;line-height:1.5;margin-top:4px}
#workArea .status-dot{width:11px;height:11px;box-shadow:0 0 0 5px #ecfdf3}
#workArea .month-control{gap:10px}
#workArea .month-control label{font-size:14px;font-weight:700}
#workArea .month-control select{min-width:150px;font-size:14.5px;padding:10px 12px}
#workArea .control-bar .btn{font-size:14px;min-height:44px;padding:10px 15px}

/* 안내문 */
#workArea .notice{font-size:14.5px;line-height:1.65;padding:14px 17px}
#workArea .notice.info{margin:17px 0}

/* 요약 카드 */
#workArea .stat-grid{gap:16px;margin:18px 0}
#workArea .stat-card{padding:22px 20px;min-height:112px}
#workArea .stat-card span{font-size:15.5px}
#workArea .stat-card strong{font-size:30px;line-height:1}
#workArea .stat-card small{font-size:13.5px;line-height:1.45;margin-top:14px}

/* 탭 */
#workArea .tabs{padding:8px;gap:7px;margin-bottom:18px}
#workArea .tab{padding:13px 18px;font-size:15px;border-radius:11px}
#workArea .tab span{min-width:25px;padding:3px 7px;font-size:12.5px}

/* 검토 패널 */
#workArea .panel{padding:26px;margin-bottom:18px}
#workArea .panel-head{margin-bottom:18px}
#workArea .panel h3{font-size:23px;line-height:1.3;margin-bottom:7px}
#workArea .panel-head p{font-size:14.5px;line-height:1.65}
#workArea .panel-head .btn{font-size:14px;min-height:44px;padding:11px 16px}
#workArea .notice.subtle{font-size:14px;margin-bottom:18px}

/* 업무추진비 분류 영역 */
#workArea .expense-board-wrap{padding:19px;border-radius:15px}
#workArea .expense-board-title{margin-bottom:15px}
#workArea .expense-board-title strong{font-size:16px}
#workArea .expense-board-title small{font-size:13.5px;line-height:1.6;margin-top:5px}
#workArea .drag-hint{font-size:12.5px;padding:7px 11px}
#workArea .expense-board.vertical{gap:14px}
#workArea .expense-board.vertical .expense-drop-group>header{padding:14px 16px}
#workArea .expense-group-name{gap:10px}
#workArea .expense-group-name .order-no{width:30px;height:30px;font-size:13px}
#workArea .expense-group-name strong{font-size:15.5px!important}
#workArea .expense-group-summary{gap:16px;font-size:13.5px}
#workArea .expense-group-summary b{font-size:13.5px}
#workArea .expense-board.vertical .expense-dropzone{padding:10px 12px;gap:9px;min-height:62px}
#workArea .expense-board.vertical .empty-drop{min-height:44px;font-size:12.5px}
#workArea .expense-board.vertical .expense-drag-item{border-radius:10px}
#workArea .expense-board.vertical .drag-handle{width:42px;flex-basis:42px;font-size:18px}
#workArea .expense-row-content{padding:12px 13px}
#workArea .expense-main-line{grid-template-columns:125px minmax(320px,1fr) 125px;gap:14px}
#workArea .expense-date{font-size:13.5px}
#workArea .expense-detail{font-size:14.5px;line-height:1.6}
#workArea .expense-amount{font-size:14.5px}
#workArea .expense-sub-line{gap:10px 14px;margin-top:10px;padding-top:10px}
#workArea .expense-field{gap:8px}
#workArea .expense-field label{font-size:12.5px}
#workArea .expense-field>span{font-size:13.5px}
#workArea .expense-field .compact{font-size:13.5px;padding:8px 9px}
#workArea .item-menu>summary{width:38px;height:38px;font-size:22px;margin-top:8px}
#workArea .item-menu-pop{width:184px;padding:8px}
#workArea .item-menu-pop button{font-size:12.5px;padding:9px 10px}
#workArea .item-menu-pop small{font-size:10.5px}
#workArea .excluded-panel>summary{font-size:13px;padding:13px 15px}
#workArea .excluded-item{padding:11px 14px}
#workArea .excluded-item>div{font-size:12px}
#workArea .excluded-item strong{font-size:13px}
#workArea .restore-btn{font-size:12px;padding:8px 11px}

/* 법인카드·상품권 표 */
#workArea .table-scroll{border-radius:13px}
#workArea table{font-size:14px}
#workArea th{font-size:13.5px;padding:13px 11px}
#workArea td{font-size:14px;padding:11px 10px;line-height:1.55}
#workArea .cell-input,
#workArea .cell-select{font-size:13.5px;padding:8px 9px}
#workArea .status-badge,
#workArea .category-badge{font-size:12.5px;padding:6px 9px}

/* 다운로드 */
#workArea .download-card{padding:25px 27px}
#workArea .download-card h3{font-size:21px}
#workArea .download-card p{font-size:14px;line-height:1.55}
#workArea .download-actions{gap:10px}
#workArea .download-actions .btn{font-size:14px;min-height:44px;padding:11px 15px}

/* 미리보기 */
.preview-paper{font-size:14px}
.preview-paper h2{font-size:23px}
.preview-paper h4{font-size:16px}
.preview-paper table{font-size:12.5px}

/* 작은 화면은 밀도를 조금 회수 */
@media(max-width:900px){
  #workArea{font-size:14px}
  #workArea .control-bar{padding:18px}
  #workArea .file-info strong{font-size:14.5px}
  #workArea .file-info small{font-size:12.5px}
  #workArea .stat-card{min-height:100px;padding:18px}
  #workArea .stat-card span{font-size:14px}
  #workArea .stat-card strong{font-size:25px}
  #workArea .stat-card small{font-size:12px}
  #workArea .panel{padding:21px}
  #workArea .panel h3{font-size:20px}
  #workArea .panel-head p{font-size:13px}
  #workArea .expense-main-line{grid-template-columns:100px minmax(180px,1fr) 100px}
  #workArea .expense-date{font-size:12px}
  #workArea .expense-detail,
  #workArea .expense-amount{font-size:13px}
}
@media(max-width:600px){
  #workArea .stat-card{min-height:auto}
  #workArea .tab{font-size:13px;padding:11px 13px}
  #workArea .panel{padding:18px}
  #workArea .expense-group-name strong{font-size:13.5px!important}
  #workArea .expense-group-summary{font-size:11.5px}
  #workArea .expense-group-summary b{font-size:11.5px}
  #workArea .expense-main-line{grid-template-columns:1fr auto}
  #workArea .expense-date{grid-column:1/-1}
  #workArea table{font-size:12.5px}
  #workArea th,#workArea td{font-size:12.5px}
}

/* V2.2.1 compact tab + one-line expense workflow */
#workArea{font-size:15px}
#workArea .control-bar{margin-top:14px;padding:17px 20px}
#workArea .notice.info{margin:12px 0 14px;padding:12px 15px}

/* 요약카드 자체를 탭으로 사용 */
.stat-tab-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:0 0 14px}
.stat-tab{
  appearance:none;
  width:100%;
  text-align:left;
  cursor:pointer;
  min-height:88px!important;
  padding:17px 18px!important;
  transition:border-color .16s ease,box-shadow .16s ease,background .16s ease,transform .16s ease;
}
.stat-tab:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(31,41,55,.07)}
.stat-tab.active{background:#f8fbff;box-shadow:0 0 0 2px rgba(37,99,235,.10),0 8px 22px rgba(31,41,55,.06)}
.stat-tab.expense.active{border-color:#f0b429}
.stat-tab.cardpay.active{border-color:#3b82f6}
.stat-tab.gift.active{border-color:#12b76a}
.stat-tab>div{display:flex;align-items:center;justify-content:space-between;gap:12px}
.stat-tab span{font-size:15px!important}
.stat-tab strong{font-size:27px!important}
.stat-tab small{display:flex!important;align-items:center;gap:9px;flex-wrap:wrap;font-size:12.5px!important;margin-top:10px!important}
.review-inline{font-style:normal;display:inline-flex;align-items:center;gap:4px;padding:3px 7px;border-radius:999px;background:#fff1f0;color:#b42318;font-size:11px;font-weight:750}
.review-inline b{font-size:11px}

/* 패널 사이 여백 축소 */
#workArea .panel{padding:20px;margin-bottom:14px}
#workArea .panel-head{margin-bottom:13px}
#workArea .panel h3{font-size:22px;margin-bottom:5px}
#workArea .panel-head p{font-size:13.5px;line-height:1.55}
#workArea .notice.subtle{margin-bottom:13px;padding:11px 14px;font-size:13px}
#workArea .expense-board-wrap{margin-bottom:0;padding:14px;border-radius:14px}
#workArea .expense-board-title{margin-bottom:10px}
#workArea .expense-board-title strong{font-size:15px}
#workArea .expense-board-title small{font-size:12.5px;line-height:1.5}

/* 5개 분류 영역을 명확하게 구분 */
#workArea .expense-board.vertical{gap:10px}
#workArea .expense-drop-group{
  border-width:1px;
  border-left-width:5px;
  border-radius:12px;
  overflow:visible;
}
#workArea .expense-drop-group>header{padding:10px 13px}
#workArea .expense-drop-group.group-0{border-left-color:#3b82f6;background:#f8fbff}
#workArea .expense-drop-group.group-0>header{background:#edf5ff}
#workArea .expense-drop-group.group-1{border-left-color:#ef4444;background:#fffafa}
#workArea .expense-drop-group.group-1>header{background:#fff1f2}
#workArea .expense-drop-group.group-2{border-left-color:#10b981;background:#f9fffc}
#workArea .expense-drop-group.group-2>header{background:#ecfdf5}
#workArea .expense-drop-group.group-3{border-left-color:#8b5cf6;background:#fcfaff}
#workArea .expense-drop-group.group-3>header{background:#f5f3ff}
#workArea .expense-drop-group.group-4{border-left-color:#64748b;background:#fbfcfd}
#workArea .expense-drop-group.group-4>header{background:#f1f5f9}
#workArea .expense-group-name .order-no{width:27px;height:27px;font-size:12px}
#workArea .expense-group-name strong{font-size:14.5px!important}
#workArea .expense-group-summary{font-size:12.5px;gap:13px}
#workArea .expense-group-summary b{font-size:12.5px}
#workArea .expense-board.vertical .expense-dropzone{min-height:48px;padding:7px 9px;gap:6px;background:rgba(255,255,255,.72)}
#workArea .expense-board.vertical .empty-drop{
  min-height:34px;
  font-size:11.5px;
  background:rgba(255,255,255,.7);
  border-color:#cfd8e6
}

/* 지출건 한 줄 */
#workArea .expense-drag-item.one-line{
  display:grid;
  grid-template-columns:38px 112px minmax(280px,1.55fr) minmax(150px,.85fr) minmax(210px,1fr) 108px 36px;
  gap:9px;
  align-items:center;
  min-height:46px;
  padding:0 5px 0 0;
  overflow:visible;
}
#workArea .expense-drag-item.one-line.has-privacy{
  grid-template-columns:38px 112px minmax(240px,1.35fr) minmax(145px,.75fr) minmax(180px,.9fr) minmax(175px,.9fr) 108px 36px;
}
#workArea .expense-drag-item.one-line .drag-handle{
  width:38px;
  height:100%;
  min-height:44px;
  flex-basis:auto;
  font-size:17px;
  border-radius:9px 0 0 9px;
}
#workArea .expense-drag-item.one-line .expense-date{font-size:12.5px}
#workArea .expense-drag-item.one-line .expense-detail{
  min-width:0;
  font-size:13.5px;
  line-height:1.35;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
#workArea .expense-drag-item.one-line .target-inline{
  min-width:0;
  width:100%;
  margin:0;
  padding:7px 8px;
  font-size:12.5px;
  background:#fffdf4;
}
#workArea .expense-drag-item.one-line .expense-source{
  min-width:0;
  color:#5f6f82;
  font-size:12px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
#workArea .expense-drag-item.one-line .privacy-inline{
  min-width:0;
  width:100%;
  margin:0;
  padding:7px 8px;
  font-size:12px;
}
#workArea .expense-drag-item.one-line .expense-amount{
  font-size:13.5px;
  text-align:right;
}
#workArea .expense-drag-item.one-line .item-menu{align-self:center}
#workArea .expense-drag-item.one-line .item-menu>summary{width:32px;height:32px;margin:0;font-size:20px}
#workArea .item-menu-pop{top:34px}

#workArea .excluded-panel{margin-top:8px}

/* 모바일/중간폭에서는 줄바꿈 허용 */
@media(max-width:1180px){
  #workArea .expense-drag-item.one-line,
  #workArea .expense-drag-item.one-line.has-privacy{
    grid-template-columns:36px 100px minmax(220px,1fr) minmax(145px,.75fr) 102px 34px;
  }
  #workArea .expense-drag-item.one-line .expense-source{display:none}
  #workArea .expense-drag-item.one-line.has-privacy .privacy-inline{grid-column:auto}
}
@media(max-width:800px){
  .stat-tab-grid{grid-template-columns:1fr}
  .stat-tab{min-height:76px!important}
  #workArea .expense-drag-item.one-line,
  #workArea .expense-drag-item.one-line.has-privacy{
    grid-template-columns:34px 92px minmax(160px,1fr) 96px 32px;
  }
  #workArea .expense-drag-item.one-line .target-inline,
  #workArea .expense-drag-item.one-line .privacy-inline{display:none}
}

/* V2.2.4 hero type balance */
.hero .eyebrow{
  font-size:15.5px;
  font-weight:850;
  padding:9px 13px;
  border-radius:10px;
}
.hero h2{
  font-size:28px;
  line-height:1.32;
  margin:18px 0 12px;
  letter-spacing:-.02em;
}
.hero p{
  max-width:860px;
  font-size:15.5px;
  line-height:1.72;
}
@media(max-width:900px){
  .hero .eyebrow{font-size:13.5px;padding:8px 11px}
  .hero h2{font-size:25px}
}
@media(max-width:600px){
  .hero .eyebrow{font-size:12px;padding:7px 10px}
  .hero h2{font-size:22px}
}

/* V2.2.5 compact upload guide + stable drag emphasis */
.hero{align-items:stretch}
.upload-side{width:min(360px,100%);display:flex;flex-direction:column;gap:8px;flex:0 0 auto}
.upload-side .upload-box{min-width:0;width:100%;min-height:145px}
.source-quick-guide{
  border:1px solid #dbe6f3;
  border-radius:12px;
  background:#f8fbff;
  overflow:hidden;
}
.source-quick-guide>summary{
  list-style:none;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:10px 12px;
  color:#42556d;
  font-size:12.5px;
}
.source-quick-guide>summary::-webkit-details-marker{display:none}
.source-quick-guide>summary strong{font-size:12.5px;color:#2f4f74}
.source-quick-guide>summary span{color:#2563eb;font-size:11.5px;font-weight:750}
.source-quick-guide[open]>summary{border-bottom:1px solid #e5edf6;background:#f3f8ff}
.source-quick-body{padding:10px 12px 11px}
.source-quick-path{display:flex;align-items:center;gap:5px;flex-wrap:wrap;color:#344054;font-size:11.5px;line-height:1.55}
.source-quick-path i{font-style:normal;color:#98a2b3}
.source-quick-body>small{display:block;margin-top:6px;color:#667085;font-size:10.5px;line-height:1.55}

.drag-emphasis{
  color:#1d4ed8;
  font-weight:900;
  background:#eaf2ff;
  padding:1px 5px;
  border-radius:5px;
}
#workArea .drag-hint{
  background:#dbeafe;
  color:#1d4ed8;
  border:1px solid #b9d3f2;
  font-weight:850;
}
#workArea .expense-board.vertical .drag-handle{
  background:#eef5ff;
  color:#2563eb;
  border-right-color:#cfe0ff;
  font-weight:900;
}
#workArea .expense-board.vertical .drag-handle:hover{
  background:#dbeafe;
  color:#1d4ed8;
}
@media(max-width:900px){
  .hero{align-items:stretch}
  .upload-side{width:100%}
  .upload-side .upload-box{min-height:135px}
}

/* V2.2.7 upload-first layout + readability */
.hero-upload-layout{
  display:grid;
  grid-template-columns:minmax(300px,360px) minmax(0,1fr);
  align-items:stretch;
  gap:30px;
  padding:30px 34px;
}
.hero-upload-box{
  min-width:0!important;
  width:100%;
  min-height:190px;
  align-self:stretch;
}
.hero-copy-right{
  max-width:none;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.hero-copy-right .eyebrow{align-self:flex-start}
.hero-copy-right h2{font-size:27px;margin:15px 0 10px}
.hero-copy-right p{font-size:15.5px;line-height:1.68;max-width:900px}
.source-route-inline{
  margin-top:15px;
  padding:12px 14px;
  border-left:4px solid #3b82f6;
  border-radius:8px;
  background:#f7faff;
  color:#475467;
}
.source-route-inline>strong{
  display:block;
  margin-bottom:5px;
  color:#2456a6;
  font-size:13.5px;
}
.source-route-inline>span{
  display:block;
  color:#344054;
  font-size:13.5px;
  line-height:1.55;
}
.source-route-inline>small{
  display:block;
  margin-top:4px;
  color:#667085;
  font-size:11.5px;
  line-height:1.55;
}

/* 기존 접이식 경로 UI는 더 이상 사용하지 않음 */
.source-quick-guide{display:none!important}

/* 드래그는 배경 없이 파란 글자 자체로 강조 */
.drag-emphasis{
  color:#1d4ed8!important;
  background:transparent!important;
  padding:0!important;
  border-radius:0!important;
  font-weight:900!important;
}
#workArea .drag-hint{
  color:#1d4ed8;
  background:#eef5ff;
  font-size:13px;
}

/* 작업화면 글자 한 단계 확대 */
#workArea .file-info strong{font-size:16.5px}
#workArea .file-info small{font-size:14px}
#workArea .month-control label{font-size:14.5px}
#workArea .month-control select{font-size:15px}

.stat-tab span{font-size:16px!important}
.stat-tab strong{font-size:29px!important}
.stat-tab small{font-size:13px!important}
.review-inline,.review-inline b{font-size:11.5px}

#workArea .panel h3{font-size:23.5px}
#workArea .panel-head p{font-size:14.5px}
#workArea .notice.subtle{font-size:13.5px}
#workArea .expense-board-title strong{font-size:16.5px}
#workArea .expense-board-title small{font-size:13.5px}
#workArea .expense-group-name strong{font-size:15.5px!important}
#workArea .expense-group-summary,
#workArea .expense-group-summary b{font-size:13px}
#workArea .expense-drag-item.one-line .expense-date{font-size:13.5px}
#workArea .expense-drag-item.one-line .expense-detail{font-size:14.5px}
#workArea .expense-drag-item.one-line .target-inline{font-size:13.5px}
#workArea .expense-drag-item.one-line .expense-source{font-size:13px}
#workArea .expense-drag-item.one-line .privacy-inline{font-size:13px}
#workArea .expense-drag-item.one-line .expense-amount{font-size:14.5px}

#workArea table{font-size:14.5px}
#workArea th{font-size:14px}
#workArea td{font-size:14.5px}

@media(max-width:900px){
  .hero-upload-layout{grid-template-columns:1fr;gap:18px;padding:24px}
  .hero-upload-box{min-height:155px}
  .hero-copy-right h2{font-size:25px}
  .source-route-inline>span{font-size:12.5px}
}
@media(max-width:600px){
  .hero-upload-layout{padding:20px}
  .hero-upload-box{min-height:145px}
  .hero-copy-right h2{font-size:22px}
  .hero-copy-right p{font-size:14px}
  .source-route-inline{padding:10px 12px}
  .source-route-inline>strong{font-size:12.5px}
  .source-route-inline>span{font-size:11.5px}
  .source-route-inline>small{font-size:10.5px}
}

/* V2.2.9 four-card summary + download hub */
.stat-tab-grid{
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
}
.download-hub{
  position:relative;
  min-height:88px!important;
  padding:0!important;
  border-top:3px solid #0f8f83!important;
  overflow:visible;
}
.download-hub>summary{
  list-style:none;
  cursor:pointer;
  height:100%;
  min-height:85px;
  padding:17px 18px;
  border-radius:13px;
  display:block;
}
.download-hub>summary::-webkit-details-marker{display:none}
.download-hub>summary>div{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.download-hub>summary span{
  font-size:16px;
  font-weight:800;
  color:#172033;
}
.download-hub>summary small{
  display:block;
  margin-top:10px;
  color:#667085;
  font-size:13px;
}
.download-symbol{
  width:31px;
  height:31px;
  display:grid;
  place-items:center;
  border-radius:9px;
  background:#e8f7f4;
  color:#0f8f83;
  font-size:19px;
  line-height:1;
}
.download-hub[open]{
  box-shadow:0 0 0 2px rgba(15,143,131,.10),0 8px 22px rgba(31,41,55,.06);
}
.download-hub-menu{
  position:absolute;
  z-index:40;
  top:calc(100% + 7px);
  right:0;
  width:235px;
  padding:9px;
  display:grid;
  gap:7px;
  border:1px solid #d9e4ea;
  border-radius:12px;
  background:#fff;
  box-shadow:0 14px 32px rgba(31,41,55,.14);
}
.download-hub-menu .btn{
  width:100%;
  justify-content:center;
  font-size:12.5px;
  min-height:38px;
}
@media(max-width:1050px){
  .stat-tab-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:650px){
  .stat-tab-grid{grid-template-columns:1fr}
  .download-hub-menu{left:0;right:auto;width:min(100%,260px)}
}

/* V2.2.10 hero/workspace type rebalance */
/* 첫 화면 소개는 간결하게 */
.hero-copy-right{
  justify-content:center;
}
.hero-copy-right .hero-one-line{
  margin:0 0 12px;
  font-size:23px;
  line-height:1.42;
  letter-spacing:-.018em;
  font-weight:800;
  color:#172033;
}
.hero-copy-right .hero-one-line>span{
  color:#2563eb;
  font-weight:850;
}
.hero-copy-right p{
  font-size:15px;
  line-height:1.65;
}
.source-route-inline{
  margin-top:13px;
}

/* 경조사 자동 보호 강조 */
.auto-protect{
  color:#d92d20;
  font-weight:900;
}

/* 실제 작업영역을 소개영역보다 더 또렷하게 */
#workArea .file-info strong{font-size:17px}
#workArea .file-info small{font-size:14.5px}
#workArea .month-control label{font-size:15px}
#workArea .month-control select{font-size:15.5px}

.stat-tab span{font-size:16.5px!important}
.stat-tab strong{font-size:30px!important}
.stat-tab small{font-size:13.5px!important}
.download-hub>summary span{font-size:16.5px}
.download-hub>summary small{font-size:13.5px}

#workArea .panel h3{
  font-size:25px;
  line-height:1.3;
}
#workArea .panel-head p{
  font-size:15px;
  line-height:1.6;
}
#workArea .notice.subtle{
  font-size:14.5px;
  line-height:1.65;
}
#workArea .expense-board-title strong{font-size:17.5px}
#workArea .expense-board-title small{
  font-size:14.5px;
  line-height:1.55;
}
#workArea .drag-hint{font-size:13.5px}
#workArea .expense-group-name strong{font-size:16.5px!important}
#workArea .expense-group-summary,
#workArea .expense-group-summary b{font-size:14px}

#workArea .expense-drag-item.one-line{
  min-height:50px;
}
#workArea .expense-drag-item.one-line .expense-date{font-size:14px}
#workArea .expense-drag-item.one-line .expense-detail{
  font-size:15.5px;
  line-height:1.4;
}
#workArea .expense-drag-item.one-line .target-inline{
  font-size:14px;
}
#workArea .expense-drag-item.one-line .expense-source{
  font-size:13.5px;
}
#workArea .expense-drag-item.one-line .privacy-inline{
  font-size:13.5px;
}
#workArea .expense-drag-item.one-line .expense-amount{
  font-size:15.5px;
}

/* 카드/상품권 표도 같은 비율로 */
#workArea table{font-size:15px}
#workArea th{
  font-size:14.5px;
  padding:13px 11px;
}
#workArea td{
  font-size:15px;
  padding:12px 10px;
}

/* 첫 화면은 작업화면보다 살짝 작게 유지 */
@media(max-width:900px){
  .hero-copy-right .hero-one-line{font-size:21px}
  .hero-copy-right p{font-size:14px}
  #workArea .panel h3{font-size:22px}
  #workArea .panel-head p{font-size:13.5px}
  #workArea .expense-board-title strong{font-size:15.5px}
  #workArea .expense-board-title small{font-size:13px}
  #workArea .expense-drag-item.one-line .expense-detail,
  #workArea .expense-drag-item.one-line .expense-amount{font-size:13.5px}
}
@media(max-width:600px){
  .hero-copy-right .hero-one-line{font-size:19px}
  .hero-copy-right p{font-size:13.5px}
}

/* V2.3.0 no-period-selector upload state */
.hero-upload-box.has-file{
  border-style:solid;
  border-color:#8fc7ad;
  background:#f5fbf7;
}
.hero-upload-box.has-file .upload-icon{
  background:#12b76a;
}
.hero-upload-box #uploadFileName{
  display:block;
  max-width:100%;
  padding:0 14px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  text-align:center;
}
.hero-upload-box #uploadFileMeta{
  max-width:100%;
  padding:0 14px;
  text-align:center;
  line-height:1.45;
}
#workArea{margin-top:14px}
