:root{--bg:#f8f9fa;--surface:#fff;--border:#e3e6ea;--border-strong:#c3c6d6;--text:#191c1d;--text-soft:#5c6370;--text-faint:#98a1ad;--primary:#0056d2;--primary-dark:#0040a1;--primary-soft:#dae2ff;--primary-faint:#e8effc;--danger:#ba1a1a;--danger-soft:#ffdad6;--warning:#b45309;--warning-soft:#fef3c7;--info:#0056d2;--info-soft:#d2e4fb;--green:#15803d;--green-soft:#d7f0dd;--radius:12px;--shadow:0 1px 3px rgba(25,28,29,.07);--shadow-lg:0 8px 24px rgba(25,28,29,.1)}*{box-sizing:border-box;margin:0;padding:0}#__nuxt,body,html{height:100%}body{background:var(--bg);color:var(--text);font-family:Pretendard,Apple SD Gothic Neo,Noto Sans KR,Malgun Gothic,sans-serif;font-size:14px;line-height:1.5}a{color:inherit;text-decoration:none}.app-shell{display:flex;min-height:100vh}.sidebar{background:var(--surface);border-right:1px solid var(--border);color:var(--text);display:flex;flex-direction:column;flex-shrink:0;height:100vh;overflow-y:auto;position:sticky;top:0;width:232px}.sidebar .brand{align-items:center;border-bottom:1px solid var(--border);display:flex;gap:10px;padding:18px 16px}.sidebar .brand .logo-mark{align-items:center;background:var(--primary);border-radius:9px;color:#fff;display:flex;flex-shrink:0;font-size:16px;font-weight:800;height:36px;justify-content:center;width:36px}.sidebar .brand .brand-name{color:var(--primary-dark);font-size:15.5px;font-weight:800;letter-spacing:-.3px;line-height:1.2}.sidebar .brand small{color:var(--text-faint);display:block;font-size:10.5px;font-weight:500;margin-top:1px}.sidebar nav{flex:1;padding:10px}.sidebar nav .group-label{color:var(--text-faint);font-size:11px;font-weight:700;letter-spacing:.3px;padding:14px 10px 4px}.sidebar nav a{align-items:center;border-radius:9px;color:var(--text-soft);display:flex;font-size:13.5px;font-weight:600;gap:9px;margin-bottom:2px;padding:9px 12px;position:relative}.sidebar nav a:hover{background:var(--bg);color:var(--text)}.sidebar nav a.router-link-active{background:var(--primary-faint);color:var(--primary-dark)}.sidebar nav a.router-link-active:before{background:var(--primary);border-radius:3px;bottom:6px;content:"";left:-10px;position:absolute;top:6px;width:3px}.sidebar .user-box{align-items:center;border-top:1px solid var(--border);color:var(--text-soft);display:flex;font-size:12.5px;justify-content:space-between;padding:14px 16px}.sidebar .user-box .user-name{align-items:center;color:var(--text);display:flex;font-weight:700;gap:8px}.sidebar .user-box button{background:none;border:1px solid var(--border);border-radius:7px;color:var(--text-soft);cursor:pointer;font-family:inherit;font-size:11.5px;font-weight:600;padding:4px 9px}.sidebar .user-box button:hover{background:var(--bg)}.main{flex:1;min-width:0;padding:26px 30px}.page-head{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin-bottom:20px}.page-head h1{font-size:21px;font-weight:800;letter-spacing:-.4px}.page-head .sub{color:var(--text-soft);font-size:13px;margin-top:3px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:16px;padding:20px}.card h2{font-size:15px;font-weight:800;letter-spacing:-.2px;margin-bottom:14px}.stat-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));margin-bottom:16px}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px}.stat-card .icon-tile{align-items:center;background:var(--primary-faint);border-radius:10px;display:flex;font-size:20px;height:42px;justify-content:center;margin-bottom:12px;width:42px}.stat-card .label{color:var(--text-soft);font-size:12.5px;font-weight:600}.stat-card .value{font-size:26px;font-weight:800;letter-spacing:-.6px;margin-top:4px}.stat-card .value small{color:var(--text-soft);font-size:13px;font-weight:600}.stat-card .delta{color:var(--primary);font-size:12px;font-weight:600;margin-top:4px}.avatar{align-items:center;background:var(--primary-soft);border-radius:50%;color:var(--primary-dark);flex-shrink:0;font-size:12.5px;font-weight:800;height:34px;justify-content:center;width:34px}.avatar,.segmented{display:inline-flex}.segmented{background:#eef0f3;border-radius:10px;gap:2px;padding:3px}.segmented button{background:none;border:none;border-radius:8px;color:var(--text-soft);cursor:pointer;font-family:inherit;font-size:13px;font-weight:700;padding:6px 14px}.segmented button.active{background:#fff;box-shadow:0 1px 3px #191c1d1f;color:var(--text)}.meter{background:#eef0f3;border-radius:99px;height:8px;min-width:80px;overflow:hidden}.meter>span{background:var(--primary);border-radius:99px;display:block;height:100%;transition:width .3s}.meter>span.warn{background:var(--warning)}.meter>span.over{background:var(--danger)}.table-wrap{overflow-x:auto}table.data{border-collapse:collapse;font-size:13.5px;width:100%}table.data th{background:var(--bg);color:var(--text-soft);font-size:12.5px;font-weight:700;text-align:left;white-space:nowrap}table.data td,table.data th{border-bottom:1px solid var(--border);padding:10px}table.data td{vertical-align:middle}table.data tr:last-child td{border-bottom:none}table.data tbody tr.clickable{cursor:pointer}table.data tbody tr.clickable:hover{background:var(--primary-faint)}table.data .num{font-variant-numeric:tabular-nums;text-align:right}.empty{color:var(--text-faint);padding:30px 0;text-align:center}.btn,.empty{font-size:13px}.btn{align-items:center;background:var(--surface);border:1px solid var(--border-strong);border-radius:9px;color:var(--text);cursor:pointer;display:inline-flex;font-family:inherit;font-weight:700;gap:6px;padding:8px 15px}.btn:hover{background:var(--bg)}.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn.primary:hover{background:var(--primary-dark)}.btn.danger{border-color:#f1b3ae;color:var(--danger)}.btn.danger:hover{background:var(--danger-soft)}.btn.sm{border-radius:7px;font-size:12px;padding:4px 10px}.btn:disabled{cursor:not-allowed;opacity:.45}.badge{border-radius:999px;display:inline-block;font-size:11.5px;font-weight:700;padding:2.5px 10px;white-space:nowrap}.badge.green{background:var(--green-soft);color:var(--green)}.badge.red{background:var(--danger-soft);color:var(--danger)}.badge.yellow{background:var(--warning-soft);color:var(--warning)}.badge.blue{background:var(--info-soft);color:var(--primary-dark)}.badge.gray{background:#eef0f3;color:var(--text-soft)}.form-grid{display:grid;gap:12px 16px;grid-template-columns:repeat(2,1fr)}.form-grid .full{grid-column:1/-1}.field label{color:var(--text-soft);display:block;font-size:12.5px;font-weight:700;margin-bottom:5px}.field input,.field select,.field textarea{background:#fff;border:1px solid var(--border-strong);border-radius:9px;color:var(--text);font-family:inherit;font-size:13.5px;padding:9px 11px;width:100%}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--primary);outline:2px solid var(--primary-soft)}.field textarea{min-height:72px;resize:vertical}.filters{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.filters input,.filters select{background:#fff;border:1px solid var(--border-strong);border-radius:9px;color:var(--text);font-family:inherit;font-size:13px;padding:8px 11px}.modal-backdrop{align-items:flex-start;background:#191c1d73;display:flex;inset:0;justify-content:center;overflow-y:auto;padding:6vh 16px;position:fixed;z-index:50}.modal{background:#fff;border-radius:16px;box-shadow:var(--shadow-lg);max-width:640px;width:100%}.modal.wide{max-width:820px}.modal-head{align-items:center;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;padding:16px 20px}.modal-head h3{font-size:15.5px;font-weight:800}.modal-head button{background:none;border:none;color:var(--text-soft);cursor:pointer;font-size:20px;line-height:1}.modal-body{padding:20px}.modal-foot{border-top:1px solid var(--border);display:flex;gap:8px;justify-content:flex-end;padding:14px 20px}.tabs{border-bottom:1px solid var(--border);display:flex;flex-wrap:wrap;gap:4px;margin-bottom:16px}.tabs button{background:none;border:none;border-bottom:2px solid transparent;color:var(--text-soft);cursor:pointer;font-family:inherit;font-size:13.5px;font-weight:700;margin-bottom:-1px;padding:9px 14px}.tabs button.active{border-bottom-color:var(--primary);color:var(--primary-dark)}.alert-item{align-items:flex-start;border-radius:9px;display:flex;font-size:13px;gap:10px;margin-bottom:6px;padding:10px 12px}.alert-item.danger{background:var(--danger-soft)}.alert-item.warning{background:var(--warning-soft)}.alert-item .who{font-weight:800}.alert-item .due{color:var(--text-soft);font-size:12px;margin-left:auto;white-space:nowrap}.login-split{display:flex;min-height:100vh}.login-hero{background:radial-gradient(circle at 85% 20%,hsla(0,0%,100%,.12) 0,transparent 34%),radial-gradient(circle at 15% 85%,hsla(0,0%,100%,.1) 0,transparent 40%),linear-gradient(150deg,#0040a1,#0056d2 60%,#2f74e0);color:#fff;display:flex;flex:1.1;flex-direction:column;justify-content:space-between;padding:44px 48px}.login-hero .hero-brand{align-items:center;display:flex;font-size:22px;font-weight:800;gap:12px;letter-spacing:-.4px}.login-hero .hero-brand .logo-mark{align-items:center;background:#ffffff2e;border-radius:11px;display:flex;font-size:19px;height:42px;justify-content:center;width:42px}.login-hero .hero-copy h2{font-size:27px;font-weight:800;letter-spacing:-.5px;line-height:1.4;margin-bottom:12px}.login-hero .hero-copy p{color:#ffffffd1;font-size:14.5px;line-height:1.8}.login-hero .hero-foot{color:#ffffffa6;font-size:12px}.login-panel{align-items:center;background:#fff;display:flex;flex:1;justify-content:center;padding:40px 24px}.login-form{max-width:400px;width:100%}.login-form h1{font-size:24px;font-weight:800;letter-spacing:-.4px;margin-bottom:6px}.login-form>p{color:var(--text-soft);font-size:13.5px;margin-bottom:26px}.login-form .field{margin-bottom:16px}.login-form .field input{border-radius:10px;font-size:14px;padding:12px 13px}.error-msg{color:var(--danger);font-size:13px}.check-group,.error-msg{margin-bottom:12px}.check-group .group-title{color:var(--text-soft);font-size:12.5px;font-weight:800;margin-bottom:6px}.check-items{display:flex;flex-wrap:wrap;gap:6px}.check-items label{align-items:center;border:1px solid var(--border-strong);border-radius:999px;color:var(--text-soft);cursor:pointer;display:inline-flex;font-size:12.5px;font-weight:600;gap:5px;padding:4px 12px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.check-items label.on{background:var(--primary-faint);border-color:var(--primary);color:var(--primary-dark)}.check-items input{display:none}.notice{background:var(--info-soft);border-radius:9px;color:var(--primary-dark);font-size:12.5px;margin-bottom:14px;padding:10px 14px}.bar-chart{align-items:flex-end;display:flex;gap:8px;height:180px;padding:8px 4px 0}.bar-chart .bar-col{align-items:center;display:flex;flex:1;flex-direction:column;gap:6px;min-width:0}.bar-chart .bar-col .bar{background:var(--primary);border-radius:6px 6px 0 0;max-width:42px;min-height:2px;width:100%}.bar-chart .bar-col .bar.alt{background:var(--primary-soft)}.bar-chart .bar-col .bar-label{color:var(--text-soft);font-size:11px;font-weight:600}.bar-chart .bar-col .bar-value{color:var(--text-faint);font-size:10.5px}@media(max-width:900px){.app-shell{flex-direction:column}.sidebar{height:auto;position:static;width:100%}.form-grid{grid-template-columns:1fr}.login-split{flex-direction:column}.login-hero{display:none}}
