:root{--c-primary:#26963f;--c-primary-dark:#176b2c;--c-primary-light:#eef9f0;--c-primary-border:#9dcea8;--c-accent:var(--c-primary);--c-accent-dark:var(--c-primary-dark);--c-accent-border:var(--c-primary-border);--c-accent-light:#f4fbf5;--c-on-primary:#fff;--c-focus-ring:#26963f3d;--c-sidebar:#163d25;--c-bg:#f5f8f5;--c-surface:#fff;--c-surface-muted:#f1f5f2;--c-surface-soft:var(--c-surface-muted);--c-border:#d9e5dc;--c-border-strong:#a7beac;--c-text:#17231a;--c-text-muted:#5d6d61;--c-text-light:#89968c;--c-disabled-bg:#eef1ef;--c-disabled-text:#718077;--c-success:#15803d;--c-success-bg:#f0fdf4;--c-success-border:#c0dd97;--c-warn:#b45309;--c-warn-bg:#fffbeb;--c-warning-bg:var(--c-warn-bg);--c-warn-border:#fac775;--c-danger:#b91c1c;--c-danger-bg:#fef2f2;--c-danger-border:#f09595;--c-info:#28663a;--c-info-bg:#eff7f1;--c-info-border:#b8d5bf;--radius-sm:4px;--radius-md:8px;--radius-lg:8px;--radius-xl:8px;--radius-full:9999px;--font:"Noto Sans KR", "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;--font-size-xs:12px;--font-size-sm:13px;--font-size-base:15px;--font-size-md:16px;--font-size-lg:18px;--font-size-xl:22px;--font-size-2xl:28px;--shadow-sm:0 1px 2px #17231a0d;--shadow-card:0 1px 2px #17231a0d;--shadow-soft:var(--shadow-card);--shadow-strong:0 8px 24px #17231a29;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-2xl:48px;--max-width:1200px;--content-width:800px}*,:before,:after{box-sizing:border-box;letter-spacing:0;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;font-size:16px}body{font-family:var(--font);font-size:var(--font-size-base);color:var(--c-text);background:var(--c-bg);-webkit-font-smoothing:antialiased;line-height:1.7}img,video,iframe{max-width:100%;display:block}a{color:var(--c-primary-dark);text-decoration:none}a:hover{text-decoration:underline;-webkit-text-decoration-color:var(--c-primary-border);text-decoration-color:var(--c-primary-border)}ul,ol{list-style:none}button{font:inherit;cursor:pointer}input,select,textarea{font:inherit}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--c-focus-ring);outline-offset:2px}.container{width:100%;max-width:var(--max-width);padding:0 var(--space-md);margin:0 auto}.container-sm{max-width:var(--content-width);padding:0 var(--space-md);margin:0 auto}.page-wrapper{flex-direction:column;min-height:100vh;display:flex}main{padding:var(--space-xl) 0;flex:1}.grid{gap:var(--space-md);display:grid}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}.grid-auto{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.flex{display:flex}.flex-center{justify-content:center;align-items:center;display:flex}.flex-between{justify-content:space-between;align-items:center;display:flex}.flex-wrap{flex-wrap:wrap}.gap-sm{gap:var(--space-sm)}.gap-md{gap:var(--space-md)}.nav{background:var(--c-primary-light);border:.5px solid var(--c-primary-border);padding:0 var(--space-lg);z-index:100;justify-content:space-between;align-items:center;height:60px;display:flex;position:sticky;top:0}.nav-logo{color:var(--c-primary-dark);font-size:var(--font-size-base);align-items:center;gap:var(--space-sm);font-weight:500;text-decoration:none;display:flex}.nav-logo:hover{text-decoration:none}.nav-logo .logo-icon{color:var(--c-primary);font-size:22px}.nav-links{gap:var(--space-xs);display:flex}.nav-link{color:var(--c-primary-dark);font-size:var(--font-size-sm);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;padding:6px 14px;text-decoration:none;transition:background .15s,color .15s}.nav-link:hover{color:var(--c-primary-dark);background:#11111114;text-decoration:none}.nav-link.active{background:var(--c-primary);color:#fff;font-weight:500}.nav-actions{align-items:center;gap:var(--space-sm);display:flex}.nav-btn{background:var(--c-primary);color:#fff;font-size:var(--font-size-xs);border-radius:var(--radius-sm);border:none;padding:6px 16px;font-weight:500;transition:background .15s}.nav-btn:hover{background:var(--c-primary-dark)}.nav-toggle{border:.5px solid var(--c-primary-border);border-radius:var(--radius-sm);color:var(--c-primary-dark);background:0 0;padding:6px 8px;font-size:20px;display:none}.nav-drawer{background:var(--c-primary-light);border-top:.5px solid var(--c-primary-border);padding:var(--space-sm) var(--space-md);gap:var(--space-xs);flex-direction:column;display:none}.nav-drawer.open{display:flex}.nav-drawer .nav-link{text-align:left;width:100%;padding:10px 14px}.breadcrumb{font-size:var(--font-size-xs);color:var(--c-text-muted);padding:var(--space-sm) 0;flex-wrap:wrap;align-items:center;gap:6px;display:flex}.breadcrumb a{color:var(--c-primary-dark)}.breadcrumb a:hover{text-decoration:underline}.breadcrumb-sep{color:var(--c-text-light);font-size:10px}.breadcrumb-current{color:var(--c-text)}.hero{background:var(--c-primary);color:#fff;padding:var(--space-2xl) var(--space-xl);border-radius:var(--radius-lg)}.hero-tag{font-size:var(--font-size-xs);letter-spacing:0;text-transform:uppercase;color:#ffffffd1;margin-bottom:var(--space-sm);font-weight:500}.hero h1{font-size:var(--font-size-xl);margin-bottom:var(--space-sm);font-weight:500;line-height:1.4}.hero p{font-size:var(--font-size-sm);color:#ffffffa6;max-width:520px;margin-bottom:var(--space-md)}.hero-actions{gap:var(--space-sm);flex-wrap:wrap;display:flex}.btn{font-family:var(--font);font-size:var(--font-size-sm);border-radius:var(--radius-sm);cursor:pointer;border:none;align-items:center;gap:6px;padding:8px 20px;font-weight:500;text-decoration:none;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.btn:hover{text-decoration:none}.btn-primary{background:var(--c-primary);color:#fff}.btn-primary:hover{background:var(--c-primary-dark)}.btn-primary-invert{color:var(--c-primary-dark);background:#fff}.btn-primary-invert:hover{background:var(--c-accent-light)}.btn-secondary{background:var(--c-surface);color:var(--c-text);border:.5px solid var(--c-border-strong)}.btn-secondary:hover{background:var(--c-bg)}.btn-outline{color:#ffffffd9;background:0 0;border:.5px solid #ffffff59}.btn-outline:hover{background:#ffffff1f}.btn-ghost{color:var(--c-primary-dark);border:.5px solid var(--c-primary-border);background:0 0}.btn-ghost:hover{background:var(--c-accent-light)}.btn-danger{background:var(--c-danger-bg);color:var(--c-danger);border:.5px solid var(--c-danger-border)}.btn-danger:hover{background:#fecaca}.btn-sm{font-size:var(--font-size-xs);padding:5px 12px}.btn-lg{font-size:var(--font-size-base);padding:12px 28px}.btn-block{justify-content:center;width:100%}.btn:disabled{opacity:.45;cursor:not-allowed}.metric-grid{gap:var(--space-sm);grid-template-columns:repeat(auto-fit,minmax(140px,1fr));display:grid}.metric-card{background:var(--c-surface);border:.5px solid var(--c-border);border-radius:var(--radius-md);padding:var(--space-md)}.metric-label{font-size:var(--font-size-xs);color:var(--c-text-muted);margin-bottom:4px}.metric-value{color:var(--c-text);font-size:24px;font-weight:500;line-height:1.2}.metric-delta{font-size:var(--font-size-xs);margin-top:4px}.metric-delta.up{color:var(--c-success)}.metric-delta.down{color:var(--c-danger)}.metric-delta.neutral{color:var(--c-text-muted)}.card-grid{gap:var(--space-md);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.card{background:var(--c-surface);border:.5px solid var(--c-border);border-radius:var(--radius-lg);padding:var(--space-md) calc(var(--space-md) + 4px);cursor:pointer;color:var(--c-text);text-decoration:none;transition:border-color .15s,box-shadow .15s;display:block}.card:hover{border-color:var(--c-primary-border);box-shadow:var(--shadow-sm);text-decoration:none}.card-icon{border-radius:var(--radius-sm);background:var(--c-accent-light);width:40px;height:40px;margin-bottom:var(--space-sm);color:var(--c-primary);justify-content:center;align-items:center;font-size:20px;display:flex}.card h3{font-size:var(--font-size-sm);margin-bottom:4px;font-weight:500}.card p{font-size:var(--font-size-xs);color:var(--c-text-muted);line-height:1.6}.card.featured{border:2px solid var(--c-primary)}.badge{font-size:var(--font-size-xs);border-radius:var(--radius-full);white-space:nowrap;align-items:center;gap:4px;padding:3px 10px;font-weight:500;display:inline-flex}.badge-default{color:#374151;border:.5px solid var(--c-border);background:#f1f2f4}.badge-blue{background:var(--c-info-bg);color:var(--c-info)}.badge-green{background:var(--c-success-bg);color:var(--c-success)}.badge-amber{background:var(--c-warn-bg);color:var(--c-warn)}.badge-red{background:var(--c-danger-bg);color:var(--c-danger)}.alert{align-items:flex-start;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);font-size:var(--font-size-sm);line-height:1.6;display:flex}.alert-icon{flex-shrink:0;margin-top:1px;font-size:18px}.alert-info{background:var(--c-info-bg);color:var(--c-info);border:.5px solid var(--c-info-border)}.alert-success{background:var(--c-success-bg);color:#14532d;border:.5px solid var(--c-success-border)}.alert-warn{background:var(--c-warn-bg);color:#78350f;border:.5px solid var(--c-warn-border)}.alert-danger{background:var(--c-danger-bg);color:#7f1d1d;border:.5px solid var(--c-danger-border)}.alert-info .alert-icon{color:var(--c-primary)}.alert-success .alert-icon{color:var(--c-success)}.alert-warn .alert-icon{color:var(--c-warn)}.alert-danger .alert-icon{color:var(--c-danger)}.tabs{border-bottom:.5px solid var(--c-border);scrollbar-width:none;gap:0;display:flex;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tab{font-size:var(--font-size-sm);cursor:pointer;color:var(--c-text-muted);white-space:nowrap;font-family:var(--font);background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-.5px;padding:10px 18px;transition:color .15s}.tab:hover:not(.active){color:var(--c-text)}.tab.active{color:var(--c-primary);border-bottom-color:var(--c-primary);font-weight:500}.tab-content{padding:var(--space-md) 0}.table-wrap{background:var(--c-surface);border:.5px solid var(--c-border);border-radius:var(--radius-lg);overflow:auto hidden}table{border-collapse:collapse;width:100%;font-size:var(--font-size-sm)}thead th{background:var(--c-primary-light);color:var(--c-info);text-align:left;border-bottom:.5px solid var(--c-primary-border);font-weight:500;font-size:var(--font-size-xs);letter-spacing:0;white-space:nowrap;padding:10px 16px}tbody td{border-bottom:.5px solid var(--c-border);color:var(--c-text);vertical-align:middle;padding:10px 16px}tbody tr:last-child td{border-bottom:none}tbody tr:hover td{background:var(--c-accent-light)}tfoot td{border-top:.5px solid var(--c-border);color:var(--c-text-muted);font-size:var(--font-size-xs);padding:10px 16px}th.col-check,td.col-check{text-align:center;width:40px;padding-right:0}.form-group{flex-direction:column;gap:5px;display:flex}.form-label{font-size:var(--font-size-sm);color:var(--c-text);font-weight:500}.form-required{color:var(--c-danger);margin-left:2px}.form-input,.form-select,.form-textarea{background:var(--c-surface);border:.5px solid var(--c-border-strong);border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-family:var(--font);color:var(--c-text);outline:none;width:100%;padding:9px 12px;transition:border-color .15s,box-shadow .15s}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--c-primary);box-shadow:0 0 0 3px var(--c-focus-ring)}.form-input::placeholder{color:var(--c-text-light)}.form-input.error{border-color:var(--c-danger)}.form-input.success{border-color:var(--c-success)}.form-select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill='%236b7280' d='M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 011.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;background-size:16px;padding-right:36px}.form-textarea{resize:vertical;min-height:100px}.form-hint{font-size:var(--font-size-xs);color:var(--c-text-muted)}.form-error-msg{font-size:var(--font-size-xs);color:var(--c-danger)}.form-row{gap:var(--space-md);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.form-actions{gap:var(--space-sm);margin-top:var(--space-md);display:flex}.form-check{align-items:center;gap:var(--space-sm);font-size:var(--font-size-sm);cursor:pointer;display:flex}.form-check input[type=radio],.form-check input[type=checkbox]{accent-color:var(--c-primary);cursor:pointer;width:15px;height:15px}.pagination{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.page-btn{border-radius:var(--radius-sm);border:.5px solid var(--c-border);background:var(--c-surface);min-width:32px;height:32px;color:var(--c-text);font-size:var(--font-size-sm);font-family:var(--font);cursor:pointer;justify-content:center;align-items:center;padding:0 6px;transition:background .12s;display:flex}.page-btn.active{background:var(--c-primary);color:#fff;border-color:var(--c-primary);font-weight:500}.page-btn:hover:not(.active){background:var(--c-accent-light)}.page-btn:disabled{opacity:.4;cursor:not-allowed}.divider{background:var(--c-border);height:.5px;margin:var(--space-md) 0;border:none}.divider-label{align-items:center;gap:var(--space-sm);color:var(--c-text-muted);font-size:var(--font-size-xs);margin:var(--space-md) 0;display:flex}.divider-label:before,.divider-label:after{content:"";background:var(--c-border);flex:1;height:.5px}.section-title{font-size:var(--font-size-lg);color:var(--c-text);margin-bottom:var(--space-md);font-weight:500}.section-subtitle{font-size:var(--font-size-sm);color:var(--c-text-muted);margin-top:-var(--space-sm);margin-bottom:var(--space-md)}.section-label{font-size:var(--font-size-xs);letter-spacing:0;text-transform:uppercase;color:var(--c-text-muted);margin-bottom:var(--space-sm);padding-bottom:var(--space-xs);border-bottom:.5px solid var(--c-border);font-weight:500}.footer{background:var(--c-primary-light);border-top:.5px solid var(--c-primary-border);padding:var(--space-xl) 0;margin-top:auto}.footer-inner{justify-content:space-between;align-items:flex-start;gap:var(--space-xl);flex-wrap:wrap;display:flex}.footer-brand{color:var(--c-primary-dark);font-size:var(--font-size-sm);font-weight:500}.footer-links{gap:var(--space-md);flex-wrap:wrap;display:flex}.footer-link{color:var(--c-text-muted);font-size:var(--font-size-xs);text-decoration:none}.footer-link:hover{color:var(--c-primary-dark)}.footer-copy{font-size:var(--font-size-xs);color:var(--c-text-light);margin-top:var(--space-md)}.text-center{text-align:center}.text-right{text-align:right}.text-muted{color:var(--c-text-muted)}.text-primary{color:var(--c-primary)}.text-danger{color:var(--c-danger)}.text-success{color:var(--c-success)}.text-sm{font-size:var(--font-size-sm)}.text-xs{font-size:var(--font-size-xs)}.font-medium{font-weight:500}.mt-sm{margin-top:var(--space-sm)}.mt-md{margin-top:var(--space-md)}.mt-lg{margin-top:var(--space-lg)}.mb-sm{margin-bottom:var(--space-sm)}.mb-md{margin-bottom:var(--space-md)}.mb-lg{margin-bottom:var(--space-lg)}.p-sm{padding:var(--space-sm)}.p-md{padding:var(--space-md)}.p-lg{padding:var(--space-lg)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-md{border-radius:var(--radius-md)}.rounded-lg{border-radius:var(--radius-lg)}.bg-surface{background:var(--c-surface)}.bg-light{background:var(--c-bg)}.border{border:.5px solid var(--c-border)}.hidden{display:none!important}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (max-width:768px){:root{--font-size-xl:19px;--font-size-2xl:22px}.nav-links{display:none}.nav-toggle{display:flex}.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}.hero{padding:var(--space-xl) var(--space-md)}.hero h1{font-size:19px}.form-row{grid-template-columns:1fr}.form-actions{flex-direction:column}.form-actions .btn{justify-content:center;width:100%}.footer-inner{gap:var(--space-md);flex-direction:column}.footer-links{gap:var(--space-sm)}.pagination{justify-content:center}main{padding:var(--space-lg) 0}}@media (max-width:480px){.container,.container-sm{padding:0 var(--space-sm)}.metric-grid{grid-template-columns:repeat(2,1fr)}.card-grid{grid-template-columns:1fr}.hero-actions{flex-direction:column}.hero-actions .btn{justify-content:center;width:100%}.nav{padding:0 var(--space-md)}}@media (min-width:1400px){:root{--max-width:1320px}}
