:root{font-family:Noto Sans KR,sans-serif;color:#17211c;background:#f5f6f1;font-synthesis:none;--ink: #17211c;--muted: #68736c;--paper: #fffefb;--line: #dfe3dc;--accent: #ff5c35;--green: #135f43;--lime: #d8f36a}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:#f5f6f1}button,input{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline:3px solid rgba(19,95,67,.28);outline-offset:2px}svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.brand-mark{width:44px;height:44px;display:grid;place-items:center;flex:0 0 auto;background:var(--ink);color:var(--lime);border-radius:13px 4px;font:800 14px/1 Manrope,sans-serif;letter-spacing:-.04em}.eyebrow{color:var(--green);font:800 11px/1 Manrope,sans-serif;letter-spacing:.18em}.primary-button{border:0;background:var(--ink);color:#fff;cursor:pointer}.primary-button:disabled{opacity:.55;cursor:wait}.boot,.empty-app{min-height:100vh;display:grid;place-content:center;justify-items:center;gap:16px;text-align:center;padding:28px}.boot p,.empty-app p{color:var(--muted);margin:0}.empty-app h1{margin:0;font-size:26px}.empty-app .primary-button{padding:13px 22px;border-radius:8px}.empty-actions{display:flex;justify-content:center;gap:10px}.empty-actions>button:not(.primary-button){padding:12px 18px;border:1px solid var(--line);border-radius:8px;background:#fff;cursor:pointer}.loader{width:30px;height:30px;border:3px solid #d8ddd5;border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.login-shell{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(390px,.75fr);background:var(--ink)}.login-copy{min-width:0;padding:clamp(54px,8vw,120px);position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:center;color:#fff;background-color:#3c5f51}.login-copy:before,.login-copy:after{content:"";position:absolute;border:1px solid rgba(216,243,106,.22);border-radius:50%}.login-copy:before{width:520px;height:520px;right:-150px;top:-170px}.login-copy:after{width:350px;height:350px;right:50px;top:-80px}.login-copy .eyebrow{color:var(--lime);position:relative;z-index:1}.login-copy h1{margin:0;font:800 clamp(49px,calc(5vw + 5px),85px)/.98 "Manrope","Noto Sans KR",sans-serif;letter-spacing:-.05em;white-space:nowrap;position:relative;z-index:1}.login-copy h1 em{color:var(--lime);font-style:normal}.login-copy>p{max-width:520px;color:#aeb9b1;font-size:17px;line-height:1.75;margin:0}.login-stat{display:flex;gap:20px;align-items:center;margin-top:60px;padding-top:24px;border-top:1px solid #34413a;max-width:520px}.login-stat strong{font:800 12px Manrope,sans-serif;color:var(--lime);letter-spacing:.12em}.login-stat span{color:#8e9a92;font-size:13px}.login-panel{background:var(--paper);padding:clamp(42px,6vw,88px);display:flex;flex-direction:column;justify-content:center}.mobile-brand{display:none}.login-panel h2{font:800 32px/1.2 Manrope,Noto Sans KR,sans-serif;letter-spacing:-.04em;margin:0 0 34px}.login-panel>p{color:var(--muted);margin:0 0 34px;font-size:14px}.login-panel form{display:grid;gap:20px}.login-panel label{display:grid;gap:9px;font-weight:700;font-size:13px}.login-panel input{width:100%;border:1px solid #cfd5ce;border-radius:8px;padding:15px 16px;background:#fff;outline:none;transition:.2s}.login-panel input:focus{border-color:var(--green);box-shadow:0 0 0 3px #135f431a}.login-panel .primary-button{display:flex;align-items:center;justify-content:space-between;border-radius:8px;padding:16px 18px;font-weight:700;margin-top:2px}.form-error{min-height:20px;margin:-8px 0 0!important;color:#b72e22!important;font-size:12px!important}.persistence-note{border-top:1px solid var(--line);margin-top:30px!important;padding-top:18px;display:flex;gap:9px;align-items:center;color:var(--muted);font-size:12px!important}.persistence-note span{width:8px;height:8px;border-radius:50%;background:#48a56f;box-shadow:0 0 0 4px #e6f3ea}.app-shell{min-height:100vh}.topbar{height:76px;padding:0 clamp(20px,4vw,64px);display:flex;align-items:center;justify-content:space-between;background:var(--paper);border-bottom:1px solid var(--line)}.wordmark{display:flex;align-items:center;gap:13px}.wordmark strong,.wordmark small{display:block;font-family:Manrope,sans-serif}.wordmark strong{font-size:16px;letter-spacing:-.02em}.wordmark small{color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.16em;margin-top:2px}.topbar-right,.sync-pill{display:flex;align-items:center}.topbar-right{gap:14px}.sync-pill{gap:10px;padding-right:14px;border-right:1px solid var(--line)}.sync-pill>span{width:8px;height:8px;border-radius:50%;background:#39a56b;box-shadow:0 0 0 4px #e8f5ed}.sync-pill[data-status=loading]>span{background:#d59b20;box-shadow:0 0 0 4px #fbf1d8}.sync-pill[data-status=error]>span{background:#c8493b;box-shadow:0 0 0 4px #f8e6e3}.sync-pill[data-status=error] small{color:#a42d25}.sync-pill small,.sync-pill strong{display:block}.sync-pill small{color:var(--muted);font-size:9px;margin-bottom:2px}.sync-pill strong{font-size:11px}.icon-button{width:40px;height:40px;border:0;background:transparent;border-radius:8px;cursor:pointer;display:grid;place-items:center}.icon-button:hover{background:#eef0ea}.icon-button:disabled{opacity:.45;cursor:wait}.icon-button[aria-busy=true] svg{animation:spin .8s linear infinite}.workspace{position:relative;padding:clamp(10.6667px,1.6667vw,23.3333px) clamp(18px,4vw,64px) 70px;max-width:1800px;margin:0 auto}.workspace-utility{display:flex;align-items:center;justify-content:flex-end;gap:20px}.hero{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:38px}.hero h1{font:800 clamp(40px,5vw,68px)/1 "Manrope","Noto Sans KR",sans-serif;letter-spacing:-.065em;margin:16px 0 12px}.hero p{margin:0;color:var(--muted);font-size:14px}.hero-count{text-align:right;padding:0 5px 3px}.hero-count strong{display:block;color:var(--accent);font:800 42px/1 Manrope,sans-serif}.hero-count span{color:var(--muted);font-size:12px}.tabs{display:flex;overflow-x:auto;gap:4px;margin-bottom:-1px;position:relative;z-index:2;scrollbar-width:thin}.tabs button{display:flex;gap:12px;align-items:center;border:1px solid transparent;border-bottom:0;background:transparent;padding:13px 18px;font-weight:600;color:var(--muted);cursor:pointer;white-space:nowrap;border-radius:8px 8px 0 0}.tabs button span{display:grid;place-items:center;min-width:22px;height:22px;border-radius:11px;background:#e5e8e2;font:700 10px Manrope,sans-serif}.tabs button.active{background:var(--paper);color:var(--ink);border-color:var(--line)}.tabs button.active span{background:var(--lime)}.data-card{background:var(--paper);border:1px solid var(--line);border-radius:0 12px 12px;box-shadow:0 12px 40px #19271f0a;overflow:hidden}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:20px;border-bottom:1px solid var(--line)}.search-box{flex:0 1 440px;display:flex;align-items:center;gap:10px;background:#f3f5f0;padding:0 14px;border-radius:8px;color:var(--muted)}.search-box input{width:100%;border:0;outline:0;background:transparent;padding:13px 0;font-size:13px;color:var(--ink)}.toolbar-summary{display:flex;align-items:center;gap:18px;color:var(--muted);font-size:12px}.toolbar-summary strong{color:var(--ink)}.toolbar-summary button{border:0;background:transparent;display:flex;align-items:center;gap:6px;font-size:12px;cursor:pointer}.toolbar-summary button:disabled{opacity:.35;cursor:default}.toolbar-summary svg{width:16px}.table-scroll{overflow:auto;max-height:calc(100vh - 330px);min-height:300px}table{width:100%;min-width:1040px;border-collapse:separate;border-spacing:0;table-layout:fixed}th{position:sticky;top:0;z-index:1;background:#f0f2ed;border-bottom:1px solid #d5d9d2;text-align:center}th>div{display:grid;grid-template-columns:minmax(0,1fr) max-content minmax(0,1fr);align-items:center;column-gap:2px;padding:0 8px;min-height:47px}th:nth-child(1){width:220px}th:nth-child(2){width:140px}th:nth-child(3){width:150px}th:nth-child(4){width:130px}th:nth-child(5){width:440px}th:nth-child(6){width:120px}th:nth-child(7){width:110px}.sort-button,.filter-button{border:0;background:transparent;cursor:pointer}.sort-button{grid-column:2;grid-row:1;justify-self:center;padding:12px 0;font-weight:700;font-size:12px;text-align:center}.filter-button{grid-column:3;grid-row:1;justify-self:start;width:30px;height:30px;display:grid;place-items:center;border-radius:6px;color:#778079}.filter-button:hover,.filter-button.active{background:#fff;color:var(--green)}.filter-button.active{box-shadow:inset 0 0 0 1px #a3b9aa}.filter-button svg{width:15px}td{padding:17px 14px;border-bottom:1px solid #eceeea;font-size:12px;line-height:1.55;vertical-align:middle;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.data-row:hover>td{background:#fbfcf7}td.column-0{font-weight:700;color:#153b2d}td.column-1,td.column-2,td.column-3,td.column-5,td.column-6{text-align:center}td.column-4{white-space:normal;min-width:360px;color:#4e5952}.program-cell{width:100%;min-height:32px;display:flex;align-items:center;gap:9px;color:inherit;font:inherit;font-weight:inherit;text-align:left}.release-toggle{border:0;padding:0;background:transparent;cursor:pointer}.program-cell-static .release-toggle-icon{color:#aeb6b0}.release-toggle:hover .release-toggle-icon{background:#e5ebe5;color:var(--green)}.release-toggle:focus-visible{outline:2px solid var(--green);outline-offset:3px;border-radius:4px}.release-toggle-icon{width:22px;height:22px;flex:0 0 22px;display:grid;place-items:center;border-radius:5px;color:#68756d;font-size:10px;transition:background .15s,color .15s}.release-history-row>td{padding:0;overflow:visible;white-space:normal;text-overflow:clip;background:#f4f6f1}.release-history-panel{margin:0;padding:18px 24px 22px 43px;border-bottom:1px solid #dfe4dc;box-shadow:inset 4px 0 #b9c9bd}.release-history-panel>header{display:flex;align-items:center;gap:9px;margin-bottom:10px}.release-history-panel>header strong{font-size:12px}.release-history-panel>header span{min-width:30px;padding:3px 8px;border-radius:999px;background:#e3e9e2;color:var(--muted);font:700 10px Manrope,sans-serif;text-align:center}.release-history-panel ol{list-style:none;margin:0;padding:0;overflow:hidden;border:1px solid #dce2da;border-radius:8px;background:var(--paper)}.release-history-panel li{display:grid;grid-template-columns:100px 130px minmax(0,1fr);gap:18px;align-items:start;padding:14px 16px}.release-history-panel li+li{border-top:1px solid #e7ebe5}.release-history-panel small{display:block;margin-bottom:4px;color:var(--muted);font-size:10px;font-weight:600}.release-history-version strong{font:700 12px Manrope,Noto Sans KR,sans-serif}.release-history-date span,.release-history-content p{font-size:12px;line-height:1.55}.release-history-content p{margin:0;color:#425048;white-space:normal}.empty-cell{color:#b2b8b3}.no-results{padding:70px 20px;display:grid;justify-items:center;text-align:center;color:var(--muted)}.no-results>span{width:50px;height:50px;display:grid;place-items:center;border-radius:50%;background:#eff2ec}.no-results h2{margin:16px 0 6px;color:var(--ink);font-size:18px}.no-results p{margin:0 0 18px;font-size:13px}.no-results button{border:1px solid var(--line);background:#fff;padding:9px 14px;border-radius:7px;cursor:pointer}.pagination{display:flex;align-items:center;justify-content:center;gap:16px;min-height:58px;padding:10px 18px;border-top:1px solid var(--line);color:var(--muted);font-size:12px}.pagination button{min-width:68px;padding:8px 12px;border:1px solid var(--line);border-radius:7px;background:#fff;cursor:pointer}.pagination button:disabled{opacity:.4;cursor:default}.pagination strong{color:var(--ink)}.popover-backdrop{position:fixed;inset:0;z-index:10;background:#0b140f61;display:grid;place-items:center;padding:20px;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.filter-popover{width:min(430px,100%);max-height:min(640px,88vh);display:flex;flex-direction:column;background:var(--paper);border-radius:14px;box-shadow:0 24px 80px #00000040;overflow:hidden}.filter-popover header{display:flex;align-items:start;justify-content:space-between;padding:24px;border-bottom:1px solid var(--line)}.filter-popover h2{margin:10px 0 0;font-size:21px}.filter-popover header button{border:0;background:transparent;font-size:26px;cursor:pointer;color:var(--muted)}.filter-list{overflow:auto;padding:10px 0}.filter-list label{display:grid;grid-template-columns:20px 1fr auto;align-items:center;gap:10px;padding:11px 24px;cursor:pointer}.filter-list label:hover{background:#f2f4ef}.filter-list input{width:16px;height:16px;accent-color:var(--green)}.filter-list span{font-size:13px}.filter-list small{min-width:26px;height:22px;padding:4px 7px;text-align:center;border-radius:11px;background:#e9ece6;font:700 10px Manrope,sans-serif}.filter-popover footer{padding:16px 24px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:10px}.filter-popover footer button{padding:11px 16px;border-radius:7px;cursor:pointer}.filter-popover footer>button:first-child{border:1px solid var(--line);background:#fff}@media(min-width:801px){.workspace-utility{position:absolute;top:clamp(10.6667px,1.6667vw,23.3333px);right:clamp(18px,4vw,64px);z-index:3}.hero h1{margin-top:12px}}@media(min-width:801px)and (max-width:1100px){.login-copy{padding:48px}.login-copy h1{font-size:clamp(35px,calc(4vw + 5px),49px)}}@media(max-width:800px){.login-shell{grid-template-columns:1fr;background:var(--paper)}.login-copy{display:none}.login-panel{min-height:100vh;padding:40px 24px}.mobile-brand{display:block;margin:0 0 54px;color:var(--ink);font:800 clamp(33px,calc(8vw + 5px),47px)/.96 "Manrope",sans-serif;letter-spacing:-.05em;white-space:nowrap}.mobile-brand em{color:var(--green);font-style:normal}.topbar{height:68px}.sync-pill div{display:none}.sync-pill{padding-right:12px}.hero{align-items:start}.hero-count{display:none}.toolbar{align-items:stretch;flex-direction:column}.search-box{flex-basis:auto;max-width:none}.toolbar-summary{justify-content:space-between}.data-card{border-radius:0 10px 10px}.table-scroll{max-height:calc(100vh - 360px)}.program-cell{min-height:40px}.release-toggle-icon{width:28px;height:28px;flex-basis:28px}.release-history-panel{position:sticky;left:0;width:min(100%,calc(100vw - 38px));padding:16px}.release-history-panel li{grid-template-columns:1fr;gap:10px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important}}
