:root{--ink:#18221c;--muted:#6f7b73;--line:#e3e8e3;--paper:#f4f6f1;--white:#fff;--green:#155d3b;--lime:#d7ff5f;--orange:#ff7448;--yellow:#ffcc4a;--shadow:0 18px 48px rgba(34,53,42,.09);font-family:Inter,"Pretendard","Noto Sans KR",Segoe UI,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-height:100vh}button,input,select,textarea{font:inherit}button{cursor:pointer}.eyebrow{margin:0 0 8px;color:#4d7d63;font-size:11px;font-weight:800;letter-spacing:.14em}.muted{color:var(--muted)}.brand-mark{display:grid;width:62px;height:62px;place-items:center;border-radius:18px;background:var(--lime);color:#173d2b;font-size:19px;font-weight:900;letter-spacing:-.05em;box-shadow:0 12px 30px rgba(0,0,0,.12)}.brand-mark.small{width:40px;height:40px;border-radius:12px;font-size:13px}.primary-button,.secondary-button{border:0;border-radius:12px;padding:12px 18px;font-weight:800}.primary-button{background:var(--green);color:#fff;box-shadow:0 7px 18px rgba(21,93,59,.2)}.primary-button:hover{background:#0d4c2e}.secondary-button{background:#eef1ed;color:var(--ink)}.wide{width:100%;padding:15px}.login-page{background:#153c2b}.login-shell{display:grid;min-height:100vh;grid-template-columns:1.15fr .85fr}.login-brand{position:relative;display:flex;flex-direction:column;justify-content:center;overflow:hidden;padding:9vw;color:#fff;background:radial-gradient(circle at 76% 20%,rgba(215,255,95,.23),transparent 24%),linear-gradient(145deg,#143e2a,#0c271b)}.login-brand:after{content:"";position:absolute;right:-140px;bottom:-210px;width:530px;height:530px;border:1px solid rgba(255,255,255,.16);border-radius:50%;box-shadow:0 0 0 70px rgba(255,255,255,.035),0 0 0 140px rgba(255,255,255,.02)}.login-brand .eyebrow{margin-top:36px;color:var(--lime)}.login-brand h1{max-width:650px;margin:4px 0 22px;font-size:clamp(36px,5vw,72px);line-height:1.08;letter-spacing:-.055em}.brand-copy{max-width:560px;color:#c8d8ce;font-size:17px;line-height:1.7}.signal-card{z-index:1;display:flex;align-items:center;gap:13px;width:max-content;margin-top:48px;padding:14px 18px;border:1px solid rgba(255,255,255,.12);border-radius:16px;background:rgba(255,255,255,.06);backdrop-filter:blur(8px)}.signal-card div{display:flex;flex-direction:column;gap:4px}.signal-card small{color:#9fbaa9}.signal-dot{width:10px;height:10px;border-radius:50%;background:var(--lime);box-shadow:0 0 0 6px rgba(215,255,95,.12)}.login-panel{display:grid;place-items:center;padding:48px;background:#f3f4ef}.login-card{width:min(420px,100%);padding:46px;border-radius:24px;background:#fff;box-shadow:var(--shadow)}.login-card h2{margin:0;font-size:28px;letter-spacing:-.04em}.login-card form{display:grid;gap:18px;margin-top:32px}label{display:grid;gap:8px;color:#344039;font-size:13px;font-weight:750}input,select,textarea{width:100%;border:1px solid #d9e0da;border-radius:11px;padding:12px 13px;background:#fff;color:var(--ink);outline:none;transition:.2s}input:focus,select:focus,textarea:focus{border-color:#4b916d;box-shadow:0 0 0 3px rgba(75,145,109,.12)}textarea{resize:vertical}.form-error{min-height:18px;margin:0;color:#bb3b26;font-size:13px}.security-note{margin:22px 0 0;text-align:center;color:#8c968f;font-size:12px}
.app-page{display:flex;background:var(--paper)}.sidebar{position:fixed;z-index:10;display:flex;width:250px;height:100vh;flex-direction:column;padding:24px 18px;background:#113726;color:#fff}.sidebar-brand{display:flex;align-items:center;gap:12px;margin:0 8px 36px;color:#fff;text-decoration:none;font-size:16px;font-weight:850}.sidebar-brand small{display:block;margin-top:3px;color:#789989;font-size:9px;letter-spacing:.12em;text-transform:uppercase}.sidebar nav{display:flex;flex:1;flex-direction:column;gap:5px}.nav-item{display:flex;align-items:center;gap:12px;width:100%;border:0;border-radius:11px;padding:11px 12px;background:transparent;color:#a9c0b3;text-align:left;font-size:14px}.nav-item span{width:20px;color:#789989;text-align:center}.nav-item:hover,.nav-item.active{background:rgba(255,255,255,.09);color:#fff}.nav-item.active span{color:var(--lime)}.nav-item em{margin-left:auto;color:#668879;font-size:9px;font-style:normal}.nav-item.disabled{cursor:default;opacity:.72}.nav-label{margin:22px 12px 8px;color:#608170;font-size:9px;font-weight:800;letter-spacing:.14em}.sidebar-footer{display:grid;grid-template-columns:35px 1fr 28px;align-items:center;gap:10px;padding:16px 8px 0;border-top:1px solid rgba(255,255,255,.1)}.sidebar-footer .avatar{display:grid;width:34px;height:34px;place-items:center;border-radius:10px;background:var(--lime);color:#173d2b;font-weight:900}.sidebar-footer strong,.sidebar-footer small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-footer strong{font-size:12px}.sidebar-footer small{margin-top:3px;color:#719281;font-size:9px}.sidebar-footer button{border:0;background:transparent;color:#90aa9c}.app-main{width:calc(100% - 250px);min-height:100vh;margin-left:250px}.topbar{display:flex;min-height:82px;align-items:center;justify-content:space-between;padding:15px 34px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.86);backdrop-filter:blur(14px)}.topbar h1{margin:3px 0 0;font-size:20px;letter-spacing:-.03em}.breadcrumb{margin:0;color:#89938c;font-size:10px}.topbar-actions{display:flex;align-items:center;gap:12px}.live-badge{padding:7px 10px;border-radius:99px;background:#ebf5ed;color:#27714a;font-size:10px;font-weight:900}.live-badge i{display:inline-block;width:6px;height:6px;margin-right:5px;border-radius:50%;background:#2fa76a}.icon-button,.menu-button{display:grid;width:36px;height:36px;place-items:center;border:1px solid var(--line);border-radius:10px;background:#fff}.menu-button{display:none}.content{padding:34px}.view{display:none}.view.active{display:block}.hero-row{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:26px}.hero-row h2{margin:0;font-size:30px;letter-spacing:-.045em}.hero-row .muted{margin:8px 0 0;font-size:14px}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.metric-card{position:relative;min-height:160px;padding:22px;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:0 7px 25px rgba(25,44,33,.035)}.metric-card.accent{border-color:#184e34;background:linear-gradient(145deg,#17462f,#0f3322);color:#fff}.metric-card p{margin:20px 0 3px;color:#6d7b72;font-size:12px;font-weight:700}.metric-card.accent p,.metric-card.accent small{color:#9db9a8}.metric-card strong{font-size:33px;letter-spacing:-.05em}.metric-card small{display:block;margin-top:8px;color:#8e9891;font-size:10px}.metric-icon{position:absolute;right:20px;top:20px;color:#7d9a87;font-size:20px}.online-dot{display:inline-block;width:7px;height:7px;margin-right:5px;border-radius:50%;background:#31a86d}.dashboard-grid{display:grid;grid-template-columns:1.55fr 1fr;gap:16px;margin-top:16px}.panel{padding:23px;border:1px solid var(--line);border-radius:18px;background:#fff}.panel-heading{display:flex;align-items:center;justify-content:space-between}.panel h3{margin:0;font-size:17px}.text-button{border:0;background:transparent;color:#397458;font-size:11px;font-weight:800}.stack-list{display:grid;gap:9px;margin-top:20px}.stack-item{display:grid;grid-template-columns:1fr auto;align-items:center;padding:13px 0;border-top:1px solid #edf0ed}.stack-item:first-child{border-top:0}.stack-item strong{display:block;font-size:13px}.stack-item small{display:block;margin-top:5px;color:#8a948d;font-size:10px}.status-pill{display:inline-flex;align-items:center;border-radius:99px;padding:5px 9px;background:#edf1ed;color:#5f6d64;font-size:9px;font-weight:850}.status-pill.active,.status-pill.online{background:#e5f5ea;color:#1d7948}.status-pill.warning,.status-pill.scheduled{background:#fff2cc;color:#8a6500}.status-pill.offline,.status-pill.ended{background:#f2f3f2;color:#6d746f}.status-pill.paused{background:#ffe9e3;color:#ad472f}.health-ring-wrap{display:flex;align-items:center;justify-content:space-around;gap:20px;min-height:190px}.health-ring{display:grid;width:128px;height:128px;place-content:center;border:15px solid #ebefeb;border-top-color:#39a46d;border-radius:50%;text-align:center}.health-ring strong{font-size:27px}.health-ring span{color:#8c958e;font-size:9px}.health-legend{min-width:120px}.health-legend p{display:grid;grid-template-columns:12px 1fr auto;align-items:center;gap:7px;color:#6b756e;font-size:11px}.health-legend i{width:7px;height:7px;border-radius:50%}.health-legend .online{background:#35a66c}.health-legend .warning{background:#f2bd36}.health-legend .offline{background:#aeb5b0}.table-panel{padding:0;overflow:hidden}.toolbar{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border-bottom:1px solid var(--line);color:#7e8981;font-size:11px}.search{max-width:300px;padding:10px 12px;background:#f7f8f5}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{padding:15px 20px;border-bottom:1px solid #eef1ee;text-align:left;font-size:12px}th{background:#fafbf9;color:#89928c;font-size:10px;letter-spacing:.04em}td strong{display:block}td small{display:block;margin-top:4px;color:#8c958f}.empty-state{padding:40px;color:#909a93;text-align:center;font-size:12px}.table-wrap+.empty-state{display:none}dialog{width:min(680px,calc(100% - 32px));max-height:90vh;border:0;border-radius:22px;padding:0;box-shadow:0 30px 90px rgba(9,34,20,.25)}dialog::backdrop{background:rgba(13,32,21,.55);backdrop-filter:blur(4px)}dialog form{padding:27px}.dialog-heading{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:24px}.dialog-heading h2{margin:0}.close-button{border:0;background:transparent;color:#7c867f;font-size:27px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-grid .full{grid-column:1/-1}.dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:18px}.toast{position:fixed;right:24px;bottom:24px;z-index:30;transform:translateY(20px);padding:13px 18px;border-radius:12px;background:#153d2b;color:#fff;box-shadow:var(--shadow);font-size:12px;opacity:0;pointer-events:none;transition:.25s}.toast.show{transform:none;opacity:1}
.secret-box{display:grid;gap:7px;margin:22px 0;padding:18px;border:1px solid #dce4dd;border-radius:14px;background:#f5f8f4}.secret-box small{margin-top:6px;color:#77847b;font-size:9px;font-weight:800;letter-spacing:.12em}.secret-box strong,.secret-box code{overflow-wrap:anywhere;font-size:14px}.command-button{border:1px solid #dce4dd;border-radius:8px;padding:7px 9px;background:#fff;color:#286245;font-size:10px;font-weight:800}.command-button:hover{background:#edf5ef}.activation-code-value{margin:28px 0;padding:24px;border:2px dashed #7a9f88;border-radius:16px;background:#f2f8f3;color:#17442e;font-size:32px;font-weight:900;letter-spacing:.08em;text-align:center}.danger-button{border:1px solid #f0c7bd;border-radius:8px;padding:7px 9px;background:#fff5f2;color:#ad472f;font-size:10px;font-weight:800}
.activation-code-list{display:grid;gap:9px;max-height:420px;margin:22px 0;overflow:auto}.activation-code-row{display:grid;grid-template-columns:minmax(130px,1fr) minmax(190px,1.4fr);align-items:center;gap:14px;padding:14px 16px;border:1px solid #dce4dd;border-radius:13px;background:#f5f8f4}.activation-code-row strong{font-size:12px}.activation-code-row code{color:#17442e;font-size:19px;font-weight:900;letter-spacing:.06em;text-align:right}.activation-code-row small{display:block;margin-top:4px;color:#7b887f;font-size:9px}#activation-single-fields[hidden]{display:none}
.button-row{display:flex;gap:9px}.content-grid{display:grid;grid-template-columns:1.12fr .88fr;gap:16px}.asset-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(155px,1fr));gap:13px;margin-top:20px}.asset-card{overflow:hidden;border:1px solid var(--line);border-radius:14px;background:#fafbf8}.asset-card img,.asset-placeholder{display:grid;width:100%;height:120px;place-items:center;object-fit:cover;background:#e8eee9;color:#7f8d84;font-size:28px}.asset-card-body{padding:12px}.asset-card strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.asset-card small{display:block;margin-top:5px;color:#879189;font-size:9px}.asset-actions{display:flex;justify-content:space-between;gap:6px;margin-top:10px}.content-list{display:grid;gap:11px;margin-top:20px}.content-item{padding:15px;border:1px solid var(--line);border-radius:14px;background:#fbfcfa}.content-item-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.content-item strong{font-size:13px}.content-item small{display:block;margin-top:4px;color:#879189;font-size:10px}.thumbnail-row{display:flex;margin-top:12px}.thumbnail-row img,.thumbnail-mini{width:42px;height:42px;margin-right:-7px;border:3px solid #fff;border-radius:10px;object-fit:cover;background:#e6ece7}.inventory-bar{height:7px;margin-top:11px;overflow:hidden;border-radius:99px;background:#e8ede9}.inventory-bar i{display:block;height:100%;background:#48a873}.wide-dialog{width:min(820px,calc(100% - 32px))}.preview-dialog{width:min(600px,calc(100% - 32px))}.upload-field{padding:15px;border:1px dashed #b9c8bc;border-radius:12px;background:#f7faf7}.upload-field small{color:#869188;font-weight:500}.check-label{display:flex;grid-column:auto!important;align-items:center;gap:9px}.check-label input{width:auto}.field-title{margin:4px 0 10px;font-size:12px;font-weight:850}.item-editor{display:grid;gap:8px;max-height:280px;overflow:auto}.editor-row{display:grid;grid-template-columns:30px 1fr 95px 75px;align-items:center;gap:9px;padding:9px;border:1px solid var(--line);border-radius:11px}.editor-row input[type=checkbox]{width:auto}.editor-row img,.editor-row .asset-placeholder{width:42px;height:42px;border-radius:8px;object-fit:cover;font-size:14px}.editor-row .editor-name{display:flex;align-items:center;gap:9px;font-size:11px;font-weight:750}.editor-row input[type=number]{padding:8px}.kiosk-preview{min-height:520px;overflow:hidden;border-radius:18px;background:#123725;color:#fff}.preview-hero{position:relative;height:310px;background:#224c37}.preview-hero img{width:100%;height:100%;object-fit:cover}.preview-copy{padding:25px;text-align:center}.preview-copy h3{margin:0 0 8px;font-size:24px}.preview-prizes{display:flex;justify-content:center;gap:8px;margin:18px 0}.preview-prizes span{padding:8px 10px;border-radius:9px;background:rgba(255,255,255,.1);font-size:10px}.preview-button{display:inline-block;padding:12px 28px;border-radius:11px;background:var(--lime);color:#173d2b;font-weight:900}.status-pill.revoked,.status-pill.expired{background:#ffe9e3;color:#ad472f}
@media(max-width:1050px){.metric-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid,.content-grid{grid-template-columns:1fr}.login-shell{grid-template-columns:1fr}.login-brand{display:none}}@media(max-width:760px){.sidebar{transform:translateX(-100%);transition:.2s}.sidebar.open{transform:none}.app-main{width:100%;margin-left:0}.menu-button{display:grid}.topbar{padding:14px 18px}.content{padding:22px 16px}.metric-grid{grid-template-columns:1fr 1fr}.hero-row{align-items:flex-start;flex-direction:column}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.editor-row{grid-template-columns:28px 1fr}.editor-row input[type=number]{grid-column:2}}@media(max-width:480px){.metric-grid{grid-template-columns:1fr}.login-panel{padding:20px}.login-card{padding:28px}.topbar-actions{display:none}.button-row{width:100%;flex-direction:column}.button-row button{width:100%}}
