@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:#f8f9fb;--card:#ffffff;--line:#edf0f3;--text:#1f2329;--muted:#7b8491;--green:#03c75a;--green-dark:#00a34a;--blue:#2478ff;--red:#f04452;--shadow:0 12px 34px rgba(15,23,42,0.06)}*{box-sizing:border-box}body,html{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:Pretendard,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}a{color:inherit;text-decoration:none}button,input,select{font-family:inherit}.desktop-shell{width:1200px;margin:40px auto 0;background:#fff}.mobile-shell{width:600px;min-height:100vh;margin:0 auto;background:#fff}.header{height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 24px;border-bottom:1px solid var(--line)}.mobile-shell .header{height:60px;padding:0 16px}.logo{display:inline-flex;align-items:center;gap:8px;font-weight:800;letter-spacing:-.04em}.logo-mark{width:24px;height:24px;border-radius:8px;display:grid;place-items:center;background:var(--green);color:#fff;font-size:14px;font-weight:900}.nav{display:flex;align-items:center;gap:10px;font-size:14px;color:#333b45}.link-button,.nav a{padding:8px 12px;border-radius:999px;transition:background .15s ease}.link-button:hover,.nav a:hover{background:#f2f4f6}.ticker{height:44px;overflow:hidden;display:flex;align-items:center;gap:16px;border-bottom:1px solid var(--line);font-size:13px;color:#2f3945}.ticker-label{margin-left:37px;padding:4px 10px;border-radius:999px;background:#effaf3;color:var(--green-dark);font-weight:700}.ticker-track{flex:1 1;display:flex;gap:54px;white-space:nowrap;animation:marquee 24s linear infinite}@keyframes marquee{0%{transform:translateX(0)}to{transform:translateX(-50%)}}.main-grid{display:grid;grid-template-columns:655px 545px}.left-panel{border-right:1px solid var(--line)}.hero{padding:40px 24px 30px;background:linear-gradient(135deg,#f8fffb,#ffffff 60%)}.hero h1,.hero h2{margin:0;font-size:32px;line-height:1.22;letter-spacing:-.06em}.hero p{margin:10px 0 0;color:var(--muted)}.section-title{height:72px;display:flex;align-items:center;padding:0 24px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:20px;font-weight:800;letter-spacing:-.04em}.card-list{padding:24px}.admin-card,.empty-card,.form-card,.holding-card,.news-card,.rank-row,.stock-card{background:var(--card);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow)}.empty-card{height:119px;display:grid;place-items:center;color:var(--muted)}.stock-card{padding:24px;margin-bottom:16px}.stock-date{color:var(--green-dark);font-size:14px;font-weight:800}.stock-main{display:flex;align-items:center;gap:18px;margin-top:12px}.stock-logo{width:56px;height:56px;border-radius:18px;background:#f2f4f6;object-fit:cover}.stock-name{font-size:18px;font-weight:800;letter-spacing:-.04em}.stock-price{margin-top:6px;color:var(--muted);font-size:14px}.tabs{grid-template-columns:repeat(2,1fr);margin:36px 24px 16px;border:1px solid var(--line);border-radius:16px;overflow:hidden}.tab,.tabs{display:grid}.tab{height:54px;place-items:center;background:#fff;color:var(--muted);font-weight:800}.tab.active{background:#f1fbf5;color:var(--green-dark)}.calendar{margin:0 24px 36px;padding:24px;border:1px solid var(--line);border-radius:18px}.calendar-head{font-size:18px;font-weight:800;margin-bottom:22px}.days,.week{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:8px;gap:8px}.week{color:var(--muted);font-size:13px;text-align:center;margin-bottom:10px}.day{min-height:62px;border-radius:12px;padding:8px;font-size:12px;color:#56606d;background:#fafbfc}.day.event{background:#effaf3;color:var(--green-dark);font-weight:800}.event-label{display:block;margin-top:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.right-panel{padding-bottom:40px}.rank-list{padding:0 24px 32px}.rank-row{min-height:93px;border-radius:0;box-shadow:none;border-width:0 0 1px;display:grid;grid-template-columns:52px 1fr auto;align-items:center;grid-gap:16px;gap:16px}.rank-no{font-size:18px;font-weight:900;color:var(--green-dark)}.rank-name,.rank-price{font-weight:800}.rank-price{text-align:right}.rank-change{margin-top:4px;color:var(--red);font-size:13px}.rank-change.down{color:#2678ff}.news-list{padding:0 24px}.news-card{display:grid;grid-template-columns:1fr 88px;grid-gap:20px;gap:20px;padding:20px 0;border-width:0 0 1px;border-radius:0;box-shadow:none}.news-title{font-size:16px;font-weight:700;line-height:1.45}.news-meta{margin-top:12px;color:var(--muted);font-size:13px}.news-thumb{width:88px;height:88px;border-radius:14px;background:#eef1f4}.form-page{padding:40px 20px}.form-page h1,.form-page h2{margin:0 0 28px;font-size:26px;letter-spacing:-.05em}.form-card{padding:24px}.field{display:grid;grid-gap:8px;gap:8px;margin-bottom:16px}.field label{font-size:13px;font-weight:800;color:#4b5563}.field input,.field select,.field textarea{width:100%;height:52px;padding:0 16px;border:1px solid #dce2e8;border-radius:12px;background:#fff;font-size:15px;outline:none}.field textarea{height:84px;padding-top:14px;resize:vertical}.field-row{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:8px;gap:8px}.account-row{display:grid;grid-template-columns:.9fr 1fr;grid-gap:8px;gap:8px}.danger-button,.primary-button,.secondary-button{width:100%;height:54px;border:0;border-radius:14px;color:#fff;background:var(--green);font-size:16px;font-weight:900;cursor:pointer}.secondary-button{background:#111827}.danger-button{background:var(--red)}.ghost-button{height:36px;border:1px solid var(--line);border-radius:999px;padding:0 14px;background:#fff;color:#374151;font-weight:800;cursor:pointer}.message{margin:14px 0;padding:12px 14px;border-radius:12px;background:#f2f4f6;color:#4b5563;font-size:14px}.message.error{background:#fff1f2;color:var(--red)}.holding-card{padding:18px;margin-bottom:14px}.holding-head,.holding-values{display:flex;align-items:center;justify-content:space-between;gap:14px}.holding-head{margin-bottom:14px;color:var(--muted);font-size:13px;font-weight:700}.holding-values{margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}.value-label{display:block;color:var(--muted);font-size:13px;margin-bottom:5px}.value-number{font-weight:900}.admin-shell{max-width:1280px;margin:0 auto;padding:24px}.admin-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.admin-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:20px;gap:20px}.admin-card{padding:20px}.admin-card h2{margin:0 0 18px;font-size:20px}.table{width:100%;border-collapse:collapse;font-size:14px}.table td,.table th{border-bottom:1px solid var(--line);padding:10px;text-align:left;vertical-align:top}.status-pill{display:inline-flex;align-items:center;height:24px;padding:0 10px;border-radius:999px;background:#effaf3;color:var(--green-dark);font-size:12px;font-weight:900}.status-pill.blocked{background:#fff1f2;color:var(--red)}@media (max-width:900px){.desktop-shell,.mobile-shell{width:100%;margin:0}.admin-grid,.main-grid{grid-template-columns:1fr}.left-panel{border-right:0}}