:root{color:#14213d;font-synthesis:none;background:#f4f7fb;font-family:Inter,Pretendard,Noto Sans KR,system-ui,sans-serif}*{box-sizing:border-box}body{background-color:#f4f7fb;background-image:linear-gradient(#dbe6f4 1px,#0000 1px),linear-gradient(90deg,#dbe6f4 1px,#0000 1px);background-size:28px 28px;min-width:320px;min-height:100vh;margin:0}button,input{font:inherit}button,a,label{-webkit-tap-highlight-color:transparent}.shell{width:min(860px,100% - 32px);margin:0 auto;padding:52px 0 72px}.page-header{margin-bottom:28px}.eyebrow{color:#1957d2;margin:0 0 8px;font-size:.78rem;font-weight:800}h1,h2,p{margin-top:0}h1{color:#0b1736;letter-spacing:0;margin-bottom:10px;font-size:clamp(2rem,6vw,3.2rem);line-height:1.1}h2{color:#0b1736;letter-spacing:0;margin-bottom:7px;font-size:1.2rem}.page-header>p:last-child,.upload-panel>div>p{color:#5d6b82;margin-bottom:0;line-height:1.6}.upload-panel,.files-section{background:#fff;border:1px solid #b9c9df;border-radius:8px;box-shadow:0 8px 24px #122a5412}.upload-panel{padding:24px}.upload-form{grid-template-columns:minmax(0,1fr) 140px;gap:12px;margin-top:20px;display:grid}.file-picker{cursor:pointer;background:#f9fbff;border:1px solid #8da7cb;border-radius:6px;justify-content:space-between;align-items:center;gap:12px;min-height:54px;padding:10px 14px;display:flex;overflow:hidden}.file-picker span{color:#40516e;text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.file-picker strong{color:#1957d2;flex:none}.primary-button,.secondary-button,.danger-button{cursor:pointer;border-radius:6px;justify-content:center;align-items:center;min-height:44px;padding:10px 16px;font-weight:750;text-decoration:none;display:inline-flex}.primary-button{color:#fff;background:#1957d2;border:1px solid #1957d2}.primary-button:disabled{cursor:wait;opacity:.62}.secondary-button{color:#173664;background:#fff;border:1px solid #9eb2cf}.danger-button{color:#a51f34;background:#fff8f8;border:1px solid #df8c96}.danger-button.solid{color:#fff;background:#b52b40}button:focus-visible,a:focus-visible,.file-picker:focus-within{outline-offset:2px;outline:3px solid #1957d247}.file-picker:has(input:focus-visible){outline-offset:2px;outline:3px solid #1957d247}.status{color:#40516e;min-height:24px;margin:14px 0 0;font-weight:650}.status.success{color:#157143}.status.error{color:#b2223b}.files-section{margin-top:20px;padding:24px}.section-heading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.section-heading h2{margin-bottom:0}.file-count,.type-badge{color:#1957d2;background:#eef4ff;border:1px solid #a9bfde;border-radius:4px;justify-content:center;align-items:center;font-size:.8rem;font-weight:800;display:inline-flex}.file-count{min-width:44px;min-height:28px;padding:3px 8px}.empty-state{color:#617189;text-align:center;background:#f9fbfe;border:1px dashed #a9bad2;border-radius:6px;padding:42px 16px}.file-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.file-card{background:#fff;border:1px solid #d2ddeb;border-radius:6px;grid-template-columns:64px minmax(0,1fr) auto;align-items:center;gap:14px;padding:14px;display:grid}.type-badge{overflow-wrap:anywhere;width:64px;min-height:42px;padding:4px}.file-details{gap:5px;min-width:0;display:grid}.file-name{color:#17284a;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.file-meta{color:#6a7890;font-size:.86rem}.file-actions,.confirm-actions{gap:8px;display:flex}.confirm-row{background:#fff4f5;border-left:3px solid #b52b40;grid-column:1/-1;justify-content:space-between;align-items:center;gap:12px;padding:12px;display:flex}.confirm-message{color:#7f1d2d;margin:0;font-weight:700}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.hidden{display:none}@media (width<=640px){.shell{width:min(100% - 20px,860px);padding:28px 0 48px}.upload-panel,.files-section{padding:18px}.upload-form{grid-template-columns:1fr}.file-card{grid-template-columns:52px minmax(0,1fr)}.type-badge{width:52px}.file-actions{grid-column:1/-1}.file-actions>*,.confirm-actions>*{flex:1}.confirm-row{flex-direction:column;align-items:stretch}}
