:root{--bg: #FFFFFF;--primary: #111111;--secondary: #666666;--tertiary: #999999;--border: #E5E5E5;--line: #F2F2F2;--hover: #FAFAFA;--fill: #F7F7F7;--ok: #16A34A;--stop: #E5484D;--font: "Pretendard", -apple-system, BlinkMacSystemFont, system-ui, Roboto, sans-serif}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%}body{background:var(--bg);color:var(--primary);color-scheme:light;font-family:var(--font);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;letter-spacing:-.01em}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer}.center-screen{height:100vh;display:flex;align-items:center;justify-content:center}.spinner{width:30px;height:30px;border:2px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.auth-wrap{max-width:440px;margin:0 auto;padding:56px 22px 80px;animation:fadeUp .7s cubic-bezier(.22,1,.36,1)}.auth-logo{text-align:center;margin-bottom:36px}.auth-logo h1{font-size:23px;font-weight:700;margin:0;letter-spacing:-.03em;color:var(--primary)}.auth-logo p{color:var(--secondary);font-size:14px;margin:10px 0 0;font-weight:400}.card{background:#fff;border:1px solid var(--border);padding:26px 24px;margin-bottom:16px}.card>p:first-child{margin-top:0}.field{margin-bottom:20px}.field:last-child{margin-bottom:0}.field label{display:block;font-size:13px;font-weight:600;color:var(--primary);margin-bottom:8px}.field .req{color:var(--stop);font-weight:700}input,select,textarea{width:100%;height:48px;padding:0 15px;border:1px solid var(--border);border-radius:0;font-size:15px;color:var(--primary);background:#fff;font-family:inherit;transition:border-color .2s;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}textarea{height:auto;padding:13px 15px;line-height:1.6;resize:vertical}input::placeholder,textarea::placeholder{color:#bbb}input:focus,select:focus,textarea:focus{border-color:var(--primary)}select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:38px}.btn{width:100%;height:52px;border:1px solid var(--primary);border-radius:0;font-size:15px;font-weight:600;letter-spacing:-.01em;transition:opacity .2s}.btn-primary,.btn-dark{background:var(--primary);color:#fff}.btn-primary:hover,.btn-dark:hover{opacity:.88}.btn-ghost{background:#fff;color:var(--primary);border-color:var(--border)}.btn-ghost:hover{background:var(--hover)}.btn:disabled{background:#ccc;border-color:#ccc;color:#fff;cursor:not-allowed;opacity:1}.btn-sm{width:auto;height:auto;padding:9px 16px;font-size:13px}.muted{color:var(--secondary);font-size:13px}.link{color:var(--primary);cursor:pointer;text-decoration:underline;text-underline-offset:3px;font-weight:600}.err{color:var(--stop);font-size:13.5px;margin:10px 0}.ok{color:var(--ok);font-size:13.5px}.upload-box{display:block;border:1px dashed #CFCFCF;padding:22px;text-align:center;cursor:pointer;color:var(--secondary);font-size:13.5px;transition:border-color .2s,color .2s}.upload-box:hover{border-color:var(--primary)}.upload-box.filled{border-color:var(--ok);border-style:solid;color:var(--ok);font-weight:600}.thumb{max-width:100%;max-height:170px;margin-top:12px;border:1px solid var(--border)}.row{display:flex;gap:12px}.row>*{flex:1}.portal{min-height:100vh;background:var(--bg)}.topbar{position:sticky;top:0;z-index:20;background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:12px;padding:15px 18px}.topbar .menu-btn{background:none;border:none;color:var(--primary);font-size:20px;line-height:1;padding:0 2px}.topbar .title{font-size:15px;font-weight:700;letter-spacing:-.02em}.drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#11111173;z-index:30;display:none;animation:fadeIn .2s ease}.drawer-overlay.show{display:block}.drawer{position:fixed;top:0;left:0;bottom:0;width:280px;max-width:84vw;background:#fff;z-index:40;display:flex;flex-direction:column;border-right:1px solid var(--border);transform:translate(-100%);transition:transform .32s cubic-bezier(.22,1,.36,1);box-shadow:8px 0 40px #00000014}.drawer.open{transform:translate(0)}.drawer-head{padding:26px 22px;background:var(--primary);color:#fff}.drawer-head .co{font-size:16px;font-weight:700;letter-spacing:-.02em}.drawer-head .em{font-size:12.5px;color:#a9a9a9;margin-top:4px;word-break:break-all}.drawer-menu{flex:1;padding:8px 0;overflow-y:auto}.drawer-menu a{display:block;padding:15px 22px;color:var(--primary);font-size:15px;font-weight:500;border-left:2px solid transparent}.drawer-menu a:hover{background:var(--hover)}.drawer-menu a.active{background:var(--fill);border-left-color:var(--primary);font-weight:700}.drawer-foot{padding:16px;border-top:1px solid var(--border)}.ext-link{display:block;text-align:center;padding:12px;border:1px solid var(--border);background:#fff;color:var(--primary);font-size:13.5px;font-weight:500;margin-bottom:8px;transition:background .15s,border-color .15s}.ext-link:hover{background:var(--hover);border-color:var(--primary)}.logout{text-align:center;color:var(--secondary);font-size:13px;padding:14px 0 4px;cursor:pointer}.logout:hover{color:var(--primary)}.page{max-width:640px;margin:0 auto;padding:24px 18px 72px;animation:fadeUp .5s cubic-bezier(.22,1,.36,1)}.page h2{font-size:21px;font-weight:700;letter-spacing:-.03em;margin:2px 0 20px}.list-item{background:#fff;border:1px solid var(--border);padding:18px;margin-bottom:12px}.badge{display:inline-block;font-size:11px;font-weight:700;padding:3px 9px;border:1px solid transparent;letter-spacing:0}.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid var(--border);margin-bottom:18px}.stat{padding:18px 16px;border-right:1px solid var(--border);border-bottom:1px solid var(--border)}.stat:nth-child(2n){border-right:none}.stat:nth-last-child(-n+2){border-bottom:none}.stat .label{font-size:12px;color:var(--secondary)}.stat .value{font-size:20px;font-weight:700;margin-top:5px;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.site-pick{border:1px solid var(--border);padding:14px;margin-bottom:-1px;cursor:pointer;background:#fff;transition:background .15s}.site-pick:hover{background:var(--hover)}.site-pick.sel{border-color:var(--primary);background:var(--fill);position:relative;z-index:1}.info-line{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);font-size:14.5px}.info-line:last-child{border-bottom:none}.info-line .k{color:var(--secondary)}@media (min-width: 900px){.topbar{display:none}.drawer{transform:none;transition:none;box-shadow:none}.drawer-overlay{display:none!important}.content{margin-left:280px}.content .page{padding-top:40px}}@media (prefers-reduced-motion: reduce){*{animation:none!important}}
