:root{--bg:#07111f;--panel:rgba(9,22,38,0.72);--panel-strong:rgba(13,29,49,0.88);--text:#f4f7fb;--muted:#96a7be;--line:rgba(163,184,204,0.18);--accent:#56d4c8;--accent-strong:#f8b84e}*{box-sizing:border-box}html{font-family:Pretendard,SUIT,sans-serif}body{margin:0;min-height:100vh;color:var(--text);background:radial-gradient(circle at top left,rgba(86,212,200,.2),transparent 32%),radial-gradient(circle at top right,rgba(248,184,78,.16),transparent 28%),linear-gradient(135deg,#02060b,#07111f 48%,#0c1b2f)}a{color:inherit;text-decoration:none}.shell{width:min(1120px,calc(100% - 32px));margin:0 auto;padding:32px 0 72px}.admin-shell{width:min(1320px,calc(100% - 32px));margin:0 auto;padding:24px 0 40px}.nav{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 20px;border:1px solid var(--line);border-radius:20px;background:var(--panel);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.nav-links{display:flex;gap:12px}.nav-link{padding:10px 14px;border-radius:999px;color:var(--muted)}.nav-link.active{background:rgba(86,212,200,.14);color:var(--text)}.admin-hero,.hero{margin-top:28px;padding:36px;border:1px solid var(--line);border-radius:28px;background:var(--panel-strong);box-shadow:0 30px 80px rgba(0,0,0,.24)}.eyebrow{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;background:rgba(248,184,78,.12);color:var(--accent-strong);font-size:13px;letter-spacing:.04em;text-transform:uppercase}.admin-hero h1,.hero h1{margin:18px 0 12px;font-size:clamp(2.4rem,5vw,4.6rem);line-height:.98}.admin-hero p,.hero p{max-width:680px;color:var(--muted);font-size:1.05rem;line-height:1.7}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:18px;gap:18px;margin-top:24px}.card{padding:24px;border:1px solid var(--line);border-radius:22px;background:rgba(7,17,31,.74)}.card h2{margin:0 0 10px;font-size:1.1rem}.card li,.card p{color:var(--muted);line-height:1.6}.card ul{margin:12px 0 0;padding-left:18px}.admin-grid{display:grid;grid-template-columns:1.2fr .8fr;grid-gap:18px;gap:18px;margin-top:24px}.admin-layout{display:grid;grid-template-columns:280px minmax(0,1fr);grid-gap:24px;gap:24px;align-items:start}.admin-sidebar{position:-webkit-sticky;position:sticky;top:20px;align-self:start;min-height:calc(100vh - 40px);padding:28px 20px;border:1px solid rgba(255,255,255,.08);border-radius:18px;background:#101c2b;box-shadow:0 12px 32px rgba(0,0,0,.16)}.admin-sidebar-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.admin-sidebar-head h1{margin:0 0 10px;font-size:1.5rem;line-height:1.3}.admin-logout-button{width:100%;margin-top:16px;color:#f4f7fb;font:inherit;cursor:pointer}.admin-current-user,.admin-logout-button{padding:12px 14px;border:1px solid rgba(255,255,255,.08);border-radius:10px;background:rgba(255,255,255,.04)}.admin-current-user{display:grid;grid-gap:4px;gap:4px}.admin-current-user-slot{min-height:74px;margin-top:16px}.admin-current-user-slot.is-loading{border:1px solid rgba(255,255,255,.06);border-radius:10px;background:rgba(255,255,255,.03)}.admin-current-user strong{font-size:.95rem;color:#ffffff}.admin-current-user span{color:#9fb0c3;font-size:.85rem}.admin-sidebar-toggle{display:none;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:1px solid rgba(255,255,255,.08);border-radius:12px;background:rgba(255,255,255,.04);cursor:pointer}.admin-sidebar-toggle span{display:block;width:18px;height:2px;margin:3px 0;border-radius:999px;background:#f4f7fb}.admin-sidebar-head p{margin:0;color:var(--muted);font-size:.95rem;line-height:1.5}.admin-side-nav{display:grid;grid-gap:18px;gap:18px;margin-top:28px}.admin-nav-group{padding-top:18px;border-top:1px solid rgba(255,255,255,.08)}.admin-nav-group:first-child{padding-top:0;border-top:0}.admin-nav-group strong{display:block;margin-bottom:12px;font-size:.95rem}.admin-nav-links{display:grid;grid-gap:8px;gap:8px}.admin-nav-link{display:block;padding:10px 12px;border:1px solid transparent;border-radius:10px;color:#c1cedd;background:transparent;transition:border-color .16s ease,background .16s ease,color .16s ease,transform .16s ease}.admin-nav-link:hover{transform:translateX(2px);border-color:rgba(255,255,255,.06);background:rgba(255,255,255,.06);color:#ffffff}.admin-nav-link.active{border-color:rgba(255,255,255,.08);background:rgba(255,255,255,.08);color:#ffffff}.admin-nav-link.is-disabled{opacity:.45;cursor:default}.admin-content{display:grid;grid-gap:16px;gap:16px;align-content:start;align-self:start}.admin-menu-card{padding:24px;border:1px solid rgba(255,255,255,.08);border-radius:16px;background:rgba(16,28,43,.9);box-shadow:0 10px 28px rgba(0,0,0,.12)}.admin-menu-head h2{margin:0 0 8px;font-size:1.2rem}.admin-menu-head p{margin:0;color:var(--muted);line-height:1.5}.admin-button-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px;margin-top:16px}.admin-menu-button{width:100%;padding:14px 16px;border:1px solid rgba(255,255,255,.08);border-radius:10px;background:rgba(255,255,255,.04);color:#f4f7fb;font-size:.95rem;font-weight:500;text-align:left;cursor:pointer;transition:background .16s ease,border-color .16s ease,color .16s ease}.admin-menu-button:hover{border-color:rgba(255,255,255,.12);background:rgba(255,255,255,.08);color:#ffffff}.admin-menu-button.is-disabled{opacity:.5;cursor:not-allowed}.admin-page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:18px 20px;border:1px solid rgba(255,255,255,.08);border-radius:16px;background:rgba(16,28,43,.9);align-self:start}.admin-page-header h2{margin:0;font-size:1.25rem;line-height:1.35}.admin-page-kicker{margin:0;color:#9fb0c3;font-size:.9rem}.admin-page-description{margin:0;max-width:720px;color:var(--muted);line-height:1.6}.admin-secondary-link{background:rgba(255,255,255,.04);color:#f4f7fb}.admin-primary-link,.admin-secondary-link{display:inline-flex;align-items:center;justify-content:center;min-width:108px;padding:12px 14px;border:1px solid rgba(255,255,255,.08);border-radius:10px}.admin-primary-link{background:#2f6fed;color:#ffffff}.admin-table-card{padding:24px;border:1px solid rgba(255,255,255,.08);border-radius:16px;background:rgba(16,28,43,.9)}.admin-table-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.admin-toolbar-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px}.admin-filter-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:16px;gap:16px;margin-bottom:18px}.admin-search-row{margin-bottom:18px}.admin-table-toolbar h3{margin:0 0 6px;font-size:1.15rem}.admin-table-description{margin:0;color:var(--muted);line-height:1.5}.admin-table-wrap{overflow-x:auto}.admin-table{width:100%;border-collapse:collapse}.admin-table td,.admin-table th{padding:14px 12px;border-top:1px solid rgba(255,255,255,.08);text-align:left;vertical-align:top;font-size:.94rem}.admin-table th{color:#aabacd;font-weight:600}.admin-table td{color:#f4f7fb}.admin-table-empty{color:#9fb0c3;text-align:center}.admin-pagination{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:18px}.admin-pagination span{color:#9fb0c3;font-size:.92rem}.admin-pagination button{min-width:72px;padding:10px 12px;border:1px solid rgba(255,255,255,.08);border-radius:10px;background:rgba(255,255,255,.04);color:#f4f7fb;font:inherit}.admin-pagination button:disabled{opacity:.45;cursor:not-allowed}.admin-group-create-row{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:12px;gap:12px;align-items:end;margin-bottom:18px}.admin-group-create-row .admin-primary-button{white-space:nowrap}.admin-group-stack{display:grid;grid-template-columns:minmax(200px,1fr) minmax(260px,1.6fr) minmax(220px,1fr);grid-gap:18px;gap:18px;align-items:start}.admin-group-list-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));grid-gap:12px;gap:12px}.admin-group-list-col{display:flex;flex-direction:column;gap:8px;max-height:560px;overflow-y:auto;padding-right:6px;scrollbar-width:thin;scrollbar-color:rgba(47,111,237,.35) transparent}.admin-group-list-col::-webkit-scrollbar{width:5px}.admin-group-list-col::-webkit-scrollbar-track{background:transparent}.admin-group-list-col::-webkit-scrollbar-thumb{background:rgba(47,111,237,.35);border-radius:99px}.admin-group-list-col::-webkit-scrollbar-thumb:hover{background:rgba(47,111,237,.6)}.admin-table-wrap{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.12) transparent}.admin-table-wrap::-webkit-scrollbar{height:5px;width:5px}.admin-table-wrap::-webkit-scrollbar-track{background:transparent}.admin-table-wrap::-webkit-scrollbar-thumb{background:rgba(255,255,255,.12);border-radius:99px}.admin-table-wrap::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.22)}.admin-multi-select-box{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.12) transparent}.admin-multi-select-box::-webkit-scrollbar{width:5px}.admin-multi-select-box::-webkit-scrollbar-track{background:transparent}.admin-multi-select-box::-webkit-scrollbar-thumb{background:rgba(255,255,255,.12);border-radius:99px}.admin-multi-select-box::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.22)}.admin-group-item{padding:12px 14px;border:1px solid rgba(255,255,255,.08);border-radius:12px;background:rgba(255,255,255,.03);cursor:pointer}.admin-group-item.is-active{border-color:rgba(191,212,255,.28);background:rgba(47,111,237,.12)}.admin-group-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.admin-group-title-row.is-compact{align-items:flex-start;margin-bottom:12px}.admin-group-name{display:-webkit-box;overflow:hidden;color:#f4f7fb;font-size:.94rem;line-height:1.35;-webkit-line-clamp:2;-webkit-box-orient:vertical}.admin-group-count-badge{display:inline-flex;align-items:center;justify-content:center;padding:6px 10px;border:1px solid rgba(191,212,255,.2);border-radius:999px;background:rgba(47,111,237,.12);color:#bfd4ff;font-size:.84rem;white-space:nowrap}.admin-group-actions{display:flex;gap:8px;margin-top:12px}.admin-group-panel{padding:18px;border:1px solid rgba(255,255,255,.08);border-radius:14px;background:rgba(255,255,255,.02)}.admin-group-panel h3{margin:0 0 12px;font-size:1rem}.admin-group-panel-count{color:#9fb0c3;font-size:.92rem;font-weight:500}.admin-group-selected-panel{margin-top:18px}.admin-group-panel-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.admin-group-panel-header h3{margin:0}.admin-file-input{display:none}.admin-table-clickable-row{cursor:pointer;transition:background .16s ease}.admin-table-clickable-row:focus-visible td,.admin-table-clickable-row:hover td{background:rgba(255,255,255,.05)}.admin-empty-panel{padding:28px 18px;border:1px dashed rgba(255,255,255,.12);border-radius:14px;background:rgba(255,255,255,.02)}.admin-empty-title{margin:0 0 8px;font-size:1rem;color:#f4f7fb}.admin-empty-state{margin:0;color:var(--muted);line-height:1.5}.admin-form-card{padding:24px;border:1px solid rgba(255,255,255,.08);border-radius:16px;background:rgba(16,28,43,.9)}.admin-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:16px;gap:16px;align-items:start}.admin-field{display:grid;grid-gap:8px;gap:8px;align-content:start}.admin-field span{color:#d9e3ee;font-size:.92rem}.admin-field-helper{color:#8ea1b6;font-size:.82rem;line-height:1.4}.admin-field-helper.is-error{color:#ffb7c0}.admin-field-helper.is-success{color:#bfd4ff}.admin-field input,.admin-field textarea,.admin-select{width:100%;padding:13px 14px;border:1px solid rgba(255,255,255,.08);border-radius:10px;background:rgba(255,255,255,.03);color:#ffffff;font:inherit}.admin-field input::placeholder,.admin-field textarea::placeholder{color:#7f92a7}.admin-select{-webkit-appearance:none;-moz-appearance:none;appearance:none}.admin-multi-select-box{max-width:100%;overflow-x:auto;overflow-y:hidden;padding:10px;border:1px solid rgba(255,255,255,.08);border-radius:10px;background:rgba(255,255,255,.03);display:grid;grid-auto-flow:column;grid-auto-columns:max-content;grid-template-rows:repeat(8,min-content);grid-gap:8px 18px;gap:8px 18px}.admin-multi-select-box.is-vertical-grid{max-height:320px;overflow-x:hidden;overflow-y:auto;grid-auto-flow:row;grid-auto-columns:auto;grid-template-columns:repeat(2,minmax(220px,1fr));grid-template-rows:none}.admin-multi-option{display:flex;align-items:center;gap:8px;color:#d9e3ee;font-size:.92rem;white-space:nowrap}.admin-multi-option input[type=checkbox]{width:auto;padding:0;margin:0}.admin-inline-link{border:none;background:transparent;color:#bfd4ff;cursor:pointer;font:inherit;padding:0;text-align:left}.admin-inline-link:hover{text-decoration:underline}.admin-modal-overlay{position:fixed;inset:0;background:rgba(3,9,18,.72);display:grid;place-items:center;z-index:50;padding:20px}.admin-modal-card{width:min(520px,100%);max-height:min(80vh,760px);overflow:auto;padding:20px;border:1px solid rgba(255,255,255,.1);border-radius:14px;background:rgba(16,28,43,.96)}.admin-modal-card h4{margin:0 0 8px;font-size:1.05rem}.admin-field-full{grid-column:1/-1}.admin-address-row{display:grid;grid-template-columns:minmax(0,1fr) 132px;grid-gap:10px;gap:10px}.admin-toolbar-desc{margin:4px 0 0;font-size:.85rem;color:#7a91a8}.admin-status-badge{display:inline-block;padding:3px 10px;border-radius:99px;font-size:.78rem;font-weight:600;letter-spacing:.02em}.admin-status-badge.is-active{background:rgba(52,211,153,.14);color:#6ee7b7;border:1px solid rgba(52,211,153,.25)}.admin-status-badge.is-inactive{background:rgba(255,255,255,.05);color:#7a91a8;border:1px solid rgba(255,255,255,.08)}.admin-info-box{padding:14px 18px;border:1px solid rgba(255,255,255,.08);border-radius:10px;background:rgba(255,255,255,.03);margin-bottom:20px}.admin-info-box-label{font-size:.78rem;font-weight:600;color:#7a91a8;text-transform:uppercase;letter-spacing:.06em;margin:0 0 10px}.admin-info-box-grid{display:flex;flex-wrap:wrap;gap:6px 24px}.admin-info-box-grid span{font-size:.9rem;color:#c8d8e8;display:flex;gap:8px}.admin-info-box-grid strong{color:#7a91a8;font-weight:500}.admin-form-actions{display:flex;gap:10px;margin-top:20px}.admin-form-message{margin:16px 0;padding:12px 14px;border-radius:10px;font-size:.95rem}.admin-form-message.is-error{background:rgba(208,68,86,.14);color:#ffb7c0}.admin-inline-note-spaced{margin-top:12px}.admin-form-message.is-success{background:rgba(47,111,237,.14);color:#bfd4ff}.admin-login-shell{display:grid;place-items:center;min-height:100vh;padding:24px}.admin-login-card{width:min(460px,100%);padding:28px;border:1px solid rgba(255,255,255,.08);border-radius:18px;background:rgba(16,28,43,.92);box-shadow:0 18px 40px rgba(0,0,0,.22)}.admin-login-header{margin-bottom:20px}.admin-login-header h1{margin:0 0 10px;font-size:1.6rem}.admin-login-header p{margin:0;color:var(--muted);line-height:1.6}.admin-login-form{display:grid;grid-gap:16px;gap:16px}.admin-danger-button,.admin-ghost-button,.admin-primary-button,.admin-secondary-button{padding:12px 18px;border-radius:10px;font:inherit;cursor:pointer}.admin-primary-button{border:1px solid rgba(47,111,237,.6);background:linear-gradient(135deg,#2f6fed,#1e56d0);color:#ffffff;font-weight:600;letter-spacing:.02em;box-shadow:0 2px 8px rgba(47,111,237,.25),inset 0 1px 0 rgba(255,255,255,.12);transition:background .15s ease,box-shadow .15s ease,transform .1s ease}.admin-primary-button:hover:not(:disabled){background:linear-gradient(135deg,#3d7cf5,#2563e0);box-shadow:0 4px 14px rgba(47,111,237,.38),inset 0 1px 0 rgba(255,255,255,.16)}.admin-primary-button:active:not(:disabled){background:linear-gradient(135deg,#1e56d0,#1748b8);box-shadow:0 1px 4px rgba(47,111,237,.2);transform:translateY(1px)}.admin-primary-button:disabled{opacity:.5;cursor:not-allowed}.admin-danger-button{border:1px solid rgba(255,107,129,.28);background:rgba(255,107,129,.12);color:#ffc1cb}.admin-ghost-button{background:rgba(255,255,255,.04)}.admin-ghost-button,.admin-secondary-button{border:1px solid rgba(255,255,255,.08);color:#f4f7fb}.admin-secondary-button{background:rgba(255,255,255,.06)}.admin-danger-button:disabled,.admin-secondary-button:disabled{opacity:.5;cursor:not-allowed}.admin-toggle-group{display:inline-grid;grid-template-columns:repeat(2,minmax(96px,1fr));gap:8px}.admin-toggle-button{padding:12px 14px;border:1px solid rgba(255,255,255,.08);border-radius:10px;background:rgba(255,255,255,.04);color:#cdd8e4;font:inherit;cursor:pointer}.admin-toggle-button.active{border-color:rgba(47,111,237,.6);background:rgba(47,111,237,.18);color:#ffffff}.kpi{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:14px;gap:14px}.metric{padding:18px;border:1px solid var(--line);border-radius:20px;background:rgba(4,12,24,.9)}.metric strong{display:block;margin-top:10px;font-size:2rem}@media (max-width:900px){.admin-grid,.admin-layout,.grid,.kpi{grid-template-columns:1fr}.admin-sidebar{position:static;min-height:auto;padding:16px}.admin-sidebar-head h1{margin:0;font-size:1.1rem}.admin-sidebar-toggle{display:inline-flex;flex-direction:column}.admin-side-nav{display:none;margin-top:16px}.admin-sidebar.is-open .admin-side-nav{display:grid}.admin-address-row,.admin-button-grid,.admin-form-grid{grid-template-columns:1fr}.admin-page-header,.admin-table-toolbar{flex-direction:column}.admin-filter-grid,.admin-group-create-row,.admin-group-stack,.admin-multi-select-box.is-vertical-grid{grid-template-columns:1fr}.admin-hero,.hero{padding:24px}.nav{flex-direction:column;align-items:flex-start}}.chatbot-shell{margin-top:24px}.chatbot-card{border:1px solid var(--line);border-radius:24px;background:var(--panel-strong);box-shadow:0 24px 64px rgba(0,0,0,.22);padding:24px;display:grid;grid-gap:16px;gap:16px}.chatbot-head h2{margin:0;font-size:1.6rem}.chatbot-head p{margin:8px 0 0;color:var(--muted)}.chatbot-quick-prompts{display:flex;gap:10px;flex-wrap:wrap}.chatbot-quick-prompts button{border:1px solid var(--line);background:rgba(255,255,255,.04);color:var(--text);border-radius:999px;padding:8px 12px;cursor:pointer}.chatbot-messages{border:1px solid var(--line);border-radius:18px;background:rgba(3,9,16,.45);padding:14px;min-height:320px;max-height:460px;overflow-y:auto;display:grid;grid-gap:10px;gap:10px}.chatbot-message{max-width:80%;border:1px solid var(--line);border-radius:14px;padding:10px 12px}.chatbot-message strong{display:block;font-size:.82rem;margin-bottom:20px;color:var(--accent)}.chatbot-message p{margin:0;color:var(--text);line-height:1.65}.chatbot-message.is-user{margin-left:auto;background:rgba(86,212,200,.14)}.chatbot-message.is-assistant{background:rgba(255,255,255,.04)}.chatbot-message.is-assistant>p{margin-bottom:3rem}.chatbot-sources{margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.12);display:grid;grid-gap:10px;gap:10px}.chatbot-sources-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.chatbot-sources-label{margin:0;font-size:.76rem;font-weight:700;letter-spacing:.01em}.chatbot-sources-head span{color:var(--muted);font-size:.74rem}.chatbot-sources-list{margin:0;padding-left:18px;display:grid;grid-gap:8px;gap:8px}.chatbot-source-item{border:1px solid rgba(255,255,255,.14);border-radius:10px;background:rgba(255,255,255,.03);padding:8px 10px;list-style-position:outside}.chatbot-source-main{display:grid;grid-gap:6px;gap:6px}.chatbot-source-title{margin:0;font-size:.88rem;color:var(--text)}.chatbot-source-meta{display:flex;flex-wrap:wrap;gap:8px}.chatbot-source-meta span{font-size:.72rem;color:var(--muted);background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:999px;padding:2px 8px}.chatbot-source-details{margin-top:8px}.chatbot-source-details summary{cursor:pointer;font-size:.78rem;color:var(--accent)}.chatbot-source-text{margin:8px 0 0;font-size:.82rem;color:var(--text);line-height:1.5}.chatbot-input-row{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:10px;gap:10px}.chatbot-input-row input{width:100%;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.03);color:var(--text);padding:12px;font:inherit}.chatbot-input-row button{border:none;border-radius:12px;background:linear-gradient(135deg,#56d4c8,#41b8ad);color:#04211f;font-weight:700;padding:12px 18px;cursor:pointer}.chatbot-input-row button:disabled{opacity:.5;cursor:not-allowed}@media (max-width:720px){.chatbot-message{max-width:100%}.chatbot-input-row{grid-template-columns:1fr}}