body{color:#202124;background:#f5f7fb;margin:0;font-family:Arial,Microsoft YaHei,sans-serif}.layout{min-height:100vh;display:flex}.sidebar{color:#fff;box-sizing:border-box;background:#111827;width:230px;padding:24px}.sidebar h2{margin:0 0 8px}.sidebar p{color:#9ca3af;font-size:14px}.sidebar nav{flex-direction:column;gap:10px;margin-top:30px;display:flex}.sidebar button{color:#fff;text-align:left;cursor:pointer;background:#1f2937;border:0;border-radius:8px;padding:12px}.sidebar button:hover{background:#374151}.content{flex:1;padding:32px}.card{background:#fff;border-radius:14px;margin-bottom:20px;padding:22px;box-shadow:0 8px 28px #0f172a0f}.grid{grid-template-columns:repeat(5,minmax(140px,1fr));gap:16px;display:grid}.metric{background:#fff;border-radius:14px;padding:20px;box-shadow:0 8px 28px #0f172a0f}.metric .value{margin-top:8px;font-size:30px;font-weight:700}table{border-collapse:collapse;background:#fff;border-radius:12px;width:100%;overflow:hidden}th,td{text-align:left;border-bottom:1px solid #edf0f5;padding:12px 14px;font-size:14px}th{background:#f9fafb;font-weight:600}.muted{color:#6b7280;font-size:14px}.message{color:#1f2937;background:#f3f4f6;border-radius:8px;padding:10px 12px}.ok{color:#047857;font-weight:700}.danger{color:#b91c1c;font-weight:700}.actions{flex-wrap:wrap;gap:8px;display:flex}button{color:#fff;cursor:pointer;background:#111827;border:0;border-radius:8px;padding:9px 12px}button:hover{background:#374151}.grid-form{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin:12px 0;display:grid}.grid-form input{border:1px solid #d6d6d6;border-radius:6px;padding:8px 10px}tr.selected{background:#f3f4f6;outline:2px solid #1f2937}pre{color:#f9fafb;background:#111827;border-radius:8px;max-height:360px;padding:12px;overflow:auto}select{background:#fff;border:1px solid #d6d6d6;border-radius:6px;padding:8px 10px}.company-select{color:#111827;background:#f9fafb;width:100%;margin-bottom:12px}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin:12px 0;display:flex}.toolbar input,.toolbar select,.form-table input,.form-table select{border:1px solid #d1d5db;border-radius:6px;padding:8px 10px}.pagination{align-items:center;gap:8px;margin-top:12px;display:flex}button:disabled{opacity:.55;cursor:not-allowed}.tabs{gap:8px;margin-bottom:16px;display:flex}.tabs button.active{background:#2563eb}.user-box{background:#1f2937;border-radius:10px;flex-direction:column;gap:4px;margin:18px 0;padding:12px;display:flex}.user-box small{color:#9ca3af}.logout-button{background:#7f1d1d;width:100%;margin-top:28px}.login-page{box-sizing:border-box;background:radial-gradient(circle at top,#273449,#0f172a 55%);place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{box-sizing:border-box;background:#fff;border-radius:18px;flex-direction:column;gap:10px;width:min(420px,100%);padding:34px;display:flex;box-shadow:0 30px 70px #00000047}.login-card h1{margin:6px 0 0}.login-brand{letter-spacing:2px;color:#111827;font-weight:800}.login-card input{border:1px solid #d1d5db;border-radius:8px;padding:12px}.login-button{margin-top:8px;padding:12px;font-size:16px}.login-button:disabled{opacity:.6;cursor:wait}.login-error{margin:0}.login-tip{color:#6b7280;font-size:12px;line-height:1.5}@media (width<=900px){.layout{display:block}.sidebar{width:100%}.sidebar nav{grid-template-columns:repeat(2,1fr);display:grid}.content{padding:18px}.grid{grid-template-columns:repeat(2,minmax(120px,1fr))}}
