*{box-sizing:border-box}body{margin:0;background:#f3f6fb;color:#1b273b;font:14px/1.55 Malgun Gothic,Segoe UI,sans-serif}button,input{font:inherit}button{cursor:pointer}.portal{min-height:100vh;display:flex}.sidebar{background:#132441;color:#fff;width:240px;min-width:240px;padding:26px 16px}.sidebar h3{font-size:23px;margin:0 0 4px}.sidebar p{color:#aab8d1;font-size:11px;letter-spacing:2px}.sidebar nav{display:flex;flex-direction:column;gap:5px;margin-top:35px}.sidebar nav button{background:transparent;color:#dce7f8;border:0;text-align:left;padding:12px 14px;border-radius:8px}.sidebar nav button:hover,.sidebar nav button.active{background:#325cba;color:#fff}.main{min-width:0;flex:1}.main header{padding:21px 30px;background:#fff;border-bottom:1px solid #e2e8f2}.main header small{color:#60708e}.main header h2{margin:0;font-size:23px}.content{padding:24px 28px;max-width:1500px;margin:auto}.source{margin-bottom:16px;color:#66778f}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:14px;margin-bottom:18px}.card{background:#fff;border:1px solid #e5ebf3;border-radius:12px;padding:17px 19px;box-shadow:0 2px 9px #12263f09}.card p{margin:0;color:#6a7690}.card h2{margin:6px 0 0;font-size:26px}.panel{background:#fff;border:1px solid #e2e8f2;border-radius:12px;padding:23px;margin:14px 0 20px;box-shadow:0 2px 11px #12263f08}.panel h3{margin:0 0 15px;font-size:18px}.action-button{background:#345fc8;border:0;border-radius:7px;color:#fff;padding:10px 15px;margin:4px 6px 4px 0}.action-button:disabled{opacity:.55}.notice{background:#e5f8ee;border:1px solid #a1dfba;color:#166538;padding:13px;border-radius:8px;margin-bottom:14px;white-space:pre-wrap}.alert{background:#fff1ef;border:1px solid #e9ada6;color:#9d2d21;padding:13px;border-radius:8px;white-space:pre-wrap;margin-bottom:14px}.note{color:#66758d;font-size:13px}.table-scroll,.chart-scroll{overflow:auto;max-width:100%}table{width:100%;border-collapse:collapse;white-space:nowrap}th,td{padding:10px 12px;border-bottom:1px solid #e7ecf2;text-align:left}th{background:#f6f8fb;color:#445675;position:sticky;top:0}.fields{display:flex;flex-wrap:wrap;gap:16px}.fields label{display:flex;flex-direction:column;gap:7px}.fields input,.search{border:1px solid #cfd8e5;padding:9px 12px;border-radius:7px}.search{margin:8px 0 12px;width:300px;max-width:100%}.restore-label{display:inline-block;margin-left:14px}.status-chips{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:16px}.status-chip{background:#ebf0fb;color:#344e88;border-radius:18px;padding:5px 10px}.progress{display:inline-block;vertical-align:middle;width:85px;height:9px;background:#edf1f6;margin-right:8px;border-radius:5px;overflow:hidden}.progress>span{display:block;height:100%}.chart-container{margin-bottom:15px}.chart-legend{display:flex;align-items:center;gap:7px;color:#697991;margin-bottom:20px}.legend-square{width:12px;height:12px;background:#4f46e5}.legend-limit{width:25px;border-top:2px dashed #b0b6c6;margin-left:18px}.chart-scroll{overflow-x:auto}.capa-chart{height:235px;padding:10px 15px 10px 45px;position:relative}.chart-main{height:100%;display:flex;align-items:end;gap:7px;position:relative;border-bottom:1px solid #cbd5e1}.chart-gridline{position:absolute;left:0;right:0;border-top:1px dashed #e4e9f2;pointer-events:none}.chart-gridline span{position:absolute;left:-42px;top:-10px;color:#8592a6}.chart-limit{position:absolute;left:0;right:0;border-top:2px dashed #a4aac0;pointer-events:none}.chart-column{flex:1;min-width:18px;max-width:48px;align-self:end;height:100%;display:flex;align-items:center;justify-content:end;flex-direction:column;position:relative;z-index:1}.chart-bar{width:60%;max-height:100%;min-height:0;border-radius:4px 4px 0 0}.chart-label{font-size:10px;color:#66758d;position:absolute;bottom:-23px;white-space:nowrap}.soft-divider{border:0;border-top:1px solid #e3e9f0;margin:22px 0}input[type=file]{max-width:100%}@media(max-width:720px){.portal{flex-direction:column}.sidebar{width:100%;min-width:0;padding:13px}.sidebar nav{margin-top:12px;flex-direction:row;overflow-x:auto}.sidebar nav button{white-space:nowrap}.content{padding:15px}.main header{padding:14px}.panel{padding:15px}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
