@import"https://fonts.googleapis.com/css2?family=Playfair+Display:wght@700;900&display=swap";@font-face{font-family:Pretendard;src:url(https://cdn.jsdelivr.net/gh/projectnoonnu/pretendard@1.0/Pretendard-Thin.woff2) format("woff2");font-weight:100;font-display:swap}@font-face{font-family:Pretendard;src:url(https://cdn.jsdelivr.net/gh/projectnoonnu/pretendard@1.0/Pretendard-ExtraLight.woff2) format("woff2");font-weight:200;font-display:swap}@font-face{font-family:Pretendard;src:url(https://cdn.jsdelivr.net/gh/projectnoonnu/pretendard@1.0/Pretendard-Light.woff2) format("woff2");font-weight:300;font-display:swap}@font-face{font-family:Pretendard;src:url(https://cdn.jsdelivr.net/gh/projectnoonnu/pretendard@1.0/Pretendard-Regular.woff2) format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Pretendard;src:url(https://cdn.jsdelivr.net/gh/projectnoonnu/pretendard@1.0/Pretendard-Medium.woff2) format("woff2");font-weight:500;font-display:swap}@font-face{font-family:Pretendard;src:url(https://cdn.jsdelivr.net/gh/projectnoonnu/pretendard@1.0/Pretendard-SemiBold.woff2) format("woff2");font-weight:600;font-display:swap}@font-face{font-family:Pretendard;src:url(https://cdn.jsdelivr.net/gh/projectnoonnu/pretendard@1.0/Pretendard-Bold.woff2) format("woff2");font-weight:700;font-display:swap}@font-face{font-family:Pretendard;src:url(https://cdn.jsdelivr.net/gh/projectnoonnu/pretendard@1.0/Pretendard-ExtraBold.woff2) format("woff2");font-weight:800;font-display:swap}@font-face{font-family:Pretendard;src:url(https://cdn.jsdelivr.net/gh/projectnoonnu/pretendard@1.0/Pretendard-Black.woff2) format("woff2");font-weight:900;font-display:swap}:root{--bg: #f7f7f7;--surface: #ffffff;--text: #111;--text-sub: #555;--text-hint: #aaa;--border: #e0e0e0;--border-light: #efefef;--hover: #f3f3f3;--active: #111;--active-text: #fff;--error: #c62828;--error-bg: #fef2f2;--success: #2e7d32;--success-bg: #f0fdf4;--info-bg: #f5f5f5;--radius: 8px;--radius-sm: 6px}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Pretendard,-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Malgun Gothic,Segoe UI,sans-serif;background:var(--bg);color:var(--text);min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button{font-family:inherit;font-size:inherit;color:inherit;background:none;border:none;cursor:pointer;padding:0}.landing{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;min-height:100dvh;gap:56px;padding:40px 24px}.brand{font-family:Playfair Display,Georgia,"Noto Serif",serif;font-weight:900;font-size:clamp(52px,13vw,76px);line-height:1.08;text-align:left;letter-spacing:-.02em;color:var(--text)}.landing-buttons{display:flex;flex-direction:column;gap:12px;width:100%;max-width:300px}.auth-page{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;min-height:100dvh;padding:40px 24px}.auth-card{width:100%;max-width:380px}.auth-title{font-size:26px;font-weight:700;margin-bottom:32px;text-align:center}.auth-form{display:flex;flex-direction:column;gap:18px}.auth-hint{text-align:center;margin-top:24px;font-size:13px;color:var(--text-hint)}.page{margin:0 auto;padding:0 20px 120px;min-height:100vh}.topbar{display:flex;align-items:center;justify-content:space-between;padding:20px 0 8px}.topbar-left{display:flex;align-items:baseline;gap:10px}.topbar-brand{font-family:Playfair Display,Georgia,"Noto Serif",serif;font-weight:900;font-size:22px;color:var(--text);letter-spacing:-.02em}.topbar-user{font-size:13px;color:var(--text-hint);font-weight:400}.topbar-right{display:flex;align-items:center;gap:12px}.theme-toggle{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-sm);color:var(--text-sub);transition:background .15s,color .15s}.theme-toggle:hover{background:var(--hover);color:var(--text)}.topbar-logout{font-size:13px;color:var(--text-hint);padding:4px 0;transition:color .15s}.topbar-logout:hover{color:var(--text)}.pill-nav{position:fixed;bottom:20px;left:50%;transform:translate(-50%);display:flex;justify-content:center;padding:0;z-index:50}.pill-nav-inner{display:inline-flex;gap:6px;background:#e0e0e0;border-radius:50px;padding:5px;box-shadow:0 4px 16px #0000001f;position:relative}.pill-nav-inner:before{content:"";position:absolute;width:var(--nav-active-w, 48px);height:48px;background:var(--active);border-radius:24px;left:var(--nav-active-x, 5px);top:var(--nav-active-y, 5px);transition:left .3s cubic-bezier(.25,.46,.45,.94),width .2s cubic-bezier(.25,.46,.45,.94),top .3s cubic-bezier(.25,.46,.45,.94);pointer-events:none;box-shadow:0 2px 12px #0000002e;z-index:1}[data-theme=dark] .pill-nav-inner:before{background:#444}.pill-nav-item{width:48px;height:48px;border-radius:24px;display:flex;align-items:center;justify-content:center;transition:all .3s cubic-bezier(.16,1,.3,1);padding:0;position:relative;z-index:2;color:var(--text-sub)}.pill-nav-item:hover{background:#0000000f}.pill-nav-item.active:hover,[data-theme=dark] .pill-nav-item:hover{background:transparent}.pill-nav-item.active{background:transparent;box-shadow:none;color:var(--active-text)}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.section-title{font-size:22px;font-weight:700}.section-desc{color:var(--text-sub);font-size:14px;line-height:1.6;margin-bottom:20px}.card{background:var(--surface);border:1px solid var(--border-light);border-radius:var(--radius);padding:20px;margin-bottom:16px}.form-group{display:flex;flex-direction:column;gap:6px;margin-bottom:18px}.form-label{font-size:13px;font-weight:600;color:var(--text-sub);display:inline-flex;align-items:center;gap:6px}.help-icon-wrapper{display:inline-flex;align-items:center;position:relative}.form-label svg.help-icon{display:inline-block;margin-left:4px;color:var(--text-sub);cursor:help;transition:color .15s;flex-shrink:0}.form-label svg.help-icon:hover{color:var(--text)}.tooltip{position:absolute;bottom:100%;left:0;margin-bottom:8px;background:var(--text);color:var(--bg);padding:8px 12px;border-radius:6px;font-size:12px;line-height:1.4;white-space:normal;max-width:280px;min-width:200px;z-index:1000;box-shadow:0 4px 12px #00000026;animation:tooltipIn .2s ease-out}.tooltip:after{content:"";position:absolute;top:100%;left:8px;width:6px;height:6px;background:var(--text);transform:rotate(45deg)}@keyframes tooltipIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.form-hint{font-size:12px;color:var(--text-hint);margin-top:2px}input[type=text],input[type=password],input[type=number],input[type=date],input[type=time],textarea,select{width:100%;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font-size:15px;font-family:inherit;outline:none;transition:border-color .2s}input[type=date],input[type=time]{cursor:pointer}input[type=date]::-webkit-calendar-picker-indicator,input[type=time]::-webkit-calendar-picker-indicator{color:var(--text-hint);cursor:pointer}input[type=text]:focus,input[type=password]:focus,input[type=number]:focus,input[type=date]:focus,input[type=time]:focus,textarea:focus,select:focus{border-color:var(--text)}input::placeholder,textarea::placeholder{color:var(--text-hint)}textarea{min-height:100px;resize:vertical;line-height:1.5}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23999' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:12px;padding-right:36px;cursor:pointer}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:13px 28px;border-radius:8px;font-size:15px;font-weight:600;font-family:inherit;cursor:pointer;transition:background-color .2s,border-color .2s,opacity .2s;border:none;white-space:nowrap}.btn-primary{background:var(--active);color:var(--active-text)}.btn-primary:hover:not(:disabled){opacity:.85}.btn-primary:disabled{opacity:.3;cursor:not-allowed}.btn-secondary{background:var(--surface);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover:not(:disabled){background:var(--hover)}.btn-secondary:disabled{opacity:.4;cursor:not-allowed}.btn-ghost{color:var(--text-sub);padding:8px 14px;font-size:14px;border-radius:8px;transition:color .15s,background .15s}.btn-ghost:hover{color:var(--text);background:var(--hover)}.btn-ghost.copy-feedback{color:var(--success)}.btn-full{width:100%}.btn-sm{padding:7px 14px;font-size:13px}.btn-danger{color:var(--error)!important}.btn-row{display:flex;gap:10px;margin-top:20px;justify-content:space-between}.btn-row-right{justify-content:flex-end}.status-bar{padding:12px 16px;border-radius:var(--radius-sm);font-size:14px;margin-bottom:16px;line-height:1.5}.status-bar.error{background:var(--error-bg);color:var(--error)}.toast-message{position:fixed;bottom:30px;left:50%;transform:translate(-50%);background:var(--text-main);color:var(--bg);padding:12px 24px;border-radius:8px;font-weight:500;z-index:9999;box-shadow:0 4px 12px #00000026;animation:fadeInOut 2.5s ease-in-out forwards}@keyframes fadeInOut{0%{opacity:0;transform:translate(-50%,20px)}15%{opacity:1;transform:translate(-50%)}85%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,-20px)}}.status-bar.success{background:var(--success-bg);color:var(--success)}.status-bar.info{background:var(--info-bg);color:var(--text-sub)}.contact-list{display:flex;flex-direction:column;gap:1px;background:var(--border-light);border-radius:var(--radius);overflow:hidden;border:1px solid var(--border-light)}.contact-row{display:flex;align-items:center;justify-content:space-between;padding:15px 16px;background:var(--surface);gap:12px}.contact-info{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.contact-name-row{display:flex;align-items:center;gap:8px;min-width:0}.contact-name{font-weight:600;font-size:15px}.contact-algo-badge{display:inline-flex;align-items:center;justify-content:center;padding:2px 8px;border-radius:999px;font-size:10px;font-weight:700;line-height:1.2;border:1px solid var(--border);color:var(--text-sub);background:var(--hover);white-space:nowrap}.contact-algo-badge.algo-pqc1{color:#0f8e5d;border-color:#0f8e5d59;background:#0f8e5d1f}.contact-algo-badge.algo-ecc1{color:#1276c8;border-color:#1276c859;background:#1276c81f}.contact-algo-badge.algo-rsa1{color:#c17d12;border-color:#c17d1259;background:#c17d121f}.contact-algo-badge.algo-rsa2{color:#a24b8c;border-color:#a24b8c59;background:#a24b8c1f}.contact-meta-row{display:flex;align-items:center;gap:8px;margin-top:6px;min-height:18px}.contact-note{font-size:12px;color:var(--text-sub);opacity:.75;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.contact-pk-preview{display:inline-flex;align-items:center;font-size:12px;line-height:1;color:var(--text-sub);white-space:nowrap}.contact-btns{display:flex;align-items:center;gap:2px;flex-shrink:0}.empty-state{text-align:center;padding:48px 20px;color:var(--text-sub)}.empty-state p:first-child{font-size:16px;font-weight:500;margin-bottom:8px}.key-item{display:flex;flex-direction:column;gap:6px;margin-bottom:18px}.key-label{font-size:13px;color:var(--text-hint);font-weight:500}.key-value-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.key-truncated{font-family:Pretendard,-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Malgun Gothic,Segoe UI,sans-serif;font-size:15px;color:var(--text);letter-spacing:.02em}.key-full{font-family:Pretendard,-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Malgun Gothic,Segoe UI,sans-serif;font-size:12px;color:var(--text-sub);word-break:break-all;line-height:1.6;padding:14px;background:var(--bg);border-radius:var(--radius-sm);border:1px solid var(--border-light);white-space:pre-wrap;position:relative}.key-copy-btn{position:absolute;top:8px;right:8px;padding:5px 10px;font-size:12px;font-weight:600;color:var(--text-sub);background:var(--surface);border:1px solid var(--border);border-radius:6px;opacity:0;transition:opacity .15s}.key-full:hover .key-copy-btn{opacity:1}.key-copy-btn.copied{color:var(--success);border-color:var(--success);opacity:1}.option-cards{display:flex;flex-direction:column;gap:12px}.option-cards.row-layout{flex-direction:row}.option-cards.row-layout .option-card{flex:1}.option-card{display:flex;flex-direction:column;gap:4px;padding:14px;border:1.5px solid var(--border);border-radius:var(--radius);background:var(--surface);cursor:pointer;transition:background-color .2s,border-color .2s,opacity .2s;text-align:left;font-family:inherit;width:100%}.option-card:hover{border-color:#999;background:var(--hover)}.option-card:disabled{cursor:not-allowed;opacity:.7}.option-card:disabled:hover{border-color:var(--border);background:var(--surface)}.option-badge{display:inline-block;margin-top:8px;padding:4px 8px;background:var(--active);color:var(--active-text);border-radius:4px;font-size:11px;font-weight:600}.option-card.selected{border-color:var(--text);background:#f9f9f9}.option-title{font-size:16px;font-weight:700;color:var(--text)}.option-desc{font-size:13px;color:var(--text-sub);line-height:1.5}.step-dots{display:flex;gap:8px;justify-content:center;margin-bottom:28px}.step-dot{width:8px;height:8px;border-radius:50%;background:var(--border);transition:background .3s,transform .3s}.step-dot.active{background:var(--text);transform:scale(1.3)}.step-dot.done{background:var(--text)}.tab-toggle{display:inline-flex;background:var(--border-light);border-radius:10px;padding:3px;gap:2px;margin-bottom:16px}.tab-toggle button{padding:9px 22px;border-radius:8px;font-size:14px;font-weight:500;color:var(--text-hint);transition:background-color .2s,border-color .2s,opacity .2s}.tab-toggle button.active{background:var(--surface);color:var(--text);box-shadow:0 1px 3px #0000001a}.file-drop{border:2px dashed var(--border);border-radius:var(--radius);padding:40px 20px;text-align:center;cursor:pointer;transition:background-color .2s,border-color .2s,opacity .2s;background:var(--surface)}.file-drop:hover,.file-drop.active{border-color:var(--text);background:var(--hover)}.file-drop-icon{font-size:32px;margin-bottom:12px;opacity:.35}.file-drop-text{font-size:15px;font-weight:600;margin-bottom:4px}.file-drop-hint{font-size:13px;color:var(--text-hint)}.file-info-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;background:var(--bg);border-radius:var(--radius-sm);margin-top:12px}.file-info-name{font-weight:600;font-size:14px}.file-info-size{font-size:13px;color:var(--text-hint)}.checkbox-row{display:flex;align-items:center;gap:10px;cursor:pointer;-webkit-user-select:none;user-select:none;padding:10px 0}.checkbox-row input[type=checkbox]{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:20px;height:20px;flex-shrink:0;border:1.5px solid var(--border);border-radius:6px;background:var(--surface);cursor:pointer;position:relative;transition:all .15s;margin:0}.checkbox-row input[type=checkbox]:checked{background:var(--text);border-color:var(--text)}.checkbox-row input[type=checkbox]:checked:after{content:"";position:absolute;left:50%;top:45%;width:5px;height:10px;border:solid var(--surface);border-width:0 2px 2px 0;transform:translate(-50%,-50%) rotate(45deg)}.checkbox-text{font-size:14px;color:var(--text)}.checkbox-label-with-help{display:flex;align-items:center;gap:6px}.result-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}.result-item{display:flex;flex-direction:column;gap:3px}.result-label{font-size:11px;color:var(--text-hint);text-transform:uppercase;letter-spacing:.06em;font-weight:500}.result-value{font-weight:600;font-size:15px}.detected-msg{margin-top:10px;padding:12px;background:var(--bg);border-radius:var(--radius-sm)}.detected-msg-label{font-size:12px;color:var(--text-hint);margin-bottom:6px;font-weight:500}.detected-msg-body{font-size:14px;white-space:pre-wrap;word-break:break-word;line-height:1.6;margin:0;font-family:inherit}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;display:flex;align-items:center;justify-content:center;padding:24px;z-index:100;animation:fadeIn .2s ease}.modal-overlay.closing{animation:fadeOut .2s ease forwards}.modal-box{background:var(--surface);border-radius:8px;padding:28px 24px;width:min(440px,100%);max-height:85vh;overflow-y:auto;animation:modalIn .28s cubic-bezier(.16,1,.3,1)}.modal-box.closing{animation:modalOut .2s ease forwards}.modal-title{font-size:18px;font-weight:700;margin-bottom:24px}.modal-footer{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.progress-bar{height:3px;background:var(--border-light);border-radius:2px;overflow:hidden;margin-top:14px}.progress-fill{height:100%;width:40%;background:var(--text);border-radius:inherit;animation:progressSlide 1.2s ease-in-out infinite}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);border:0}.view-animate{animation:viewIn .4s cubic-bezier(.16,1,.3,1) both}@keyframes viewIn{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes modalIn{0%{opacity:0;transform:translateY(24px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes modalOut{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(12px) scale(.97)}}@keyframes progressSlide{0%{transform:translate(-100%)}50%{transform:translate(100%)}to{transform:translate(250%)}}.text-hint{color:var(--text-hint);font-size:13px}.text-error{color:var(--error)}.text-success{color:var(--success)}.mt-1{margin-top:6px}.mt-2{margin-top:12px}.mt-3{margin-top:18px}.mt-4{margin-top:24px}.mb-2{margin-bottom:12px}.mb-3{margin-bottom:18px}.text-center{text-align:center}@media (max-width: 480px){.page{padding:0 16px 100px}.brand{font-size:48px}.pill-nav-inner{gap:4px;padding:4px}.pill-nav-item{width:44px;height:44px}.pill-nav-inner:before{width:var(--nav-active-w, 44px);height:44px}.result-grid{grid-template-columns:1fr}.contact-row{flex-direction:column;align-items:flex-start}.contact-btns{width:100%;justify-content:flex-end}}@media (min-width: 768px){.page{max-width:750px}}[data-theme=dark]{--bg: #111;--surface: #1a1a1a;--text: #e8e8e8;--text-sub: #aaa;--text-hint: #666;--border: #333;--border-light: #252525;--hover: #222;--active: #333;--active-text: #e8e8e8;--error: #ef5350;--error-bg: #2a1515;--success: #66bb6a;--success-bg: #152a15;--info-bg: #1e1e1e}[data-theme=dark] .pill-nav-inner{background:#2a2a2a}[data-theme=dark] .option-card.selected{background:#222}[data-theme=dark] .tab-toggle button.active{box-shadow:0 1px 3px #0000004d}.step-header{display:flex;align-items:center;gap:12px;margin-bottom:20px}.btn-back{background:none;border:none;color:var(--primary);cursor:pointer;font-size:14px;padding:0;text-decoration:none;transition:color .2s}.btn-back:hover{color:var(--primary-dark, #0066cc)}.step-header h3{margin:0}
