*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0;padding:0}body{color:#1a1a1a;-webkit-font-smoothing:antialiased;background:#f4f6fb;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Apple SD Gothic Neo,Noto Sans KR,Malgun Gothic,sans-serif}.login-wrap{justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-card{background:#fff;border-radius:16px;flex-direction:column;gap:14px;width:100%;max-width:380px;padding:40px 32px;display:flex;box-shadow:0 10px 40px #00000014}.login-card h1{margin:0;font-size:26px}.login-card .sub{color:#888;margin:-6px 0 10px;font-size:14px}input,textarea,select{background:#fff;border:1px solid #dde1ea;border-radius:10px;outline:none;padding:12px 14px;font-family:inherit;font-size:15px;transition:border-color .15s}input:focus,textarea:focus,select:focus{border-color:#2563eb}textarea{resize:vertical;box-sizing:border-box;width:100%}button{color:#fff;cursor:pointer;background:#2563eb;border:none;border-radius:10px;padding:13px 16px;font-size:15px;font-weight:600}button:hover{background:#1d4ed8}button.secondary{color:#2563eb;background:#eef2ff}button.secondary:hover{background:#dbe4ff}button.ghost{color:#2563eb;background:0 0;border:1px solid #2563eb;padding:8px 14px}button.mini{color:#2563eb;background:#eef2ff;border-radius:7px;padding:5px 10px;font-size:12px}button.mini:hover{background:#dbe4ff}button:disabled{opacity:.6;cursor:not-allowed}.error{color:#dc2626;font-size:14px}.app{max-width:960px;margin:0 auto;padding:0 16px 48px}.topbar{justify-content:space-between;align-items:center;padding:20px 0;display:flex}.topbar h1{margin:0;font-size:22px}.building-name{color:#666;font-size:14px}.userbox{color:#444;align-items:center;gap:12px;font-size:14px;display:flex}.summary{gap:16px;margin:8px 0 20px;display:flex}.metric{background:#fff;border-radius:16px;flex:1;padding:22px 24px;box-shadow:0 1px 3px #0000000f}.metric-label{color:#888;margin-bottom:6px;font-size:13px}.metric-value{letter-spacing:-.6px;font-size:32px;font-weight:700}.metric-unit{color:#888;margin-left:4px;font-size:15px;font-weight:500}.metric-value.accent{color:#dc2626}.unit-grid{grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:6px;display:grid}.unit-card{cursor:pointer;background:#fff;border:1px solid #eef0f5;border-left:3px solid #e5e7eb;border-radius:9px;padding:7px 9px;transition:box-shadow 80ms,transform 80ms}.unit-card:hover{transform:translateY(-1px);box-shadow:0 4px 12px #00000014}.unit-card.green{border-left-color:#22c55e}.unit-card.red{border-left-color:#ef4444}.unit-card.yellow{border-left-color:#f59e0b}.unit-num{font-size:13px;font-weight:700}.unit-status{margin:1px 0 0;font-size:10px}.unit-card.green .unit-status{color:#16a34a}.unit-card.red .unit-status{color:#dc2626}.unit-card.yellow .unit-status{color:#d97706}.unit-tenant{color:#888;text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.detail-row{border-bottom:1px solid #f0f0f5;justify-content:space-between;padding:9px 0;font-size:14px;display:flex}.detail-row span{color:#888}.status-green{color:#16a34a}.status-red{color:#dc2626}.status-yellow{color:#d97706}.detail-actions{flex-direction:column;gap:8px;margin-top:16px;display:flex}.detail-actions button{width:100%}.loan-box{background:#f8fafc;border-radius:10px;margin-top:14px;padding:12px 14px}.loan-title{color:#334155;margin-bottom:4px;font-size:13px;font-weight:600}.tabbar{z-index:10;background:#fff;border-top:1px solid #eef0f4;gap:4px;margin:0 -4px -4px;padding:8px 4px;display:flex;position:sticky;bottom:0}.tabbar button{color:#666;cursor:pointer;background:0 0;border:none;border-radius:10px;flex:1;padding:10px 0;font-size:14px}.tabbar button.active{color:#2563eb;background:#eff6ff;font-weight:600}.topbar-left{align-items:center;gap:10px;display:flex}.menu-btn{cursor:pointer;color:#334155;background:0 0;border:none;padding:0 2px;font-size:22px;line-height:1}.drawer-backdrop{z-index:100;background:#0006;position:fixed;inset:0}.drawer{z-index:101;background:#fff;width:264px;max-width:85vw;padding:16px;animation:.2s drawer-in;position:fixed;top:0;bottom:0;left:0;box-shadow:2px 0 14px #00000029}.drawer-head{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.drawer-head h3{margin:0}.drawer-list{flex-direction:column;gap:2px;display:flex}.drawer-item{text-align:left;color:#1f2937;cursor:pointer;background:0 0;border:none;border-radius:8px;padding:13px 10px;font-size:15px}.drawer-item:hover{background:#f1f5f9}.loan-total{color:#334155;background:#f8fafc;border-radius:10px;margin-top:14px;padding:12px 14px;font-size:14px;font-weight:600}@keyframes drawer-in{0%{transform:translate(-100%)}to{transform:translate(0)}}.dash-header{margin-bottom:16px}.dash-period{color:#888;margin-bottom:4px;font-size:13px}.dash-title{color:#111827;font-size:22px;font-weight:700}.stat-grid{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px;display:grid}.stat-card{background:#f6f7f9;border-radius:14px;padding:14px 16px}.stat-label{color:#888;margin-bottom:6px;font-size:12px}.stat-value{color:#111827;font-size:22px;font-weight:700}.stat-value.accent{color:#dc2626}.stat-sub{color:#999;margin-top:4px;font-size:12px}.rate-section{border-bottom:1px solid #f0f0f5;margin-bottom:16px;padding-bottom:14px}.rate-head{color:#334155;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:14px;font-weight:600;display:flex}.rate-bar{background:#eef0f4;border-radius:999px;height:8px;overflow:hidden}.rate-fill{background:#22c55e;border-radius:999px;height:100%;transition:width .3s}.check-section{margin-bottom:16px}.check-head{color:#111827;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:15px;font-weight:600;display:flex}.check-item{cursor:pointer;border-bottom:1px solid #f0f0f5;align-items:center;gap:12px;padding:12px 4px;display:flex}.check-item b{font-size:14px;display:block}.check-item .muted{color:#999;font-size:12px}.warn-icon{color:#b91c1c;background:#fef3f2;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:14px;font-weight:700;display:flex}.doc-icon{background:#f1f5f9;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:14px;display:flex}.chev{color:#cbd5e1;margin-left:auto;font-size:18px}.panel{background:#fff;border-radius:14px;margin-bottom:16px;padding:20px;box-shadow:0 1px 3px #0000000d}.panel h2{margin:0 0 14px;font-size:17px}.panel-head{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.panel-head h2{margin:0}.panel-head.clickable{cursor:pointer;-webkit-user-select:none;user-select:none}.count-badge{color:#64748b;vertical-align:middle;background:#f1f5f9;border-radius:999px;margin-left:6px;padding:1px 8px;font-size:12px;font-weight:600;display:inline-block}.chevron{color:#94a3b8;font-size:16px;line-height:1}.scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:14px}th,td{text-align:left;white-space:nowrap;border-bottom:1px solid #eef0f5;padding:10px 8px}th{color:#888;font-size:12px;font-weight:600}.badge{color:#666;background:#eef0f5;border-radius:999px;padding:4px 10px;font-size:12px}.badge.on{color:#16a34a;background:#dcfce7}input.cell,select.cell{border:1px solid #dde1ea;border-radius:6px;width:110px;padding:6px 8px;font-size:13px}input.cell.w50{width:56px}input.cell.wide{width:220px}.match-box{align-items:flex-end;gap:10px;display:flex}.match-box textarea{flex:1}.match-box button{flex-shrink:0}.match-result{background:#f4f6fb;border-radius:10px;margin-top:12px;padding:12px 14px;font-size:14px}.match-result.ok{color:#14532d;background:#dcfce7}.match-result.warn{color:#92400e;background:#fef3c7}.cand{border-bottom:1px solid #eef0f5;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;display:flex}.small{font-size:12px}.modal-backdrop{z-index:100;background:#0006;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal{background:#fff;border-radius:14px;width:100%;max-width:520px;max-height:90vh;padding:20px;overflow-y:auto}.modal-head{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.modal-head h3{margin:0;font-size:16px}.form-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.form-grid label{color:#555;flex-direction:column;gap:6px;font-size:13px;display:flex}.form-grid label.span2{grid-column:span 2}.modal-actions{justify-content:flex-end;gap:10px;margin-top:18px;display:flex}.toast{color:#fff;z-index:200;background:#111;border-radius:999px;max-width:90vw;padding:10px 18px;font-size:13px;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.muted{color:#999;font-size:13px}.alert-banner{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:12px;margin-bottom:16px;padding:12px 16px;font-size:14px;font-weight:600}.panel-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}label.upload{cursor:pointer;color:#2563eb;background:#eef2ff;border-radius:7px;align-items:center;padding:5px 10px;font-size:12px;display:inline-flex}label.upload:hover{background:#dbe4ff}
